Skip to content

Migrate website from Docusaurus to Revolution + Staticalize#319

Merged
cowboyd merged 2 commits intomainfrom
cl/revolution-www
Apr 10, 2026
Merged

Migrate website from Docusaurus to Revolution + Staticalize#319
cowboyd merged 2 commits intomainfrom
cl/revolution-www

Conversation

@cowboyd
Copy link
Copy Markdown
Member

@cowboyd cowboyd commented Apr 10, 2026

Motivation

The current website is built with Docusaurus, which requires a Node.js build step, Yarn, Volta, and a separate TypeDoc build for API docs. This is out of step with how other Frontside projects (effection, frontside.com) build their websites using Revolution + Staticalize — a Deno-native approach with no build step and server-rendered HTML.

Approach

Replace the website/ directory (Docusaurus) with a www/ directory using the same Revolution + Staticalize setup as thefrontside/effection/www and thefrontside/frontside.com:

  • Revolution server (main.tsx) serves all routes with no build step — just deno run -A main.tsx
  • Guides loaded from markdown files via an MDX pipeline with Prism syntax highlighting
  • API docs generated at runtime from packages/html/mod.ts and packages/material-ui/mod.ts using @deno/doc — no separate TypeDoc build
  • Sitemap generated from route definitions via sitemapPlugin
  • Staticalize crawls the running server and produces clean static HTML (73 pages)
  • CI workflow (www.yaml) replaces both website.yaml and deploy-api-docs.yml — serves, staticalizes, and deploys to Deno Deploy

Visual design preserves the Interactors brand (pink/violet/blue gradient header, Proxima Nova, navy text) while converging on the effection structural patterns (sticky gradient header, grid footer, tailwind utilities).

Alternate Designs

Could have kept Docusaurus and just updated the deployment, but that would not satisfy the "no build step" constraint and would remain inconsistent with the other Frontside web properties.

Possible Drawbacks or Risks

  • The old Netlify deployment and any DNS pointing to it will need to be decommissioned
  • API docs are simpler than the old TypeDoc output — they render JSDoc as markdown rather than full TypeDoc HTML with inheritance trees

TODOs and Open Questions

  • Verify Deno Deploy project interactors accepts the new deployment
  • Decommission old Netlify site and DEPLOY_API_HTML_V1 / DEPLOY_API_MUI_V4 secrets
  • Confirm frontside.com proxy route still works with the new site structure

Learning

  • Revolution — Deno SSR framework using Effection structured concurrency
  • Staticalize — Crawls a running server and writes static HTML
  • @deno/doc — Programmatic access to Deno's documentation generator

Replace the Docusaurus-based website with a Revolution server that
matches the pattern used by thefrontside/effection/www and
thefrontside/frontside.com.

- No build step: `deno run -A main.tsx` starts the server directly
- No client-side router: pure server-rendered HTML
- Sitemap generated from route definitions via sitemapPlugin
- Staticalizes cleanly to static HTML

Key changes:
- Remove website/ (Docusaurus, Node.js, yarn)
- Add www/ with Revolution server, Tailwind CSS, MDX pipeline
- API docs generated at runtime via @deno/doc from package sources
- Replace website.yaml and deploy-api-docs.yml with www.yaml workflow
- Add www to deno workspace, enable nodeModulesDir for Tailwind
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 10, 2026

Package Changes Through ebd9062

There are 1 changes which include @interactors/core with patch

Planned Package Versions

The following package releases are the planned based on the context of changes in this pull request.

package current next
@interactors/core 1.0.1 1.0.2
@interactors/keyboard 1.0.1 1.0.2
@interactors/html 1.0.1 1.0.2
@interactors/material-ui 5.0.0 5.0.1

Add another change file through the GitHub UI by following this link.


Read about change files or the docs at github.com/jbolda/covector

Tailwind v4 requires theme values in CSS @theme directives, not just
the JS config. The font-family and color palette were not being picked
up from tailwind.config.ts alone.
@cowboyd cowboyd merged commit f19253c into main Apr 10, 2026
5 checks passed
cowboyd added a commit to thefrontside/frontside.com that referenced this pull request Apr 10, 2026
No longer needed since thefrontside/interactors#319 replaced
Docusaurus, which had the base URL baked into its client-side JS
and required root rewriting to compensate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants