mirror of
https://github.com/priyanshujain/margin.git
synced 2026-10-02 11:07:04 +00:00
49 lines
1.7 KiB
Markdown
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.
|