Skip to content

feat(www): SonicJS Authentication blog post + scheduled publishing#810

Merged
lane711 merged 1 commit into
mainfrom
lane711/seo-blog-post
Apr 30, 2026
Merged

feat(www): SonicJS Authentication blog post + scheduled publishing#810
lane711 merged 1 commit into
mainfrom
lane711/seo-blog-post

Conversation

@lane711
Copy link
Copy Markdown
Collaborator

@lane711 lane711 commented Apr 30, 2026

Summary

  • New guide post "SonicJS Authentication: A Complete Guide" at www/content/blog/guides/sonicjs-authentication-complete-guide.mdx (~2,300 words) covering password, OAuth, magic link, and OTP flows with JWT + KV-cached verification, RBAC middleware, refresh tokens, and a production hardening checklist. Hero image generated via DALL-E 3.
  • Scheduled publishing: www/src/lib/blog.ts now hides posts with a future publishedAt in production (mirrors the existing draft flag). Affects listings, RSS, sitemap, related posts, category/tag pages, and direct URLs (getPost returns null → 404, generateStaticParams skips the slug). Note: the site is force-static, so future posts surface on the next deploy on/after the publish date.
  • Skill update: .claude/commands/sonicjs-seo-blog.md now always runs hero-image generation after writing MDX (with explicit failure reporting if the OpenAI key is bad) and points at the real content path (www/content/blog/[category]/).

Test plan

  • Build www and confirm /blog/sonicjs-authentication-complete-guide renders with the hero image
  • Check the post appears in /blog, the relevant category page, the RSS feed, and the sitemap
  • Set publishedAt to a future date locally and confirm the post is hidden in next build output but visible in next dev
  • Spot-check the TLDR box, internal links (/authentication, /security, /plugins/oauth), and code examples render correctly

🤖 Generated with Claude Code

- New guide post: SonicJS Authentication: A Complete Guide (covers
  password, OAuth, magic link, and OTP flows with JWT + KV-cached
  verification, RBAC middleware, and a hardening checklist).
- Hero image generated to www/public/images/blog/sonicjs-authentication-complete-guide/hero.png.
- blog.ts now hides future-dated posts in production so authors can
  set publishedAt to a future date and the post stays out of listings,
  RSS, sitemap, and direct URLs until the next deploy on/after the date.
- sonicjs-seo-blog skill updated to always run hero-image generation
  after writing the MDX (with explicit failure reporting) and to use
  the actual content path (www/content/blog/[category]/).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@lane711 lane711 force-pushed the lane711/seo-blog-post branch from 422bb89 to 35c1f44 Compare April 30, 2026 19:44
@lane711 lane711 merged commit c530acc into main Apr 30, 2026
2 checks passed
@lane711 lane711 deleted the lane711/seo-blog-post branch April 30, 2026 20:12
lane711 added a commit that referenced this pull request Apr 30, 2026
Adds 10 new SEO-optimized blog posts on a Mon/Wed cadence using the
future-dated publishedAt scheduling added in #810. Each post is
1,500-2,500+ prose words with a TLDRBox, real SonicJS code examples,
internal doc links, and a DALL-E hero image:

- 2026-05-04 tutorials/building-rest-api-with-sonicjs
- 2026-05-06 tutorials/deploy-sonicjs-to-cloudflare-workers
- 2026-05-11 tutorials/creating-custom-collections-in-sonicjs
- 2026-05-13 tutorials/sonicjs-file-uploads-with-r2
- 2026-05-18 guides/using-sonicjs-with-nextjs
- 2026-05-20 guides/sonicjs-plugins-extending-your-cms
- 2026-05-25 comparisons/sonicjs-vs-wordpress
- 2026-05-27 comparisons/sonicjs-vs-ghost
- 2026-06-01 deep-dives/sonicjs-d1-database-deep-dive
- 2026-06-03 deep-dives/sonicjs-plugin-architecture-deep-dive

Posts stay hidden in production (listings, RSS, sitemap, direct URLs)
until each publishedAt date passes and the next deploy runs.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant