Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Appcraft

Appcraft Logo

Appcraft is a code generator for Python projects: appcraft init scaffolds a new project already organized into Clean Architecture layers (domain, application, infrastructure, presentation, runners), and from there you keep developing inside it like any other Python project. It is not a library your code imports at runtime, beyond a handful of small utilities the generated project ships with itself.

Why Use It

  • A consistent structure from the first commit. Business rules (domain/application) stay separate from frameworks and storage (infrastructure), so a project doesn't accumulate ad hoc structure as it grows, and the same conventions apply whether you built it alone or picked it up from someone else.
  • Add only what the project needs. Functionality comes from composable templates — flask_api, sqlalchemy, docker, git, and more. Installing one drops its files and wires itself in automatically: a new Flask route or a new SQLAlchemy model is picked up without touching a central registration file.
  • Swap infrastructure without rewriting business logic. Interchangeable templates sit behind the same contract (a Port) — sqlalchemy/mongodb for the database, selenium/playwright/httpx/curl_cffi for web scraping. Changing which one is installed, or which one a config file prefers, doesn't change the use case that calls it.
  • One command style for every feature. Every command, from the application's own entry points to one-off maintenance tasks, runs through the same runner system: an interactive menu for a human, and interactive=false with key=value arguments for a script or CI.
  • You own what gets generated. Every file Appcraft drops is plain, readable Python in your project. Templates only keep checking each other's presence at runtime (is_installed()) so they can adapt to what's installed — Appcraft itself doesn't need to run again once the project exists, except when you choose to add another template.

Use it when starting a new service or tool that's worth keeping organized as it grows. For a quick throwaway script, the scaffolding is more than you need.

Quick Start

pip install --pre appcraft   # pre-release while 1.0.0 is still in beta

mkdir my-project && cd my-project
appcraft init flask_ui flask_api sqlalchemy docker

<template_names> can be any combination of the available templates, separated by spaces — see Templates for the full list. appc is a shorter alias for appcraft, and inside a generated project, appc run <module> <method>/appc tools <module> <method> run its own run/tools launchers.

appcraft list_templates        # see every available template
appcraft add_template <name>   # add one to a project that already exists

Documentation

latest always points at the newest released version; past versions stay available from the version selection page.

License

MIT — see LICENSE.

Metadata

Release files for appcraft 1.0.0b1

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

Source distribution (sdist)

Source distribution for appcraft 1.0.0b1
File Size Uploaded
appcraft-1.0.0b1.tar.gz 173.2 kB Details

Built distribution (wheel)

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

Total release size: 441.8 kB

Release files / appcraft-1.0.0b1.tar.gz

Download URL appcraft-1.0.0b1.tar.gz
Size 173.2 kB
Tags Source
SHA-256 checksum
How to use checksums
987e6f29cffea3ed2a575f42ed9997f9d74860c305e7dfa2df0db35bce102553
BLAKE2b-256 checksum
How to use checksums
d63b867174bcb77fd2ab6e283af1ede29ffa0561e50659ca90fb0bb0ecc3860b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 9, 2026.

Transparency log

Release files / appcraft-1.0.0b1-py3-none-any.whl

Download URL appcraft-1.0.0b1-py3-none-any.whl
Size 268.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4f4bd9c0c4024edcab7b35ad27329f170f57e3064e1c3688bfd34921a301bb4
BLAKE2b-256 checksum
How to use checksums
99993c53985cc4d8d50ba92fa18bd816e8c3af61b18815837ea89a2af2abacb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0b1 This release

2 release files

0.5.3

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.3.0

2 release files

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