Repository navigation
Polish: markdown tables, dev-docs sidebar, 404 chrome + refactor sweep - #19
Merged
Merged
Conversation
User-visible fixes: - Markdown tables now render. Vanilla remark wasn't parsing GFM tables; added remark-gfm to blog.ts + docs.ts and styled <table> in .blog-content (bordered card with zebra rows, uppercase header, code cells, GFM checkbox lists). - /docs is now a real dev-docs layout — left sidebar with all docs + Resources block (GitHub, blog, API spec, llms.txt), mobile drawer, active state. Right-side TOC still appears on doc detail pages. - 404 page wrapped in MarketingNav + MarketingFooter so users don't hit a dead-end. Added Pricing/Blog/Docs quick links. Refactor sweep (no behavior change): - isPaidTier(tier) helper in lib/pricing.ts. Replaces 4 scattered `tier === "pro" || tier === "family"` checks in billing, settings, admin pages. - useTier() hook in src/hooks/. Collapses three near-identical useEffect blocks (dashboard, billing, settings) into one. Exposes refetch() for the Stripe-redirect flow. - sendEmail() helper in lib/email.ts. Centralises the RESEND_API_KEY-check + Resend SDK + try/catch pattern that was repeated three different ways (raw fetch in register, raw fetch + .catch in forgot-password, Resend SDK in stripe webhook). All three now call sendEmail(). Monthly-report helper also refactored on top of it for consistency. Vitest 68/68 green, tsc clean on touched files.
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.
User-visible
remarkdoesn't parse GFM tables — addedremark-gfmtoblog.ts+docs.ts, plus table styling in.blog-content(bordered card, uppercase header, zebra rows, inline-code cells, GFM checkbox lists). The screenshot you sent ofbuilt-for-claude-codewill look like a proper table now./docsis a real dev-docs layout. Left sidebar listing all docs + Resources block (GitHub, blog, API spec, llms.txt). Mobile drawer. Active state. Right-side TOC stays on doc detail pages.not-found.tsxinMarketingNav+MarketingFooterso users hitting a dead URL can navigate out. Added Pricing/Blog/Docs quick links.Refactor sweep (no behavior change)
isPaidTier(tier)helper inlib/pricing.ts. Replaces 4 scatteredtier === "pro" || tier === "family"checks.useTier()hook insrc/hooks/. Collapses three near-identicaluseEffectblocks (dashboard, billing, settings). Exposesrefetch()for the Stripe-redirect flow.sendEmail()helper inlib/email.ts. Centralizes the env-check + SDK + try/catch pattern that was repeated three different ways (raw fetch in register, raw fetch +.catchin forgot-password, Resend SDK in stripe webhook). All three now callsendEmail(). Monthly-report refactored on top of it too.Verified
npx tsc --noEmit: clean on touched filesnpm test: 68/68 ✓