Files
margin/website/README.md
T
2026-06-22 11:45:21 -04:00

49 lines
1.7 KiB
Markdown

# margin website
The marketing site for **Margin** — the offline book-writing and publishing app. Built with
[Astro](https://astro.build), it's a single landing page that ships almost no JavaScript and
reuses the app's *Quiet Press* design system (Literata + Hanken Grotesk, warm light/dark themes).
## Develop
```sh
cd website
pnpm install
pnpm dev # http://localhost:4321
pnpm build # static output to website/dist/
pnpm preview # preview the production build
```
## Where to change things
Almost everything lives in **`src/data/site.ts`**:
- `price` — the one-time price (`"$5"` / `"$10"` …). Shown everywhere automatically.
- `repo` — the GitHub repo (`priyanshujain/margin`) that hosts release artifacts.
- `buyUrl` — point this at a payment processor (Gumroad / Polar / Stripe / Lemon Squeezy)
when one is wired up; until then it falls back to the GitHub releases page.
- `faqs`, `compare`, `publishTargets` — the page content.
## Downloads
Download buttons resolve the **latest GitHub release** asset per OS at runtime
(`src/components/DownloadScript.astro`):
- macOS → `.dmg`
- Windows → `.msi`
- Linux → `.AppImage` (falls back to `.deb` / `.rpm`)
The OS is auto-detected for the primary button. If the GitHub API is unreachable or there's no
published release yet, every button falls back to the releases page — so they always work.
## Deploy
`pnpm build` produces a fully static `dist/` that hosts anywhere — GitHub Pages, Cloudflare
Pages, Netlify, Vercel. Set the real domain in `astro.config.mjs` (`site`) for correct
canonical / Open Graph URLs.
## Fonts
`public/fonts/` carries the same OFL variable fonts the app bundles (Literata, Hanken Grotesk),
so the site matches the product exactly.