Skip to main content

Flaskteroids

A Rails-inspired Python MVC framework built on Flask, SQLAlchemy, and Celery.

Build Status PyPI Version Python Versions License


Flask handles HTTP requests, SQLAlchemy and Alembic handle the database, and Celery runs background jobs.

Models, controllers, and templates live in conventional directories. The framework discovers them without manual registration. Flask APIs and extensions remain available when you need them.

What's included

  • Resource routing with CRUD routes and path helpers.
  • Models with associations, validations, and lifecycle callbacks.
  • Jinja templates, form helpers, and HTML or JSON responses.
  • Generators for models, migrations, controllers, scaffolds, mailers, and authentication.
  • Background jobs and email delivery.
  • File attachments with disk and S3-compatible storage.
  • Environment settings, database.yml, encrypted credentials, and boot-time initializers.
  • Pytest-based transactional tests, YAML fixtures, job and mail assertions, and Playwright browser tests.

Installation

Requires Python 3.12 or newer. Install Flaskteroids in your Python environment:

pip install flaskteroids

Getting started

Create an application. Git, Bash, and uv must be installed.

flaskteroids new my_app
cd my_app
source .venv/bin/activate

Generation installs dependencies and prepares your development database. Start the server:

flask run

Open http://127.0.0.1:5000 to see the welcome page.

flask test
flask test:system

The app includes a health test. An empty system suite succeeds without a browser.

Add a posts resource

Stop the server and run these commands inside my_app:

flask generate scaffold Post title:string content:text
flask db:prepare
flask run

The scaffold generates a model, migration, controller, views, and routes. Visit http://127.0.0.1:5000/posts/ to create, view, edit, and delete posts.

Next steps

For a step-by-step tutorial, follow Getting started with Flaskteroids. Build a product catalog while learning models, controllers, forms, authentication, uploads, email, and testing.

  • Run bin/setup for a fresh checkout or after changing dependencies. Commit uv.lock.
  • To defer installation, use flaskteroids new my_app --skip-install, then run bin/setup later.
  • See Testing for browser setup and Configuration for environments and secrets.
  • Your generated deploy/README.md explains Docker and deployment.

See the documentation for the API guides.

Agent skills

Flaskteroids bundles coding guidance for agents with each release. New applications include .agents/skills/using-flaskteroids/SKILL.md, which points agents to instructions for the installed framework version. These instructions require agents to use public Flaskteroids APIs when they cover the task, rather than calling dependency internals.

In your application's Python environment, locate the installed skills with:

flaskteroids agent-skills path

The command prints the absolute skills directory path. Read using-flaskteroids/SKILL.md inside that directory for version-matched guidance. No application configuration or initialization is required.

Development

Use the committed lock and the same check-only commands as CI:

uv sync --locked --dev
uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run playwright install chromium
uv run pytest -q

Ruff uses the Python 3.12 / 88-column policy in pyproject.toml. Mypy checks only declaration records, queue adapters, and a static contract probe, not the whole ORM or generated applications. Raw Mako templates are excluded; generated samples are validated separately and are not promised Ruff-clean. See AGENTS.md for scope and contributor-only fixing commands. Repository logos and usage guidance are in branding/.

Releasing

See the release guide for release PRs and PyPI publishing.

License

Flaskteroids is released under the MIT License.

Metadata

Release files for flaskteroids 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flaskteroids 0.7.0
File Size Uploaded Provenance
flaskteroids-0.7.0.tar.gz 147.6 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for flaskteroids 0.7.0
File Interpreter ABI Platform
flaskteroids-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 326.4 kB

Release files / flaskteroids-0.7.0.tar.gz

Download URL flaskteroids-0.7.0.tar.gz
Size 147.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f78ae2d9333ee11bb81964f0a182bfdaa4d0f3541dd2ca60e4b917ad8e9182ea
BLAKE2b-256 checksum
How to use checksums
89155731f17a01fe1b065bae61acdf31557edc81691bf1d673f6fa5ead51d5d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Release files / flaskteroids-0.7.0-py3-none-any.whl

Download URL flaskteroids-0.7.0-py3-none-any.whl
Size 178.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
84dee863a17978408d8e151012a792b45df0e5b7bcdbec1b4c83beea40375b22
BLAKE2b-256 checksum
How to use checksums
595071640dd61d25473a067ba716ba726cd885d4a8da8e46cd8e40ab0df72b4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

Security for flaskteroids 0.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for flaskteroids-0.7.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page