Beta#354
Draft
TheAngryRaven wants to merge 14 commits into
Draft
Conversation
Public /updates blog with admin-portal authoring: Supabase posts table, markdown bodies, derived excerpts, WordPress-style slugs, tags, and an AI-assisted flag. Records the decisions (cloud-gated routes, react-markdown, client-side tag filtering) and the deferred SEO work. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
New public.posts table for the updates blog: markdown body, tags[], ai_assisted flag, published gate. Anon reads published rows only; admins get full CRUD via has_role — same RLS archetype as leaderboard_entries. Partial index on (published_at desc) where published serves the public listing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
lib/blogPosts.ts: PostRow/BlogPost types + row mapping, WordPress-style slugify (diacritics stripped, 80-char cap at a hyphen boundary), markdown excerpt derivation with a tunable length knob, and tag normalization/union helpers. All pure, no Supabase import; 21 Vitest cases. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
react-markdown + remark-gfm in a new vendor-markdown chunk (lazy pages only — stays off the eager landing payload). Shared MarkdownContent renderer with prose/dark:prose-invert token overrides; @tailwindcss/typography (already a devDep) now registered. Credits updated in README + CreditsDialog. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
postsClient (leaderboardClient pattern, untyped posts table) with anon reads and admin CRUD. /updates lists published posts with derived excerpts and client-side tag-pill filtering; /updates/:slug renders the markdown body with the DriverProfile load-state model. useDocumentHead grows optional og:type, article times, and a JSON-LD script for BlogPosting structured data. New lazy 'updates' i18n namespace across all 7 languages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
Inline post editor following the TracksTab house style: auto-slug from title until hand-edited, markdown body with Write/Preview toggle (shared MarkdownContent renderer), tag chips with previously-used suggestions, AI-assisted + Published switches (first publish stamps published_at), quick publish toggle on list rows, friendly duplicate-slug toast. Admin i18n keys added across all 7 locales. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
sitemap.xml and llms.txt gain the /updates page, CHANGELOG documents the blog under 3.1.1, and the CLAUDE.md architecture map notes the new pages. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
0011 was claimed by concurrent work; the design record and every in-code plan citation (and prior commit messages on this branch) move to 0012. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
…yoeu plan 0012: Updates blog — public /updates pages + admin CMS
|
Updates to Preview Branch (BETA) ↗︎
Tasks are run on every commit but only new migration files are pushed.
View logs for this Workflow Run ↗︎. |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
lapwing | 2e99c28 | Commit Preview URL Branch Preview URL |
Jul 25 2026, 05:17 AM |
The public reads relied on RLS alone, but policies OR together: an admin's session satisfies 'Admins read all posts', so their own drafts showed up on /updates. The public queries now filter published=true explicitly; RLS stays the gate for everyone else. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
New rss-feed edge function renders the RSS 2.0 feed server-side — feed readers can't run the SPA and hosting is static-assets-only. Anon-key read of published posts (RLS gate), 15-min edge cache, tags as categories. lib/rssFeed.ts derives the URL from the baked backend; /updates gets a subscribe pill and both public pages emit the rel=alternate autodiscovery link via a new useDocumentHead feedUrl option. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
…yoeu plan 0012: updates blog follow-ups — draft visibility fix + RSS feed
The hand-maintained roadmap list drifted from reality, so it's gone (keys removed across all 7 locales). In its place: two ActionTile-styled panels — the newest published post tagged 'web update' and the newest other news (date + title only, tap-through to the post) — under an All-updates button. Cloud-gated; summaries-only fetch via dynamic import (eager landing graph stays Supabase-free) and the section hides itself offline or when empty. splitLatestByTag is pure + tested. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Su6PHag9FiG2AL3mhmzvSp
…yoeu plan 0012: replace landing roadmap with a Latest Updates teaser
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.