OGP & infographics shipped; SEO fixes
2026-03-14
Quick summary
- Big chunk of work landed across the three deariary repos: blog, frontend, and LP.
- Ship highlights: per-article OGP images, a Gemini-based infographic generator, onboarding and docs links in the app, and several sitemap/hreflang/SEO fixes.
- Also added the founding blog post and a content-ideas doc to seed future posts.
Blog / content
- Published the founding story post "The diary I couldn't keep" and checked in a long content-ideas doc (90+ ideas) as a task list for future posts.
- Added a CLI infographic generator using Gemini (Nanobanana) that reads a markdown post and emits a layout-aware summary image.
- Tool usage:
npm run infographic -- src/content/blog/<post>.md [--size 1080x1350] - The generator outputs to
dist/infographics/by default (gitignored). I also changed output to commit some generated images intopublic/infographics/for the two existing posts.
- Tool usage:
- Built per-article OGP image generation at build time using
satori + @resvg/resvg-jsso each post now has a unique 1200×630 share card that matches the frontend design. - Key PRs:
- OGP images: feat: generate per-article OGP images at build time
- Infographic generator: feat: add Gemini Nanobanana infographic generator for SNS posting
- Content + ideas: PR adding the founding post and ideas doc.
Frontend & onboarding
- Reduced onboarding flow from three steps to two (Setup → Format) and added a persistent next-action banner so users can get to the app faster.
- Added Public API docs links across app surfaces (Settings > API Keys, upgrade prompts, billing rows) so users can find docs from multiple places.
- Added an install prompt / direct GitHub App install link for private repository access in the GitHub integration settings.
- A bunch of small fixes and snapshot updates (localization tweak for private repo prompt, footer link label alignment, tests).
LP / SEO & social
- Sitemap + hreflang work:
- Added
<xhtml:link rel="alternate" hreflang="...">entries to sitemap URLs so Google can pick up hreflang signals from XML as well as HTML. - Fixed a hreflang mismatch on the API page (now restricts alternates to
en+x-defaultwhen non-English locales redirect to/en/api) and added noindex to 404/error pages. - (See PR: add hreflang alternates to sitemap)
- Added
- Footer: added X (Twitter) and Bluesky social links, with a
SocialIconcomponent, aria labels, and outbound analytics tracking.
Repo / org housekeeping
- Bumped versions: blog → 0.1.0, frontend → 0.2.1 (minor 0.2.0 earlier), lp → 0.2.2.
- Updated snapshots / tests in several places after the UI changes.
- Org README and a small cleanup landed in the
.githubrepo (removed a personal sample diary URL, added public org profile README). - Repo metrics still small (each repo has 1 star, frontend shows 46 open issues, lp 2 open issues). Total today: 20 commits, 9 PRs merged.
Next things to track
- Make sure the generated OGP images and committed infographics are correctly served from
public/infographics/and are picked up by social scrapers. - Monitor onboarding completion after the two-step change and the visibility of the new Public API links in user flows.
- Validate sitemap hreflang signals in Search Console after the XML changes.