Django Portfolio

Building and Deploying a Full-Stack Developer Portfolio

Overview

As a full stack developer preparing to enter the EU tech market, I needed a professional, production ready portfolio that showcased my technical range, design sensibility, and backend capabilities. The challenge was not only building the portfolio itself but ensuring it could be deployed reliably on modern cloud infrastructure without runtime conflicts or brittle configurations.

Technologies

  • CSS
  • Django
  • Javascript
  • Python
  • Sass

Purpose & Objectives

The goal of this project was to create a unified, polished platform that presents my work, communicates my skills, and supports future expansion into blog content, case studies, and SaaS experiments. Beyond aesthetics, the portfolio needed to demonstrate real engineering discipline: clean architecture, secure configuration, and cloud ready deployment practices.

Key Features

  • - Fully responsive personal portfolio showcasing projects, case studies, and a blog section.
  • - Django-powered backend enabling dynamic content management and future scalability.
  • - Clean UI/UX with custom SCSS architecture and optimized static assets.
  • - Cloud-ready configuration with environment variables, static file handling, and production server setup.
  • - Automated deployment pipeline using Render Blueprints for consistent Python runtime and build behavior.

Architecture & Structure

  • - Django backend structured with modular apps for portfolio, blog, and case studies.
  • - Frontend built with SCSS, vanilla JavaScript, and reusable HTML templates.
  • - Static and media file management configured for production using Whitenoise and optional Cloudinary integration.
  • - PostgreSQL-ready backend using dj-database-url and psycopg2-binary for cloud deployment.
  • - Infrastructure-as-code approach using render.yaml to define environment, build commands, and runtime version.

Technical Challenges

  • - Render’s auto-detection repeatedly defaulted to Python 3.13.4, breaking PostgreSQL dependencies.
  • - Mixed frontend/backend repo structure caused Render to misclassify the project as a static site.
  • - psycopg2-binary failed to compile under Python 3.13, requiring strict runtime control.
  • - Deployment required restructuring the project and adopting Blueprint-based provisioning to enforce correct configuration.

Accomplishments

Through this project, I built a complete full stack portfolio from scratch, integrated a Django backend, and resolved complex deployment issues involving Python runtimes, dependency compilation, and cloud auto detection. I learned how to structure a hybrid repo, how Render interprets project metadata, and how to enforce deterministic deployments using Blueprints and render.yaml. The final result is a stable, scalable, and professional portfolio that reflects both my technical ability and my problem solving mindset.

Lessons Learned

This experience reinforced the importance of clean architecture, explicit configuration, and understanding how cloud platforms interpret project structure. What began as a simple portfolio evolved into a real-world deployment challenge that sharpened my backend skills and deepened my confidence in debugging production environments. The lessons learned here will directly influence how I design, structure, and deploy future applications — especially as I continue building toward more ambitious SaaS and backend driven projects.

Back to Projects