-
Notifications
You must be signed in to change notification settings - Fork 17
docs: rearrange docs structure and prepare for future outline #2051
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 1 commit
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
987045e
add task overview
sevenzing 22f04a0
update readme
sevenzing b3e7dfa
update readme
sevenzing e453a74
initial new docs
sevenzing 6fb3887
PR comments
sevenzing 69f4874
Merge branch 'main' into ll/new-docs
sevenzing 888edb9
rename: build-with-ens -> integrate, integrations -> integration-opti…
sevenzing ee3e715
fix rest
sevenzing 6e68c9c
fixing last comments
sevenzing 2d65b74
redirects
sevenzing 7b36f79
fix AI agents stuff
sevenzing 4d96b9d
Merge branch 'main' into ll/new-docs
sevenzing ff4f48a
use EnsDbUseCases as common component
sevenzing f2f28bf
fix PR comments
sevenzing File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,191 @@ | ||
| # Task 1777: ENSNode Docs Narrative Overhaul | ||
|
|
||
| **Issue**: https://github.com/namehash/ensnode/issues/1777 | ||
| **Scope**: `docs/ensnode.io/` | ||
|
|
||
|
|
||
| --- | ||
|
|
||
| ## Problem Statement | ||
|
|
||
| We need to begin a loud, urgent promotion of the new **Omnigraph API** — but right now: | ||
|
|
||
| 1. **The narrative is outdated.** ENSNode is positioned as a "multichain indexer for ENS" / "built on Ponder". Now ENSNode is **the ENS development platform**. | ||
| 2. **The Omnigraph API is invisible in the docs.** It's not mentioned anywhere in user-facing pages. There is no quickstart, no cookbook, no schema reference. | ||
| 3. **Sidebar is complicated** The sidebar is split across 6 per-app topics (ENSNode, ENSApi, ENSDb, ENSIndexer, ENSRainbow, ENSAdmin). New visitors are forced to "pick an app" before understanding what the platform does. They should just be told to use the API. | ||
| 4. **Resolution is a known gap in Omnigraph.** We will add Resolution feature to omnigraph soon, but we cannot block promotion on that work landing. We must promote Omnigraph **now** and mark Resolution feature as **Coming Soon**. | ||
| 5. **REST JSON API is main point of integration.** It will be moved/duplicated to Omnigraph so I think we should NOT promote REST in journey-level docs. But do not remove it completely! | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| --- | ||
|
|
||
| ## What we already have (that the docs don't surface) | ||
|
|
||
| - **`enssdk`** (`packages/enssdk`, v1.10.1) — the foundational typed TypeScript client for Omnigraph. Provides `createEnsNodeClient(...).extend(omnigraph)` plus a `graphql` template tag powered by `gql.tada`. Fully type-checked queries, isomorphic, tree-shakable. Good README with a working example. Already imported by some existing docs pages (terminology, ensrainbow, querying-best-practices). | ||
|
sevenzing marked this conversation as resolved.
Outdated
sevenzing marked this conversation as resolved.
Outdated
|
||
| - **`enskit`** (`packages/enskit`, v1.10.1) — React toolkit. `useOmnigraphQuery` hook backed by `urql` + `@urql/exchange-graphcache`. README is a placeholder; the code is real and tested. | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| - **`examples/enskit-react-example/`** — a working React sample app using both packages. | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| - **Generated GraphQL introspection** — `enssdk` runs `gql.tada generate-output` at build time, producing introspection JSON + `schema.graphql`. The schema-reference page is a rendering problem, not a "do we have the data" problem. | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| --- | ||
|
|
||
| ## Goals | ||
|
|
||
| 1. Reposition ENSNode from "indexer" to "ENS development platform" across the homepage, sidebar metadata, and top-level concept pages. | ||
| 2. Make the **Omnigraph API** the front-and-center way to interact with ENSNode for ~95% of visitors. | ||
| 3. Replace the 6 per-app sidebar topics with a 3-topic, **user-journey-shaped** information architecture. | ||
| 4. Demote, but do not delete: REST JSON API, Subgraph-compat API, per-app deep dives. Move them under a **Reference** topic. | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| 5. Frame the Subgraph-compat endpoint exclusively as a **backwards compatible option**, never as "the API". | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| 6. Communicate ENSv2 readiness urgency without over-the-top marketing tactics like countdowns. | ||
|
|
||
|
|
||
| ## Non-Goals | ||
|
|
||
| - We are **not** rewriting per-app deep-dive content (ENSIndexer internals, ENSDb schema, etc.) — only relocating it. | ||
| - We are **not** deleting the REST API. It stays available in Reference and via OpenAPI; we just stop promoting it. | ||
|
|
||
| --- | ||
|
|
||
| ## The Narrative Shift | ||
|
|
||
| - **Tagline** | ||
| - Today: "The new multichain indexer for ENSv2" | ||
| - New: "The ENS development platform" | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| - **Subtitle** | ||
| - Today: "Multichain indexer for ENS with ENS Subgraph backwards compatibility." | ||
| - New: "Build ENSv2-ready apps today. One API for every ENS name across every chain." | ||
|
|
||
| - **Mental model offered** | ||
| - Today: "Pick one of 6 apps to learn about" | ||
| - New: "You're an app developer. Use this API. (Want to self-host? Click here.)" | ||
|
|
||
| - **First-impression CTA** | ||
| - Today: "Connect with ENSAdmin" + "Read the docs" | ||
| - New: "Try the Omnigraph" (opens playground) + "Quickstart" (60-second doc) | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| - **Top-of-mind brand words** | ||
| - Today: Ponder, indexer, plugins, Subgraph | ||
| - New: Omnigraph API, ENSv2-ready, multichain, "one query for everything" | ||
|
|
||
| - **Apps suite** | ||
| - Today: Surfaced as peers (ENSAdmin / ENSIndexer / ENSRainbow) | ||
| - New: Demoted to "Under the hood / Components"; ENSAdmin re-cast as "the playground" | ||
|
|
||
| --- | ||
|
|
||
| ## The Two User Journeys | ||
|
|
||
| My assumption is that we have 2 usecases for user to read our documentation | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| **Journey A — "I want to use ENSNode" (popular)** | ||
| - A1. **App developer (greenfield)** — "I'm building with ENS. Where do I start?" | ||
| - A2. **App developer (migrator)** — "I'm using the ENS Subgraph today. How do I move?" | ||
| - A3. **Library / integration author** — "I'm building a wallet / indexer / SDK. I need stable APIs." | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| **Journey B — "I want to run my own ENSNode" (uncommon but still important)** | ||
| - B1. **Production self-hoster** — "I need full control / data residency / custom plugins." | ||
| - B2. **Local dev / contributor** — "I want to hack on ENSNode itself." | ||
|
|
||
| --- | ||
|
|
||
| ## Proposed Information Architecture | ||
|
|
||
| Today there are **6** top-level sidebar topics (ENSNode, ENSApi, ENSDb, ENSIndexer, ENSRainbow, ENSAdmin). Each is an app. That's the wrong axis. | ||
|
|
||
| Restructure the **ENSNode** topic internally into 3 user-journey subgroups: | ||
|
|
||
| ``` | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| 1. Build with ENS ← Journey A (default landing) | ||
| 2. Self-host ENSNode ← Journey B | ||
| 3. Reference ← terminology, REST API, Subgraph API, ENSAdmin (folded in) | ||
| ``` | ||
|
|
||
| ### Topic 1: Build with ENS (the new front door) | ||
|
|
||
| ``` | ||
| Build with ENS | ||
| ├── Quickstart (60 seconds -> first Omnigraph response) | ||
| ├── Why ENSNode? (the platform pitch + ENSv2 urgency) | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| │ | ||
| ├── Omnigraph API | ||
| │ ├── Overview & mental model (entities, connections, vs subgraph) | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| │ ├── Cookbook (executable examples — see "Cookbook recipes" below) | ||
| │ ├── Schema reference (auto-generated, per-entity) | ||
| │ └── Playground (external link to `https://admin.ensnode.io/api/omnigraph`) | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| │ | ||
| ├── Client integrations (recommended path: our first-party SDKs) | ||
| │ ├── enssdk — foundational TypeScript client (typed queries via `gql.tada`, isomorphic) | ||
| │ ├── enskit — React hooks for Omnigraph (urql + graphcache under the hood). Also `enskit-react-example` | ||
| │ ├── ensjs — legacy Subgraph-compat path; Link to "Migrate from ENS Subgraph" | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| │ └── (advanced) Use Omnigraph without our SDK | ||
| │ └── any GraphQL client works — Omnigraph is a standard endpoint at `/api/omnigraph` | ||
| │ | ||
| ├── Migrate from ENS Subgraph | ||
| │ ├── Why migrate (ENSv2, multichain, performance) | ||
| │ ├── How migrate -- mapping Subgraph queries -> Omnigraph queries | ||
| │ └── What's not yet supported / "request a feature" | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| │ | ||
| ├── Hosted instances & endpoints (lifted up from /usage) | ||
| │ | ||
| └── AI / LLM integrations | ||
| └── Cursor / Claude skill packs (omnigraph, omnigraph-migration) | ||
| ``` | ||
|
|
||
| #### Cookbook recipes | ||
|
|
||
| Need help of @shrugs with that because I dont have full context about what omnigraph can do | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
|
|
||
| 1. Look up a name (basic `domain(by: { name })`) | ||
| 2. Get all names owned by an address | ||
| 3. Search names by prefix / fuzzy match | ||
| 4. Get registration history for a name | ||
| 5. Multichain: names across mainnet / Base / Linea in one query | ||
| 6. Inspect a resolver's indexed records (current capability — keys + coinTypes, no values) | ||
| 7. Recently registered names (top of feed) | ||
| 8. (Coming Soon) Resolve a name's records (text + addresses) | ||
| 9. (Coming Soon) Reverse resolution | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| 10. Migrate a Subgraph query -> Omnigraph (with side-by-side) | ||
|
|
||
| ### Topic 2: Self-host ENSNode | ||
|
|
||
| ``` | ||
| Self-host ENSNode | ||
| ├── Should you self-host? (most users should use our hosted version, but if really want -- welcome!) | ||
| ├── Architecture overview (ENSIndexer + ENSDb + ENSRainbow + ENSApi diagram) | ||
|
sevenzing marked this conversation as resolved.
Outdated
|
||
| ├── Quickstart: `docker compose up` | ||
| ├── Configuration | ||
| │ ├── Namespaces & plugins | ||
| │ ├── RPC providers | ||
| │ └── Full env var reference | ||
| ├── Deploy | ||
| │ ├── Docker | ||
| │ ├── Terraform | ||
| │ └── Operations & monitoring (indexing-status, /amirealtime) | ||
| └── Local development with `ens-test-env` | ||
|
|
||
| ``` | ||
|
|
||
| ### Topic 3: Reference | ||
|
|
||
| ``` | ||
| Reference | ||
| ├── ENSNode glossary / terminology | ||
| ├── Roadmap & ENSv2 timeline | ||
| ├── Component deep-dives (collapsed by default) | ||
| │ ├── ENSApi (architecture, internals, REST endpoints catalog, Protocol Acceleration) | ||
| │ ├── ENSIndexer (Ponder, plugins, handlers) | ||
| │ ├── ENSDb (schema, our future cool snapshots) | ||
| │ ├── ENSRainbow (label healing, label sets) | ||
| │ └── ENSAdmin (the playground UI) | ||
| ├── REST JSON API (Resolution, Registrar Actions, Indexing Status, etc.) — full reference, not promoted | ||
| ├── Subgraph API (legacy) | ||
| ├── Changelog / Releases | ||
| └── Contributing | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Homepage Rewrite | ||
|
|
||
| Tracked separately as an optional, decoupled sub-plan: see [homepage.md](./homepage.md). | ||
|
|
||
| The homepage rewrite can ship before, alongside, or after the rest of this plan. If we decide not to ship it at all, the rest of this plan still lands a coherent narrative inside the docs sidebar; the homepage just keeps its current "multichain indexer" framing. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.