🧶 I Built a Production-Ready Blogging Platform with Django, DRF & Supabase
Source: Dev.to
Overview
I wanted to go beyond a basic CRUD app, so I built StitchTales — a full‑stack blogging platform for creators to publish tutorials and stories. It includes authentication, REST APIs, image storage, and production deployment.
- Live demo: https://stitchtales.up.railway.app
- Source code: https://github.com/sneh1117/stitchtales
Tech Stack
- Django 5.2
- Django REST Framework
- PostgreSQL (Railway)
- Supabase Storage (custom Django storage backend)
- HTMX
- Whitenoise
- Token + session authentication
Core Features
- Full blog CRUD with draft → publish workflow
- Slug‑based URLs + SEO fields
- Categories, tags, view tracking
- Comment moderation + like system (HTMX)
- Profile system with avatars + social links
- Public REST API with permission control
- Production‑ready deployment on Railway
API Endpoints
GET /api/posts/
GET /api/posts//
POST /api/posts/
PUT /api/posts//
DELETE /api/posts//
POST /api/auth/token/
Design Decisions
-
Access control:
- Public read access
- Authenticated write access
- Author‑only updates/deletes
-
Slug‑based lookups instead of numeric IDs for cleaner URLs.
-
Pagination enabled for list endpoints.
Supabase Storage Backend
Instead of using AWS, I built a custom Django storage backend for Supabase. This required:
- Understanding Django’s storage API
- Handling server‑side uploads securely
- Generating public CDN URLs
- Structuring bucket organization cleanly
The approach kept the stack simple while remaining production‑capable.
Frontend Choice
I intentionally avoided a heavy frontend framework. HTMX provided:
- Dynamic likes without page reloads
- Cleaner backend focus
- Simpler architecture
- Faster development
It proved to be the right tool for the project size.
Environment & Configuration
- Local: SQLite
- Production: PostgreSQL
- CSRF + trusted origins configured
DEBUG=Falsein production- Whitenoise for static files
- Sitemap &
robots.txtfor SEO
Production Enhancements
- Automated tests
- CI/CD pipeline
- Redis caching
- Rate limiting
- Social authentication
- Structured logging
Takeaways
This project demonstrates:
- Clean backend architecture
- Thoughtful API design
- External storage integration
- Production deployment awareness
- Full‑stack decision‑making
If you’re hiring for a backend or full‑stack role, I’d love your feedback.
— Sneha