Bluefox Stack = Framework + Cloud

Build and ship
Python SaaS products

A batteries-included Python web framework paired with a deployment platform. Convention over configuration. No setup, no glue code, no architecture decisions. Start building product on day one with all features you need ready to use.

Two halves, one stack

Bluefox Framework

Modular Python packages for FastAPI. Auth, caching, tasks, events, storage, admin — each an uv add away. Choose the packages you need. Every app follows the same conventions.

Bluefox Cloud

Deploy with a single command. Every project scaffolds with a bluefox.yml manifest. Push, build, ship — zero DevOps configuration required to get your app live on app-name.your-domain.com.

From zero to running

Install one package, write two files, start the server. A working app in under a minute.

01

Create a project and install the foundation

$ uv init my-app && cd my-app
$ uv add bluefox-core
02

Write your app

main.py
from bluefox_core import BluefoxSettings, create_bluefox_app

settings = BluefoxSettings()
app = create_bluefox_app(settings)
03

Run it

$ uv run uvicorn main:app --reload
# Health endpoint, structured logging, welcome page. Done.
From running to live

Provision a server once, then ship every update with a single command. No CI pipelines to configure, no Dockerfiles to maintain.

01

Point Bluefox at your server (one-time setup)

$ bfx bootstrap 123.456.789.123
Server public IP [123.456.789.123]:
SSH port [2222]:
Domain (e.g. bluefox.software) [my-domain.com]:

━━━ Cloudflare DNS ━━━
# Wildcard DNS record pointing *.my-domain.com to your server

━━━ Server Hardening ━━━
# Firewall, fail2ban, auto-updates, SSH lockdown

━━━ Docker Engine + Swarm ━━━
# Container runtime and orchestration layer

━━━ Traefik ━━━
# Reverse proxy with automatic Let's Encrypt TLS

━━━ Platform Database ━━━
# PostgreSQL 18 for the platform and your apps

━━━ Redis (Cache + Queue) ━━━
# Shared cache and background job queue

━━━ Bluefox Cloud Platform ━━━
# Build, push, and deploy the management platform

━━━ Bootstrap Complete ━━━
Bluefox Cloud is live!
  Platform:  https://platform.my-domain.com
  Health:    https://platform.my-domain.com/health
   Cloudflare DNS configured (*.my-domain.com → 123.456.789.123)
02

Ship your app

$ cd my-app
$ bfx release
# Building... Deploying... Live at my-app.my-domain.com
my-app.my-domain.com
My Todos Logged in
Buy more coffee... Add
Set up Bluefox project
Write the todo API
Deploy to production
Invite the team
Packages

Every module is an independent PyPI package. Install what you need. Update with uv add --upgrade. No generator, no lock-in.

bluefox-core
Settings, database, logging, health endpoints, app factory. The foundation every app needs.
Available
bluefox-test
Real databases via testcontainers, SAVEPOINT sessions, async factories, safety gates.
Available
bluefox-auth
JWT authentication, users, password reset, email verification, permissions.
Planned
bluefox-components
Pre-built, pre-styled Jinja2 UI components in the Bluefox design system.
Planned
bluefox-email
Transactional email sending. Templates, providers, and delivery tracking.
Planned
bluefox-cache
Redis-backed caching with decorator API and manual control.
Planned
bluefox-tasks
Background task processing via Procrastinate. Postgres-native job queue.
Planned
bluefox-storage
File storage abstraction. Local filesystem and S3-compatible backends.
Planned
bluefox-payments
Stripe integration. Subscriptions, webhooks, customer management.
Planned
bluefox-events
Domain event pub/sub via Postgres LISTEN/NOTIFY. Pydantic V2 payloads.
Planned
bluefox-admin
Feature flags, canary releases, runtime config, and admin UI.
Planned
bluefox-telemetry
OpenTelemetry auto-instrumentation for FastAPI and SQLAlchemy.
Planned
bluefox-cli
Project scaffolding, domain generators, release commands. bfx new, bfx generate.
Planned
Grow as you need

Start with the foundation. Add packages one at a time. Every stage is a working app — you're never in a half-broken state.

main.py
# Stage 1: Foundation only
from bluefox_core import create_bluefox_app, BluefoxSettings

app = create_bluefox_app(BluefoxSettings())

# Stage 2: Add auth
from bluefox_auth import BluefoxAuth
BluefoxAuth(app, settings=settings)

# Stage 3: Add tasks and caching
from bluefox_tasks import BluefoxTasks
from bluefox_cache import BluefoxCache
BluefoxTasks(app, database_url=settings.DATABASE_URL)
BluefoxCache(app, redis_url=settings.REDIS_URL)

# Stage 4: Your domain routes
from orders.api import router as orders_router
app.include_router(orders_router, prefix="/api")
Design pillars

Convention over configuration

Sensible defaults everywhere. No config needed to get started. One way to do things, and it's the right way.

Domain-driven structure

Models, routes, tests, and logic for the same feature live together.

Packages, not scaffolding

Modules are installed, not generated. Updates come via uv add --upgrade, not re-running a CLI.

AI-first

Code structure, naming, and documentation are designed to be read and extended by AI coding agents. Every project ships with an AGENTS.md.

Pydantic V2 everywhere

All data modelling, validation, and serialization uses Pydantic V2. No dataclasses. One validation layer.

Zero-surprise tooling

make dev always works. The test suite always passes on a fresh clone. No hidden setup steps.