Repository navigation
v1.0.9
v1.0.9 - Blog Admin & Shop Launch Hardening
Blog Admin
The DevLovers platform now includes full blog content management directly from the admin panel.
- Create, edit, preview, publish, schedule, and delete blog posts
- Tiptap WYSIWYG editor with headings, lists, task lists, code blocks, images, links, and sticky toolbar
- Cloudinary image upload with preview
- Inline author and category creation directly from the post form
- Locale-aware blog preview rendering
- Blog admin navigation for Posts, New Post, Authors, and Categories
Authors & Categories Management
Blog supporting content can now be managed fully without external CMS tooling.
- Author CRUD with multilingual profiles
- Profile photo upload and social media links for authors
- Category CRUD with inline editing
- Display-order management for blog categories
- Validation and admin API coverage for posts, authors, categories, and uploads
Blog Performance & Publishing Flow
This release also improves public blog delivery and cache consistency.
- Draft, scheduled, and published workflow for blog posts
- Blog post pages moved from force-dynamic rendering to ISR
- Shared 7-day revalidation strategy across blog pages
- Cached query layer for blog list, post, category, search, and author routes
- Correct revalidation after admin mutations for posts, authors, and categories
- Cached blog category loading on public pages
Shop Launch Hardening
The Shop module received another launch-readiness hardening pass focused on production safety.
- Checkout provider resolution is now server-authoritative and fail-closed
- Legacy order creation paths with
paymentProvider='none'removed from production-facing flow - Stripe refunds now enter a contained non-shippable state before reconciliation
- Admin shipping actions now require a valid compatible shipment record
- Centralized eligibility checks for non-shippable and refund-contained orders
- Monobank admin refunds disabled for launch
- In-app return refunds disabled for launch
Fixes & Reliability
- Fixed inconsistent
revalidatePathbehavior for localized blog routes - Fixed public blog cache invalidation after content updates
- Prevented double finalization and double restock during Stripe refund recovery flows
- Blocked shipment queuing and admin shipping transitions for refund-contained orders
- Expanded Shop regression coverage for checkout, refunds, webhooks, and shipping guards
Database: PostgreSQL (Neon)
Caching: Upstash Redis
Hosting: Vercel
Live: https://devlovers.net