Skip to content

driga.dev site: docs, generated reference and a landing page with real footage - #57

Merged
vishr merged 1 commit into
mainfrom
feat/site
Oct 24, 2026
Merged

vishr merged 1 commit into
mainfrom
feat/site

Conversation

@vishr

@vishr vishr commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

Documentation site for https://driga.dev, built like the fanout and onebox sites.

Site (site/, Astro 7.4.2 + Starlight 0.42.7):

  • Landing page, Start here, Guides (Flow, Needs you, Chat and actions, Notifications, Projects and machines, Paired machines, Cleanup, MCP, Windows), Explanation and Privacy.
  • Content comes from the README, docs/usage.md and docs/machine-health.md.
  • Light and dark are Catppuccin Latte and Mocha (@catppuccin/starlight 2.1.0), the same themes as the app, with IBM Plex fonts.
  • Borrowed from fanout/onebox: Markdown alternates, llms.txt / llms-full.txt, canonical-URL middleware, and the table, social-card and canonical checks. New: a check of every internal link and anchor.

Generated by cmd/driga-docgen, so these pages cannot drift from the code:

  • CLI reference: from the Kong command tree. cli.NewParser is now shared by --help and the docs.
  • Settings: from the settings table (the same source as .env.example).
  • MCP tools: from the server's real tools/list.
  • Hooks: from a dry run of each installer.
  • Terminal frames: the TUI golden files.

just docs-check is part of just check; a committed-pages test also enforces it.

Deploy: .github/workflows/site.yml builds on main and deploys to the Cloudflare Pages project driga. Before it can deploy, the maintainer needs to:

  • create the Pages project driga;
  • add the CLOUDFLARE_API_TOKEN secret;
  • attach driga.dev.

It reuses fanout's Cloudflare account ID. PUBLIC_GA_MEASUREMENT_ID is optional; without it the site has no analytics.

Checks: npm run build (astro check, 21 pages, all output checks), go run ./cmd/driga-docgen --check, just check and actionlint pass.

Follow-ups:

  • Retire docs/usage.md and docs/machine-health.md, and shorten the README to point at the site, once it is live.
  • Automate web dashboard screenshots.

Landing page and footage (update)

  • New landing page from the approved design: status line, headline, install, a 24 s film, feature sections (Needs you, Flow, Machines) with looping clips, three ways in, local by default, closing install. Geist and Geist Mono site-wide.
  • All footage is the real binary on scripted data: cmd/driga-demo writes a private store, holds the collector lock and runs the real prompt broker; site/footage records the TUI with VHS and driga web (dark and light) with Playwright, then cuts site/public/media with Remotion (about 8 MB). just site-footage regenerates everything.
  • Videos pause off-screen, carry a pause button, and start paused with reduced motion.
  • Docs updated for fix: ask for macOS notification permission when the collector starts #58 (one-time macOS prompt) and feat!: bare driga opens the viewer; drop CLI copies of live views #59 (bare driga opens the viewer; no activity, conflicts, --watch).

https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4

@vishr
vishr force-pushed the feat/site branch 2 times, most recently from 7b15f4d to 79b7a65 Compare October 24, 2026 15:37
@vishr vishr changed the title driga.dev documentation site with generated reference driga.dev site: docs, generated reference and a landing page with real footage Oct 24, 2026
@vishr
vishr force-pushed the feat/site branch 2 times, most recently from f59f0c7 to baeaf84 Compare October 24, 2026 17:05
A Starlight site for driga.dev, built from the code where it can be:

- cmd/driga-docgen writes the CLI, settings, MCP tools and hooks reference
  pages from the parser, the settings table, the MCP server and dry-run hook
  installers; `just docs-check` and the docgen tests fail on a stale page.
- llms.txt, llms-full.txt and a Markdown alternate of every page, including
  the landing page's headings, commands and install line.
- Catppuccin Mocha and Latte as in the app, Geist and Geist Mono, one
  heading scale and focus ring, state colours at 4.5:1 or better.

The landing page leads with real-time screen recordings of the shipped
binary: the terminal from typing `driga` to an allowed permission prompt,
then the same prompt allowed in the browser, then the install command, with
a Terminal · Browser · Install chapter bar. Feature sections play tight
crops of the same takes, light or dark with the site theme; phones get the
Needs-you crop in the hero.

- cmd/driga-demo plays scripted sessions into a private temporary data
  directory: it holds the collector lock, writes the store and runs the real
  prompt broker, so `driga` and `driga web` read it as a live collector. It
  never reads the process table, agent files or Git.
- site/footage records the TUI with VHS and `driga web` with Playwright (a
  drawn pointer, both themes), refusing to film unless the viewer reads the
  demo, and cuts the films with Remotion from film/cut.json.
- Videos live in the R2 bucket driga-assets under content-hashed keys,
  served from assets.driga.dev and listed in src/data/media.json; posters
  are committed. `just site-footage` re-records, `just site-footage-publish`
  uploads.

Docs follow #58 (one-time macOS notification prompt) and #59 (bare `driga`
opens the viewer; no activity, conflicts or --watch). Deployed to Cloudflare
Pages by .github/workflows/site.yml.

Claude-Session: https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4
@vishr
vishr merged commit b565746 into main Oct 24, 2026
4 checks passed
@vishr
vishr deleted the feat/site branch October 24, 2026 18:05
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.

1 participant