Skip to main content

Stack-based scaffolding tool for application projects

Project description

FraCode

CI codecov Python Version License

FraCode is a stack-based application generator.

It helps you scaffold production-shaped projects quickly, starting with a plain FastAPI stack today and leaving room for other languages and frameworks over time.

The current direction is:

  • generate normal app code, not opaque framework magic
  • keep runtime coupling light
  • make fra new and fra make:* the center of the product
  • let generated apps stay readable and portable

Full documentation

What FraCode Is

FraCode is not trying to replace FastAPI.

FraCode is trying to be a better way to start and grow application projects by giving you:

  • a consistent project layout
  • stack-aware scaffolding
  • file generators for common app pieces
  • a simple development CLI
  • an architecture that can expand beyond Python-only templates

Available Stacks

Right now the built-in stack is:

  • python/fastapi - standalone FastAPI application with typed settings and pytest

You can inspect available stacks with:

fra stacks

Quick Start

pip install fracode

fra new my-app --language python --framework fastapi
cd my-app

poetry install
fra serve

Then open http://127.0.0.1:8000/docs.

Generated App Shape

The default FastAPI stack generates plain project code like:

  • main.py
  • app/api/routes.py
  • app/core/config.py
  • tests/
  • pyproject.toml

The generated app is meant to stand on its own. FraCode helps create it, but the output stays normal FastAPI code.

A core rule for generated projects:

  • zero import fracode
  • zero FraCode runtime dependency in generated app code
  • official framework/library imports only

CLI

Core commands:

  • fra new <name> creates a new project from a stack
  • fra stacks lists available language/framework stacks
  • fra serve runs the generated app
  • fra make:controller <Name> generates a controller-style class file
  • fra make:model <Name> generates a model file

Examples:

fra new blog --language python --framework fastapi
fra make:controller User --api
fra make:model User

Multi-Language Direction

FraCode now has a stack system so other ecosystems can be added without rewriting the CLI around one framework.

The intended shape is:

  • templates/stacks/<language>/<framework>/...
  • each stack declares its own metadata
  • the CLI discovers stacks dynamically
  • new languages/frameworks can be added as new stack packages

That means FraCode can grow toward things like:

  • python/flask
  • typescript/express
  • go/fiber

without pretending they all share one runtime abstraction.

That also means FraCode follows an eject-first philosophy: once the project is generated, you own the code completely.

Development

poetry install --with dev
pytest
ruff check fracode/ tests/
ruff format --check fracode/ tests/
mypy fracode/

Contributing

Contributions are welcome, especially around:

  • new stack support
  • better project templates
  • generator ergonomics
  • documentation
  • migration/auth/dev-workflow improvements for generated apps

See CONTRIBUTING.md for details.

License

FraCode is open-source software licensed under the MIT license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fracode-0.1.4.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fracode-0.1.4-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file fracode-0.1.4.tar.gz.

File metadata

  • Download URL: fracode-0.1.4.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.7 Darwin/25.4.0

File hashes

Hashes for fracode-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d2d47fba4ed67c5be0c8631bebaf22d5dfd7a141c9fa8285efffad8d905ebc0f
MD5 7ccc06d4a543776a0ffdf6d5da841dee
BLAKE2b-256 2af7191d509e74eef97db5b5ba2b9c496f0377fed7ef8d18384b30b1d85c2be3

See more details on using hashes here.

File details

Details for the file fracode-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: fracode-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.13.7 Darwin/25.4.0

File hashes

Hashes for fracode-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 c97a8167e0d052f77458911670a1755d1350b282f637ea48624f29a507668746
MD5 d52662933162b5d39bdd71e2bfc3fcbc
BLAKE2b-256 352fd8b9937c05c151874c95af941ea3402588e9d68ae3c2dd0ed9f79ce7d016

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page