Project: Blog & Portfolio Platform

By Martin Moyér 3 min read March 25, 2025
Project: Blog & Portfolio Platform

Project Debrief

I've built a Django-based web app that combines a personal portfolio and tech blog into a single, flexible platform for publishing projects, insights, and ongoing work.

Idea

The project started with a simple need: a space to document and share my work, research, and reflections across tech, strategy, and related areas. Off-the-shelf solutions didn’t offer the control or structure I wanted, so I built a custom platform tailored to my workflow. The goal was to create something that could grow with me—part archive, part publication, part digital workspace.

Connecting the Dots

To bring the idea to life, I outlined a critical path:

  1. Architecture & UX shaped around my workflow
  2. Backend with Django
  3. Frontend with Tailwind CSS and JavaScript
  4. Deployment pipeline and infrastructure with Docker, GitHub and Azure
  5. Analytics layer for a digital feedback loop

I structured the platform around two core content types — Projects and Blog — each with its own templates, metadata, and publishing flow.

On the backend, Django powers a streamlined admin with live previews and an efficient editing experience. The frontend is responsive and fast, built with Tailwind CSS and enhanced by JavaScript for smooth filtering and navigation.

Deployment is containerized with Docker, automated via GitHub Actions, and hosted on Azure. Media is served from Blob Storage. A custom middleware layer tracks engagement data like views and downloads, providing lightweight, actionable insights.

The result is a personal archive and publishing engine that feels intuitive to use and grows alongside me.

Reflection

Looking back, this project taught me the importance of aligning vision with action. Starting with a clear plan helped me bridge the gap between what I wanted to build and the skills I needed to develop. From writing Python and designing UX, to configuring Docker builds and setting up CI/CD pipelines, the project was a full-stack bootcamp of my own making.

One tricky part was deploying to Azure Web App using Docker. While the Docker setup was straightforward in isolation, getting it to work reliably within Azure’s managed environment came with challenges—especially around environment variables, build contexts, and persistent storage. Media uploads were the biggest issue: since the containerized app couldn’t reliably access the Web App’s persistent storage, I shifted to Azure Blob Storage. That required reworking media handling with django-storages and securing access with SAS tokens, but the result is a setup that’s stable and production-ready.

In conclusion, this isn’t just a site. It’s a live artifact of learning and making, and a solid foundation I can keep building on.

 

See the full project description with images, demos and more here: Blog & Portfolio Platform

Share: