Tutorial¶
This tutorial teaches you how to use easeo to turn a content entity into a deterministic SEO payload, step by step. Each page builds on the previous one, but every page is self-contained: you can jump straight to the topic you need and copy-paste the examples.
What is easeo?¶
easeo is a deterministic SEO metadata generator. It takes a content entity, a route path, and a site configuration, and produces one structured payload:
- canonical URL
- title and description
- robots directives
- Open Graph tags
- Twitter Card tags
- JSON-LD structured data
The core is written in Rust and shipped to Python and JavaScript/TypeScript, so the same inputs produce byte-for-byte identical output in every language.
content entity + route + config
|
v
easeo (library)
|
v
SEOPayload
|
+--> framework adapter --> <head>
|
+--> SEO contract --> cheseo validation
What easeo is not¶
- Not an SEO crawler. That is a separate tool.
- Not a score generator. It does not grade your content.
- Not a keyword research tool. It formats the data you give it.
- Not a browser automation framework. It performs no I/O and no network calls.
- Not an analytics platform. It stores no state.
How the tutorial works¶
Each page covers one topic:
- Installation: install the Python or JavaScript package.
- First Payload: build your first payload.
- Fallback and Overrides: control which value wins.
- Rendering HTML: emit a ready-to-use
<head>block. - Contracts: turn SEO intent into a testable artifact.
- Configuration: every config field.
Two audiences, one API
The Python and JavaScript APIs are intentionally mirrored. Every concept
on these pages exists in both, with snake_case in Python and camelCase
in JavaScript. Pick your language and follow along; the other binding
works the same way.
Recap¶
- easeo generates deterministic SEO payloads from content entities.
- One primary function:
build_seo_payload(entity, route, config). - The Rust core guarantees identical output across Python and JavaScript.
Next: Installation, install easeo and verify the version.