μblog docs

μblog docs

a reference web application built with Django and Vue.js deployed on AWS with ECS Fargate

Introduction

Full Stack

This project covers the full technology stack of modern web applications, from frontend to backend to CI/CD and Infrastructure as Code

Twelve-Factor App

This project adheres to the 12Factor App philosophy

Best Practices

This project focuses on implementing a simple application with all of the best practices you would see in a healthy, production-ready application

IaC Rosetta Stone

This project implements the same application architecture using CDK, Terraform and Pulumi

GitHub Actions

GitHub Actions is used for Continuous Integration and Continuous Delivery, including infrastructure and application pipelines

AWS ECS Fargate

This project focuses on running containerized Django applications using ECS Fargate, a serverless compute offering from AWS

FBVs and CBVs

The backend Django app is implemented using Django templates using both functions-based views and class-based views

DRF and GraphQL

The Django app also implements an API using both REST with DRF and GraphQL with Graphene

Quasar Framework

A frontend client built with TypeScript, Vue.js, and Quasar Framework consumes the DRF REST API

Python and TypeScript

Python is used on the backend and TypeScript is used for both the frontend client and infrastructure code

Load testing

The project uses k6 for simulating traffic which can run locally or using GitHub Actions

Developer Experience

This project aims to have a simple and understandable developer experience

compose and venv

Local backend development can be done with both virtual environments and docker compose

Testing and coverage

pytest is used for backend tests, and test coverage is measured with pytest-cov

This documentation covers lots of different topics that are related to various aspects of the project. The project aims to provide two things:

  • a working example of a sample web application called μblog.
  • in-depth technical guides on how to build each part of the application

At a high level, the documentation can be broken down into the following categories:

  • Django application set up
  • Local development environment

How to get help

This project is driven by a community of contributors. If you are having trouble with any part of this application, you can get help in a number of ways: