This portfolio was originally built as a fully modular, backend-driven application using Django REST Framework with an admin panel to manage all content (profile, projects, skills, experience) dynamically.
For deployment and long-term reliability, the project was later converted into a frontend-only version using static JSON data, while preserving the same modular architecture.
🔗 Live Demo: https://ahamed-beige.vercel.app/
This approach ensures:
- Zero backend downtime
- Faster load times
- Free and stable hosting
- Clean separation between content and UI
Frontend
- React (TypeScript)
- Vite
- CSS (custom styling)
Backend (up to commit 3955cd2)
- Django
- Django REST Framework
- Django Admin
- PostgreSQL
Deployment
- Frontend: Vercel
- Contact Form: EmailJS (no backend dependency)
- Modular by design: each section (Projects, Skills, Experience, Contact) is isolated and reusable
- Backend-editable content (initial version): all data managed via Django Admin
- Frontend-only deployment (current): content served via static JSON for reliability
Backend-heavy logic is intentionally showcased in separate projects, not coupled to the portfolio itself.
(Up to commit 3955cd2)
This version uses Django as a content API.
git checkout 3955cd2
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
cd frontend
npm install
npm run devYou can now manage all portfolio content via Django Admin.
This version removes backend dependency for ultimate deployment simplicity.
git checkout main
cd frontend
npm install
npm run devAll portfolio content lives in one file: public/data/portfolio.json
- The portfolio is read-only by nature.
- Running a backend only to serve static content:
- Adds unnecessary cost
- Introduces cold starts on free tiers
- Increases failure points
- Fork the repository
- Edit public/data/portfolio.json
- Replace assets in public/media/
- Deploy to Vercel
