Boilerplate SaaS Destacado Acceso Libre 20 Feb, 2026

Boilerplate: Django SaaS Starter con Stripe y autenticación

Template production-ready para arrancar un proyecto SaaS con Django. Incluye autenticación, suscripciones Stripe, multi-tenancy básico y deploy con Docker.

#django #saas #stripe #boilerplate #docker

Contenido

Django SaaS Starter

Ahorra semanas de trabajo con este boilerplate. Todo lo que necesitas para lanzar un SaaS ya viene configurado.

Qué incluye

  • Autenticación: django-allauth con login social (Google, GitHub)
  • Suscripciones: Stripe Checkout + Customer Portal + Webhooks
  • Modelos base: User, Organization, Membership, Plan
  • Multi-tenancy: Cada organización con datos aislados
  • Email: Templates transaccionales con django-anymail
  • API: Django REST Framework configurado con auth por token
  • Admin: Panel personalizado con django-unfold
  • Deploy: Docker Compose + GitHub Actions CI/CD

Estructura de archivos

project/
├── config/              # Settings split: base, dev, prod
│   ├── settings/
│   │   ├── base.py
│   │   ├── development.py
│   │   └── production.py
│   ├── urls.py
│   └── wsgi.py
├── apps/
│   ├── users/           # Custom User + Profile
│   ├── billing/         # Stripe integration
│   ├── organizations/   # Multi-tenant core
│   └── api/             # DRF endpoints
├── templates/
├── static/
├── docker-compose.yml
├── Dockerfile
├── .github/workflows/
└── pyproject.toml

Setup rápido

git clone https://github.com/eriktaveras/django-saas-starter
cd django-saas-starter
cp .env.example .env  # Configura tus keys
docker-compose up -d
docker-compose exec web python manage.py migrate
docker-compose exec web python manage.py createsuperuser

Configuración de Stripe

# billing/webhooks.py
import stripe
from django.conf import settings

stripe.api_key = settings.STRIPE_SECRET_KEY

def handle_checkout_completed(event):
    session = event['data']['object']
    customer_id = session['customer']
    subscription_id = session['subscription']

    user = User.objects.get(stripe_customer_id=customer_id)
    user.membership.activate(subscription_id)
    user.membership.save()

Recurso Externo

Este recurso incluye un enlace externo. Regístrate para acceder.

Inicia Sesión para Acceder

Únete a la Comunidad

Regístrate gratis para descargar archivos, guardar recursos en favoritos, ganar XP y acceder a cursos y el foro de la comunidad.

¿Ya tienes cuenta? Inicia sesión

Erik Taveras

Autor

Erik Taveras