A personal tech blog built with Django, featuring insights on AI, systems architecture, software engineering, and cybersecurity. Deployed on Fly.io with PostgreSQL and persistent volume storage.
Built With
- Django 5.1 - Python web framework
- Fly.io - Edge deployment platform
- PostgreSQL - Fly Postgres database
- WhiteNoise - Static file serving
- Gunicorn - WSGI HTTP server
Features
- Dynamic content management via Django admin
- Comment system with validation
- Tag-based categorization
- Responsive design with mobile support
- HTTPS with HSTS security headers
- Session-based saved posts
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Django 5.1 |
| Language | Python 3.11 |
| Database | PostgreSQL |
| Static Files | WhiteNoise |
| Media Storage | Fly Volumes |
| Deployment | Fly.io |
Architecture
Django App
├── Portfolio App (Posts, Authors, Tags, Comments)
├── Admin Dashboard
└── Template Engine
Fly.io Infrastructure
├── App Machine (shared-cpu-1x)
├── Fly Postgres (attached database)
└── Persistent Volume (/data/media)
Security
- CSRF protection with trusted origins
- Secure cookie configuration
- HSTS with 1-year max-age
- Password validation policies
- XFrame options protection
Preview
Visit the live blog at blog.ericgitangu.com
Connect
- Portfolio: developer.ericgitangu.com
- LinkedIn: linkedin.com/in/ericgitangu
- GitHub: github.com/ericgitangu