# dummy.cafe Landing page for dummy.cafe. ## Development Package manager is **bun**. ```sh bun install # first time bun dev # local dev server on http://localhost:4321 bun run build # production build into ./dist/ bun preview # preview the built site bun astro check # type-check .astro / .ts files ``` ## Deploy ```sh bun run deploy ``` That runs `astro build`, copies `clutter/*` over the built site (see below), and `wrangler deploy`s to Cloudflare Workers. Custom domains `dummy.cafe` and `www.dummy.cafe` are bound via `wrangler.toml`. ## Layout ``` public/ assets/ brand/ site-wide brand assets (og-card, logo, favicon source) people/ contact avatars projects/ per-project marks (lsky, realms) favicon.svg phase 1E stacked-tag favicon source → see Images below src/ components/ marks/ PdsMark, LskyMark, RealmsMark (card hero art) ContactPerson.astro Navigation.astro ProjectCard.astro Wordmark.astro reusable text mark layouts/Layout.astro pages/ index.astro hero + projects grid + contact pds.astro PDS-specific content (sub-site) 404.astro styles/global.css Tailwind v4 + @theme design tokens clutter/ hand-written files served at site root, NOT part of the astro build — the deploy script copies these into dist/ after the build. login.json (ATProto OAuth client metadata), countdown.html, etc. ``` If you add a file that must be served at a stable URL outside Astro's page pipeline (e.g. an OAuth client metadata JSON referenced by external services), put it in `clutter/`, not `public/`. ## Images Two image pipelines worth knowing about: ### Favicon — automatic Source of truth: **`public/favicon.svg`** (phase 1E stacked `<` / `/>` in JetBrains Mono Bold, green on dark). At build time, the [astro-favicons](https://github.com/ACP-CODE/astro-favicons) integration rasterises it into every size anyone might want: a real multi-size `.ico`, 16/32/48 PNGs, `apple-touch-icon.png`, Android Chrome 192/512, Microsoft tile icons, a web manifest, `browserconfig.xml`, and the full set of `` / `` tags auto-injected into every page's ``. Brand colors (`#0b0f0d` tile bg, etc.) are configured in `astro.config.mjs`. To change the favicon: edit `public/favicon.svg`. That's it — `bun run build` regenerates everything downstream. ### OG / share card — manual `public/assets/brand/og-card.png` (1200×630) is the image that Discord / iMessage / Slack / Twitter show when someone pastes a dummy.cafe link. It's referenced from `Layout.astro` as `og:image` + `twitter:image`. **This one is hand-authored in Figma and exported as a PNG.** There's also an `og-card.svg` committed next to it as a design reference, but it isn't what gets served — the PNG is. If you update the card, export a new 1200×630 PNG from Figma and drop it at that path. Why not auto-generate? `rsvg-convert` silently ignores `font-feature-settings`, so JB Mono's `/>` ligature stays live no matter what the SVG says. Rendering via headless Chrome works, but adding a browser to the build pipeline for one image isn't worth it — Figma export is faster and gives pixel-perfect control.