MVP Standard Stack — Opinionated 4-Week Architecture
Description
The MVP Standard Stack is di-factory's reference blueprint for delivering a first monetizable version of a digital product in a fixed 4-week sprint. It rejects the industry-default 'build me something' MVP that ships a prototype and dies the day the founder tries to charge for it. Instead it delivers a production-hardened Django application — data models, API contracts, auth, admin, deployment, and observability — ready to accept its first paying customer on day 29.
The stack is opinionated on purpose. Django 5 + PostgreSQL + Django REST Framework + Bootstrap 5 is the constant across every engagement, because opinionation is what buys the 4-week timeline. What changes by client is the cloud path: the four tabs below show the same application deployed against Open Source, AWS, GCP, and Azure — so corporate innovation teams, VC-backed founders, and PyME operators all see a runway they can defend to their CFO, CIO, or board.
Seven layers wrap the app — Presentation, API & Contracts, Application Framework, Database, Storage & Media, Runtime & Deploy, and Observability. Each layer is scoped to what a first-production version needs (auth, migrations, admin, health checks, error reporting) and explicitly excludes what it doesn't (multi-region replication, complex CDN edge logic, ML pipelines). That's what makes the 4-week sprint honest — clients get the architecture that ships, not the one that impresses on a whiteboard.
Below the diagram, three use cases show the standard stack in production shape for the archetypes we sell to hardest in Mexico: a real-estate marketplace, a healthcare access platform, and a fintech onboarding and KYC flow. The stack is the same. The domain model changes. The delivery timeline does not.
Tech Stack
| Element | Open Source Options |
|---|---|
| Presentation — Server-Rendered UI | Django Templates · Bootstrap 5 · HTMX · Alpine.js · WhiteNoise |
| API & Contracts | Django REST Framework · drf-spectacular · SimpleJWT · OpenAPI 3.1 |
| Application Framework | Django 5 · Python 3.12 · Celery · django-allauth · django-environ |
| Database & Cache | PostgreSQL 16 · Redis · pgBackRest · Django migrations |
| Storage & Media | MinIO · local FS · Pillow · django-storages |
| Runtime & Deploy | Docker Compose · Nginx · Gunicorn · GitHub Actions · Certbot |
| Observability | Loguru · Sentry self-hosted · Prometheus · Grafana · Uptime Kuma |
| Element | AWS Options |
|---|---|
| Presentation — Server-Rendered UI | Django Templates · Bootstrap 5 · HTMX · CloudFront · S3 static hosting |
| API & Contracts | Django REST Framework · drf-spectacular · Cognito JWT · API Gateway (optional) |
| Application Framework | Django 5 · Python 3.12 · Celery on ECS · SQS broker · Parameter Store |
| Database & Cache | RDS PostgreSQL · ElastiCache Redis · RDS automated snapshots |
| Storage & Media | S3 · CloudFront CDN · django-storages · S3 presigned URLs |
| Runtime & Deploy | ECS Fargate · ALB · ECR · CodeBuild · CodePipeline |
| Observability | CloudWatch Logs & Metrics · X-Ray · Sentry SaaS · SNS alerting |
| Element | GCP Options |
|---|---|
| Presentation — Server-Rendered UI | Django Templates · Bootstrap 5 · HTMX · Cloud CDN · Cloud Storage static hosting |
| API & Contracts | Django REST Framework · drf-spectacular · Identity Platform JWT · API Gateway (optional) |
| Application Framework | Django 5 · Python 3.12 · Cloud Tasks · Cloud Scheduler · Secret Manager |
| Database & Cache | Cloud SQL PostgreSQL · Memorystore Redis · automated PITR backups |
| Storage & Media | Cloud Storage · Cloud CDN · django-storages · signed URLs |
| Runtime & Deploy | Cloud Run · Cloud Build · Artifact Registry · Cloud Deploy |
| Observability | Cloud Logging · Cloud Trace · Error Reporting · Sentry SaaS |
| Element | Azure Options |
|---|---|
| Presentation — Server-Rendered UI | Django Templates · Bootstrap 5 · HTMX · Azure CDN · Blob static hosting |
| API & Contracts | Django REST Framework · drf-spectacular · Entra ID JWT · APIM (optional) |
| Application Framework | Django 5 · Python 3.12 · Azure Queue Storage · Key Vault |
| Database & Cache | Azure Database for PostgreSQL Flexible · Azure Cache for Redis · geo-redundant backups |
| Storage & Media | Blob Storage · Azure CDN · django-storages · SAS URLs |
| Runtime & Deploy | Container Apps · Azure Container Registry · Azure DevOps Pipelines |
| Observability | Application Insights · Azure Monitor · Log Analytics · Sentry SaaS |
Use Cases
Prop-tech Marketplace for Real Estate Agents
Problem
Real estate agents in Mexico still work off WhatsApp groups, spreadsheets, and PDFs; buyers see fragmented listings, sellers can't measure interest, and the agency burns commissions on manual coordination that a platform should own.
Solution
Django + PostgreSQL marketplace with agent and buyer portals · DRF listing APIs for mobile · admin for content moderation · JWT auth · Stripe or Openpay for commission holdback · CDN-served photo galleries — deployed to the agency's cloud on day 29 with a public URL and first live listings.
Patient-Facing Care Access Platform
Problem
Vulnerable-population care programs collect intake on paper and Google Forms; the clinic knows the patient exists but not their history, and any digital solution stalls at NOM-024 compliance and multi-role access.
Solution
Django + PostgreSQL platform with role-based access (patient / clinician / admin) · QR-linked patient records · lightweight DRF-powered mobile intake app · encrypted PII · audit trails · Stripe or Bansefi hook for co-pays — all NOM-024 compliant, deployable to the health provider's cloud.
Fintech Onboarding & KYC Flow
Problem
A new fintech product needs a working onboarding funnel to open its first accounts — INE upload, liveness check, address verification, KYC status states, and back-office review — and the founder has 4 weeks before the pilot cohort expects to sign up.
Solution
Django + DRF onboarding funnel with document upload to S3 or Blob · liveness webhook to Truora or Metamap · back-office review UI in Django admin · KYC state machine in PostgreSQL · audit-grade event logging — CNBV-ready structure, live for the pilot cohort on day 29.
B2B Wholesale Ordering Portal
Problem
A regional distributor takes reseller orders via WhatsApp, phone, and paper; reps re-key them into spreadsheets, stock is stale, and order errors eat margin. There's no product to launch self-serve.
Solution
An MVP on the standard stack (Django 5 + PostgreSQL + Bootstrap + DRF): a reseller catalog with live stock, cart and order submission, per-customer price tiers, and an admin dashboard — deployed to the client's cloud.
Ready to implement this architecture?
Let's discuss how to adapt this blueprint to your business case.
Schedule consultation