Stu Mason
Stu Mason

Activity

StuMason/progress
stumason.dev
TypeScript
Pull Request Opened

PR #22 opened: Enhance Article CMS with write capabilities and modern UX

Summary

  • Instant draft creation - WordPress/Ghost pattern where clicking "New Article" creates a draft immediately and redirects to edit page (no separate create form)
  • Article ↔ Activities relationship - Many-to-many linking of articles to feed items (activities) with auto-suggest based on date proximity
  • Full status system - Draft → Scheduled → Published with publish panel and scheduling support
  • Cover image upload - Drag & drop or click to upload, properly saved to database
  • Inline image upload - Upload images directly in the markdown editor
  • SEO panel - Auto-fill from content, Google preview, character counts for title/description
  • API write endpoints - Full CRUD for articles via API with Sanctum auth
  • MCP write tools - Create, update, publish, link activities, suggest activities
  • Enhanced articles index - Status filters, word counts, relative time for authenticated users
  • Markdown details/summary - Proper rendering of collapsible sections in digests

Technical Changes

  • New pivot table article_feed_item for many-to-many relationship
  • 5 new MCP tools for article management
  • 6 new API endpoints with FormRequest validation
  • CSRF token meta tag added to app.blade.php
  • rehype-raw added for HTML passthrough in markdown
  • Fixed cover image save using router.patch instead of useForm.patch

Test plan

  • Create new article via "New Article" button - should create draft and redirect to edit
  • Upload cover image via drag & drop - should display and persist after save
  • Link activities to article - should save and display in sidebar
  • Auto-fill SEO fields - should populate from content
  • Publish/schedule/unpublish article - status should update correctly
  • View article in new tab via "View" button
  • Test markdown details/summary rendering in digest articles

🤖 Generated with Claude Code

+4021
additions
-425
deletions
49
files changed