Cut onboarding, cleaned SEO, shipped OGPs
2026-03-14
App polish and onboarding
- Trimmed onboarding from 3 steps to 2 and added a persistent next-action banner so folks hit the app faster (PR 429).
- Added a GitHub App install prompt for private repo access and localized the copy. Snapped tests and bumped versions to 0.2.0 → 0.2.1 along the way.
- Piped Public API docs links into the app (settings, upgrade prompts) and aligned wording with the LP. Small but it removes a bunch of “where’s the API docs?” friction.
Landing page + SEO
- Big hreflang/sitemap sweep: added alternates to the sitemap, then fixed the API page mismatch (restrict to en + x-default), removed redirecting API URLs, added x-default consistently, and noindexed 404/error pages. Also fixed a heading-level jump and extracted shared
INTEGRATION_SLUGS. Version bump to 0.2.2. (PR 106) - Added social links (X + Bluesky) in the footer and included Bluesky in Organization JSON-LD
sameAs, with outbound click tracking wired up.
Blog and content pipeline
- Published the founding story post, “The diary I couldn't keep,” and dropped a content-ideas doc with a big backlog to work through.
- Built a Gemini “Nanobanana” infographic generator CLI that reads a post’s markdown and spits out brand-consistent summary images (
gemini-2.5-flash-image). Usage:npm run infographic -- src/content/blog/<post>.md [--size 1080x1350]. Switched output topublic/infographics/and checked in the generated images. - Shipped per-article OGP generation at build time with
satori+@resvg/resvg-js, matching the app’s share design and falling back to/og.pngfor non-articles. (PR 6)
Org housekeeping
- Set up the public org profile README for deariary and scrubbed an old personal sample diary URL from the profile. Clean slate for the org presence.