docs(website): overhaul docs and information hierarchy - #721
Merged
Conversation
…ab bar - Horizontal docs tab bar (Docs | Cloudflare | AWS | Integrations | Reference | Blog); each tab swaps in its own scoped sidebar via route middleware, with prev/next pagination kept within the tab - Cloudflare + AWS hubs: overview (building blocks + recipes), setup, building-block pages; tutorial parts 1-5 move to /cloudflare/tutorial - Schemaless RPC documented as the recommended pattern on the Worker and Durable Object pages; rpc-worker/rpc-durable-object tutorials removed - Integrations tier: PlanetScale, Neon, Axiom, GitHub one-pagers with verified credential mechanics - 301 redirect map in worker.ts for every moved URL (md-aware) - Fix duplicate "Workers" sidebar groups: @Product typo on Workflow.ts, generator now merges service groups by product, inherits per-service categories, and fails on duplicate sibling labels - Landing page: "Pick your cloud" cards + integrations chip strip below the hero (hero copy unchanged); llms.txt regenerated to the new tree Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… pages - Tab bar: left group (Docs, Cloudflare, AWS, Integrations) + right group (Reference, Blog), official brand marks for cloud tabs (simple-icons) and lucide outlines elsewhere - Sidebar override: small-caps group headings with monochrome icons, flat always-open sections on hub tabs (Reference keeps its collapsible tree), active page = accent bar + tint instead of the filled pill - Cap the docs shell (sidebar + content + TOC) at 96rem and center it - Cloudflare/AWS sidebars regrouped by role: Compute / Data / Messaging / Networking (no more flat "Building Blocks") - AWS depth: five-part tutorial spine (part 4 is Stages — alchemy dev is Workers-only, verified), plus ECS, EC2, and VPC & networking block pages grounded in source JSDoc and smoke tests Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
|
Install the packages built from this commit: alchemy bun add alchemy@https://pkg.ing/alchemy/2fa8404@alchemy.run/better-auth bun add @alchemy.run/better-auth@https://pkg.ing/@alchemy.run/better-auth/2fa8404@alchemy.run/pr-package bun add @alchemy.run/pr-package@https://pkg.ing/@alchemy.run/pr-package/2fa8404 |
Sidebar and docs header now share the page background — division comes from hairlines plus a faint accent wash at the top of the sidebar, instead of contrasting panel colors. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The gradient now paints the whole docs page (sidebar, content, TOC) and fades down bun.com-style; the fixed sidebar goes transparent on desktop so the wash shows through it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Each cloud hub sidebar (Cloudflare, AWS) gains a collapsed "Resources" group below Guides containing that provider's slice of the generated reference tree, so a hub tab covers everything from setup to API docs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Categories/services inside Resources and the Reference tree rendered with Starlight's large bold group style; they now match the 13px regular entries, leaving the heading treatment to top-level groups only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Runtimes compose — apps can run any number of them. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ore menu
- PlanetScale and Neon promoted to top-level tabs; Axiom and GitHub live
in a categorized "More" dropdown (Observability, Source & CI) that
renders as the current provider when you're inside its hub
- Each gets the full hub skeleton at /{provider}: Overview, Setup,
Guides (cross-listed from the runtime provider's hub), Resources
- Integrations tab retired: pages split into hub index + setup, 301s
from /integrations/*, landing page now shows four provider cards
- Mobile: dropdown residents flatten into the scrollable tab row
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- New block pages: Cloudflare KV, Domains & DNS; AWS Websites; Neon Migrations — all grounded in source JSDoc, tests, and examples/ - New guides: custom domains & routes, Worker telemetry to Axiom, AWS static site, Effect HTTP API on Lambda - Accuracy rework of concepts/observability: replaced nonexistent AxiomExporter / CloudWatch widget helpers / api.metrics.* with the real OTLP layers, DashboardBody shape, and PascalCase alarm props - Workers page gains custom-domains + InferEnv sections; Hyperdrive documents pooledOrigin; hub indexes and sidebars updated Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Cloudflare guides: cron triggers, Secrets Store & auth tokens, send & receive email, react to GitHub events; setup documents the API key+email CI alternative and OAuth scope customization - Drizzle and shared-database guides gain PlanetScale Postgres/MySQL variants alongside Neon - AWS block pages: SNS, EventBridge & Scheduler, RDS & Aurora, CloudWatch (absorbing their planned guides), plus Route53+ACM custom domains and Effect RPC on Lambda guides - PlanetScale hub: Postgres, MySQL, Migrations block pages; setup documents fromToken, base-URL override, CI behavior - Neon hub: Branching and Connections block pages (pooled vs direct) - Axiom hub: Datasets & ingest (replacement-deletes-data caution, token-in-state note), alerting and dashboards guides - GitHub hub: Repositories, Actions secrets & variables, Webhooks & events block pages; setup documents scopes and env precedence - All five attach-provider hub indexes reworked; sidebars + llms.txt Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Test-grounded Cloudflare guides: Vectorize, browser rendering, Turnstile, Analytics Engine, Tunnel, Workers for Platforms, and the release-agent case study (cloudflare-agent example) - AWS: EKS block page, Lambda MicroVMs and Secrets Manager guides - PlanetScale: Credentials and Backups block pages - Axiom: annotations guide; GitHub index folds in the Comment resource - Attach-provider sidebars no longer cross-link into other tabs: PlanetScale and Neon gain native "Preview branches per PR" and "Drizzle ORM" guides that own the provider-side pattern and link out to the runtime walkthroughs in content Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Uncategorized providers with ≤16 pages (Neon, PlanetScale, Axiom,
GitHub, Docker, Kubernetes, Command, Drizzle) render as a flat
resource list — per-service folders around one or two pages
("Branch > Branch") were redundant nesting, and prefixed names
(MySQLBranch/PostgresBranch) already carry the grouping.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New /cloudflare/containers block page (what/when vs Workers and DOs, tagged Container class, DO wiring via Containers.layer, image sources, ContainerApplication) grounded in the guide, source JSDoc, and test fixtures; the "Run a Container" guide stays as the deep walkthrough. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Compute, Data, Messaging, and Networking are top-level sections on the hub overviews now; the GitHub sidebar group is flattened; block pages' "Related building blocks" footers become "Related"; llms.txt sections renamed to "primary resources". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…solved - Cloudflare and AWS sidebars share one category set (Compute, Frontend, APIs, Data, Messaging & events, Email, AI, Security & secrets, Observability, Networking); every guide files under the category it serves — the flat Guides group is gone, URLs unchanged - New block pages from the design→review→write workflow: Workflows and Email (Cloudflare) and Secrets & env twins (both hubs, identical skeletons) — all snippets source-grounded - Reviewer-driven connection map applied: 21 cross-link edits across existing pages; /guides/secrets and /aws/guides/secrets absorbed into the Secrets & env pages with 301s in worker.ts - Group icons for the new categories; llms.txt updated Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Four categories in reading order: Stacks (write your program), Deploys (the engine), Environments (same app in many places), Testing & observability; each former guide files beside the concept it extends - Migrating from v1 and CLI promoted to top links - 21 pages got reviewed surgical edits: category framing, concept/guide pair acknowledgements, Where-next footers forming a coherent tour, plural retitles (Stacks, Resources, Bindings, Providers, Actions…), stale sidebar frontmatter dropped - getting-started and what-is-alchemy now fan out to the provider hubs (the old flow dead-ended AWS users at the Cloudflare tutorial) - Group icons + llms.txt regrouped to match; URLs unchanged Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ructure - Categories: Infrastructure as Code (Stacks, Resources, Actions, Inputs & Outputs, References, Resource lifecycle, Providers, Custom Provider), Infrastructure as Effects (Bindings, Circular Bindings, Layers, Building with Layers, Functions & Servers, Phases), State Store, Project structure, Environments, Testing & observability - New pages: File layout (one file per Resource/Layer, group-by-concern Db.ts pattern, Effect-wrapped units, stage-conditional config, the composition root) and Stack References (the practice split out of /concepts/references — staging/pr patterns, infra/app splits, the ref-vs-yield decision table) - Functions & Servers replaces "Platform" as the public name (internal type introduced once); Building with Layers replaces "Infrastructure layers"; system nouns capitalized across titles/labels - Effect-style layers icon for Infrastructure as Effects; Where-next tour re-mapped; llms.txt regrouped; URLs unchanged Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The 502-line guide becomes a one-screen chooser (Monorepo: two annotated file trees + how-to-choose) linking two focused walkthroughs (Single Stack, Multiple Stacks). Every page opens with its file-system layout before prose; snippets carried verbatim, surrounding prose cut to 1-3 lines each. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Drops the intro framing, rule-of-thumb section, and pattern tables. The page now flows from Monorepo → Single Stack → Multiple Stacks: Resource.ref by Logical ID, optional stage/stack props, and importing a Stack tag to depend on its outputs — one line, snippet, one line. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The no-props same-stack/same-stage ref had no motivating use case as
an opener; the page now starts at Resource.ref(id, { stage }) — the
owner/borrower pattern — then another Stack, then Stack outputs.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
/concepts/references reworked to the terse three-form spine (another stage, another Stack, a Stack's outputs) plus condensed escape hatches and deploy order — the resolution-internals tables and selection cheatsheet are cut. /guides/stack-references is deleted (301 → /concepts/references); Project structure is now File layout → Monorepo → Single Stack → Multiple Stacks. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Orient first like the rest of Project structure: alchemy.run.ts composition root, src/*.ts resources and Functions/Servers, and test/*.test.ts, straight from examples/cloudflare-neon-drizzle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rness - /concepts/testing slimmed to the model (~1 screen): real clouds, one deploy per suite, stage isolation, deploy → assert → destroy - /guides/testing-a-stack (new): the end-to-end walkthrough — deploy once, drive over HttpClient, first-request retry, bounded polling, NO_DESTROY iteration, existing-stack/shared-state/seeding patterns, CI - /guides/testing-providers (split): test.provider scratch stacks, out-of-band cloud assertions, replacement verification — interlocks with the Custom Provider guide without duplication - /concepts/test-harness (split, reference): every Test.make option, hook, variant, HttpClient wiring, Bun vs Vitest — anchors preserved - 7 inbound links retargeted; sidebar + llms.txt updated Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- New primary tab (Docs · CLI · Cloudflare · …) at /cli; the overview opens with an annotated command map and documents the interactive TUI (TTY detection, ALCHEMY_TUI/ALCHEMY_PLAIN/CI overrides) for the first time - Deploy: deploy, plan, destroy, nuke (own page — the hidden `alchemy unsafe nuke`, scan/confirm/multi-pass-delete behavior, include/exclude/filter flags, prominent caution), Adopting Resources guide (ownership table, --adopt, AdoptPolicy) - Develop: dev, tail, logs · Auth: login, profile · State: state, Inspecting State guide · Providers: aws, cloudflare - Source beats stale docs: --profile added to plan/destroy tables, stage-regex case claim fixed, no-changes deploys skip the prompt - /guides/cli deleted with a 301 to /cli; inbound links retargeted Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
104 files move into folders mirroring their sidebar sections — Docs tab: infrastructure-as-code/, infrastructure-as-effects/, state-store/, project-structure/, environments/, testing/; hubs: compute/, frontend/, apis/, data/, messaging/, email/, ai/, security/, observability/, networking/; attach providers gain data/. concepts/ and the four guides/ dirs dissolve. CLI stays flat (URLs mirror command names); tutorials were already aligned. URLs follow files: 102 URL changes codemodded across 163 files, 102 301s appended to worker.ts (existing redirect targets remapped), llms.txt sections now enumerate the category folders directly. Sidebars unchanged label-for-label; URL-preserving index.mdx moves for /cloudflare/email and /aws/networking. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tructor - Infrastructure as Effects: new Overview owning the thesis + canonical snippet; reorder to Overview -> Functions & Servers -> Bindings -> Event Sources -> Sinks -> RPC -> Phases -> Layers -> Building with Layers -> Circular Bindings -> Custom Runtime - rename platform.mdx -> functions-and-servers.mdx (301) and reframe around the Effectful Constructor pattern + three declaration variants (inline / inline class / tagged Tag + .make() Layer) - dedicated Event Sources and Sinks pages; binding.mdx keeps a light intro; contract-vs-implementation-Layer duality (*Binding vs *Http, WorkerEnvironment requirement, cross-cloud type error) woven through the category with the deep treatment on Bindings - new Core RPC section (Overview, Schemaless RPC, Effect RPC, Effect HTTP): schemaless is the internal default; schema'd modalities for trust boundaries; hub apis pages re-framed and fixture-corrected (params vs path, HttpPlatform stub, RpcWorker.make signature, TaggedErrorClass httpApiStatus) - Environments moved above State Store; new Auth Providers concept + Custom Auth Provider guide (lazy credential contract, OAuth refresh, env fallback); custom-provider.mdx refocused on lifecycle with required list() and state: on every Stack snippet Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…h->RPC intro flow
- rename Core RPC section to APIs ({} braces icon), rpc/ -> apis/ with
301s; sidebar parity across Core, Cloudflare, and AWS: Schemaless
RPC -> Effect RPC -> Effect HTTP
- new hub pages cloudflare/apis/schemaless-rpc + aws/apis/schemaless-rpc
(platform usage + routing; Core owns the concepts)
- apis/effect-rpc + apis/effect-http rewritten progressively: evolving
./src file trees (ApiSchema.ts, ApiHandlers.ts, ApiService.ts,
ApiClient.ts), one concept per heading, diff blocks per step
- functions-and-servers: progressive intro (Effectful Constructor ->
Fetch -> RPC -> A Worker, end to end) with new Fetch and RPC sections
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…l in hubs - apis/schemaless: pattern-only rewrite — member rules taught by progressive examples (functions returning Effect/Stream are the RPC surface), typed-client mechanism, transports at pattern level, Streams, error codec, limits; platform pairings removed - cloudflare/apis/schemaless-rpc: progressive pairing walkthroughs (Worker->Worker, Worker->DO with streaming, cross-script DO, Containers, dynamically-loaded Workers, async consumers), each flowing into its deeper guide - apis/effect-rpc + apis/effect-http condensed to a concise section per piece (Schema, Handlers, Serve, Client); Cloudflare specifics (RpcWorker/RpcDurableObject sugar, HttpPlatform stub, storage wiring) live on the hub pages only - verify fixes: RPC-callable member rule corrected everywhere, stub fetch/connect pass-through qualified, WorkerLoader snippet matched to real load() args, missing imports added, CORS attribution fixed Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…amework pages - frontends.mdx: overview with at-a-glance support matrix (framework -> resource -> status -> guide); Vite framed as any pure-Vite app - new resource pages: vite.mdx (what the resource invokes, env and binding flow, connects to framework pages) and static-site.mdx - framework landing pages flowing from Vite: vite-spa (React SPA, reworked in place), tanstack-start, react-router (incl. RSC), vue, solidstart — every support claim cited to an example or live test - TODO pages with cautions + verified workarounds: astro (StaticSite path, proven by this docs site's own deployment), nuxt (untested) - Vite.ts JSDoc fixed (no Nuxt claim, flat assets examples, Cloudflare.Website.Vite) and API reference regenerated - inbound updates: hub index Frontend section, workers.mdx blurb (verified frameworks only), React SPA relabels Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
sam-goodwin
marked this pull request as ready for review
July 3, 2026 04:49
DavidJFelix
pushed a commit
to DavidJFelix/alchemy-effect
that referenced
this pull request
Aug 7, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Restructure the docs into per-provider hubs behind a bun.com-style horizontal tab bar, redesign the docs chrome, and build out provider-scale content across seven tabs (~100 new/reworked pages through research → design → review → write agent pipelines).
Navigation
Core · CLI · Cloudflare · AWS · PlanetScale · Neon · More ▾left,Reference · Blogright. Official brand marks for provider tabs; the More ▾ dropdown holds attach providers by category (Observability → Axiom, Source & CI → GitHub) and renders as the current provider inside its hub.Core tab
reconcileobserve→ensure→sync,delete,diff,read/Unowned,list) with auth reduced to a pointer./infrastructure-as-effects) that owns the thesis and the one canonical annotated Worker snippet: Overview → Functions & Servers → Bindings → Event Sources → Sinks → APIs → Phases → Layers → Building with Layers → Circular Bindings → Custom Runtime. Functions & Servers (renamed fromplatform, 301'd) teaches the Effectful Constructor pattern (bind what you need, return what you expose) and the three declaration variants (inline, inline class, tagged Tag/.make()split). The contract-vs-implementation-Layer duality of Bindings (ReadWriteBucketsatisfied byReadWriteBucketBindingorReadWriteBucketHttp; cross-cloud provides are type errors) is woven through the whole category with the deep treatment on Bindings.apispages keep the cloud wiring and now defer to these.CLI + provider hubs
alchemy unsafe nuke— plus Adopting Resources), Develop (dev/tail/logs), Auth, State (+ Inspecting State), Providers; the interactive TUI documented; stale flag tables fixed against command source.compatibility: { date }prop shape,BatchGetItemvs multi-tableGetItem, requiredstate:on every Stack snippet, sink batching semantics).File layout
Content files mirror the sidebar taxonomy on disk: Core sections (
infrastructure-as-code/,infrastructure-as-effects/,apis/,environments/,state-store/,project-structure/,testing/) and hub categories (compute/,data/,messaging/,email/,ai/,security/,observability/,networking/, …) are real folders —concepts/and allguides/dirs dissolve. URLs follow files (100+ changes, all 301'd);llms.txtenumerates the full taxonomy. CLI stays flat so/cli/<command>mirrors command names.Fixes
worker.tsfor every moved URL (markdown-aware), including/infrastructure-as-effects/platform→/infrastructure-as-effects/functions-and-servers.Screenshots
🤖 Generated with Claude Code