LP built, CJK typography tuned
2026-02-23
Frontend polish and layout alignment
- Aligned header/footer patterns so borders and content snap to the same 912px width and don’t stretch awkwardly. Moved borders inside the max-width container and refactored padding to the “outer padding + inner max-width” pattern for consistent desktop/mobile behavior.
- Small but visible tweaks in the sidebar: toned the year label to secondary text and styled the show-more button so it blends with tags.
- Updated docs to reflect the actual product model (token-based sharing, LLM provider choice, journal formats, SEO scoped to LP).
CJK typography and i18n
- Scaled down journal body typography specifically for CJK: body and h2 to 17px, h3 to 14px, with adjusted line-height—aiming for visual parity with Latin text.
- Wired LocaleProvider to keep
document.documentElement.langin sync on locale changes so CSS:root[lang="…"]overrides kick in at runtime. - Net effect: more balanced reading sizes in Japanese/Chinese without messing up Latin layouts.
“LocaleProvider now sets document.documentElement.lang … so CSS :root[lang="…"] selectors take effect at runtime.”
Journal sidebar and tag filtering
- Swapped the old combined sidebar API for two dedicated endpoints:
/users/me/journals/monthsand/users/me/journals/tags, fetched in parallel. Tag model now uses slug/name. - Fixed tag filtering to use
GET /users/me/journals?tag=…and switched to offset-based pagination to match the backend. - Limited visible tags to the top 8 with a Show more/less toggle to cut clutter.
Landing page build and release pipeline
- Shipped the full LP with i18n and all sections (PR #13), then aligned header/footer styling with the app.
- Added a mobile hamburger menu with a slide-down panel plus some
next/fontoptimizations and i18n for the “popular” badge. - Dropped in a new “Problem Statement” section (“You want to journal, but…”) to surface the core pain points up front (PR #50).
- Set up CI/CD with a production deploy workflow and a
main(staging) →production(release) flow (PR #15).
Workflow: main (staging) → production (release)