Source for the Augur reboot website at www.augur.net.
The site is an Astro + React frontend for Augur reboot content, blog/learn pages, and a fork-risk monitor backed by periodically generated on-chain data.
- Astro 5 with selective React islands
- React 19 for interactive components
- Tailwind CSS 4 via CSS-first
@theme/@utilitydirectives - Biome for linting
- TypeScript with separate app/script configs
- ethers.js 6 for fork-risk data collection
- GitHub Actions + GitHub Pages for production deployment
- Cloudflare Workers/Wrangler for local preview and manual deploy paths
src/
├── components/ # Astro + React UI components
├── content/ # Blog and Learn content collections
├── layouts/ # Page/content layouts
├── lib/ # Shared utilities and rehype plugins
├── pages/ # Astro routes
├── providers/ # React context providers for fork monitor data/demo state
├── styles/ # Tailwind v4 CSS-first global stylesheet
├── types/ # Shared TypeScript types
└── utils/ # Client-side helpers and demo data
scripts/
├── calculate-fork-risk.ts
└── probe-fork-state.ts
public/
├── cache/event-cache.json
└── data/fork-risk.json
docs/
├── INDEX.md
└── ...project documentation
Start with docs/INDEX.md for deeper architecture, fork-monitoring, protocol, and feature documentation.
- Node.js 22, matching CI
- npm
npm install| Command | Purpose |
|---|---|
npm run dev |
Start Astro dev server at localhost:4321 |
npm run typecheck |
Run Astro/TypeScript checks |
npm run lint |
Run Biome lint using the local dependency |
npm run build |
Build the site |
npm run build:gh-pages |
Build with GitHub Actions/GitHub Pages mode enabled |
npm run build:fork-data |
Generate public/data/fork-risk.json from on-chain data |
npm run preview |
Build then preview with Wrangler |
npm run deploy |
Build then deploy with Wrangler |
npm run cf-typegen |
Generate Cloudflare binding types |
Before declaring work done, run:
npm run typecheck
npm run lint
npm run buildAstro chooses deployment mode from environment:
GITHUB_ACTIONS=true→ static GitHub Pages build (output: "static")- otherwise → Cloudflare adapter/server build for local Wrangler workflows
Production site metadata uses environment variables supplied in CI:
SITE_URLBASE_PATHPUBLIC_GA_ID
The fork monitor is documented in:
docs/fork-mechanics.md— protocol contextdocs/fork-monitoring-pipeline.md— CI/data pipelinedocs/fork-monitoring-methodology.md— calculation method
In development, press F2 to toggle fork-monitor demo controls. Demo scenarios are development-only and are disabled in production builds.
Tailwind is configured CSS-first in src/styles/global.css:
@themedefines design tokens.@utilitydefines custom utility families.- There is no
tailwind.config.js.
Biome is configured in biome.json, including Tailwind directive parsing for CSS.
build-and-deploy.yml runs on:
- hourly schedule
- pushes to
main - pull requests targeting
main - manual workflow dispatch
Jobs:
- risk-monitor — install dependencies, generate fork-risk data, upload artifact
- build — typecheck, lint, build, upload GitHub Pages artifact
- deploy — deploy GitHub Pages artifact on
main
Use raw Git worktrees under .worktrees/ when parallel branch checkouts are useful:
git fetch origin
git worktree add -b feature/example .worktrees/feature-example origin/mainRemove when done:
git worktree remove .worktrees/feature-example
git worktree prune