The Client
Internal first. The stack notes already live as Markdown in the admin workspace. People still asked where the live copy was. A folder of files is not a site you can search on a call.
This Built item is a card. It points at docs.pacing.agency. We do not rebuild the docs in Webflow. If you want the page, open the docs site.
The Brief
Turn the Markdown we already keep into a browsable, searchable site. Sync tools/*.md on every build. Host it on Cloudflare Pages. Gate it with Cloudflare Access and Google OAuth.
Algolia covers keyword search and a separate Ask AI index. The theme should look like pacing.agency, not a default Docusaurus skin.
The Approach
Docusaurus is the generator. A prebuild hook runs scripts/sync-tools.cjs, which reads the tool notes, strips old frontmatter, escapes emails, and writes docs/tools. Then Docusaurus builds. Cloudflare Pages deploys from main.
The source of truth stays the Markdown files. Generated docs/tools files are not edited by hand.
1. Markdown
tools/*.md in admin
2. Sync
prebuild hook on push
3. Build
Docusaurus static site
4. Host
Pages + Access
Technical Implementation
Primary URL is docs.pacing.agency. Cloudflare also serves the default Pages host. Repo is Pacing-Agency/techstackdocs. Owner is Ben Power. Monthly cost is £0 on the current Pages usage.
| Layer | Job | Note |
|---|---|---|
| Source | tools/*.md | Do not edit generated copies |
| Sync | scripts/sync-tools.cjs | Runs on every build |
| Site | Docusaurus | Pacing theme, MDX checks |
| Search | Algolia | Keyword index + Ask AI |
| Access | Cloudflare Access | Google OAuth |
| This card | Link-out only | Not a Webflow rebuild |
- Auto-sync: Verified December 2025. Push to main, the tools section updates.
- MDX safety: Emails escaped, file:// links turned into code, secret-looking strings logged.
- Architecture pages: IDs, hosts, and workflows sit next to the tool notes, so a host name has a home.
Results & Impact
- The stack has a public (Access-gated) URL instead of "check the repo".
- Tool notes stay in Markdown. The site is a view, not a second CMS.
- Search works across the notes we already write for ops.
If you need a page that is not in the Markdown, write the note. Do not add a Webflow CMS item and call it docs.
The card on Built exists so the directory can send people to the live host. The article on this page is for review in Webflow. The source of truth is still the docs site.
Why It Worked
We already had the writing habit. We were missing a host and a search box. Docusaurus plus Pages is enough.
- One source: The admin Markdown is the file. The site is a build of that file.
- Link-out card: Built should not pretend this is a Webflow article. The card sends you to the live docs.
- Access in front: Internal notes stay behind Google OAuth. That is why a raw fetch of the URL returns 403.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.






