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.0b2

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.0b2
File Size Uploaded
appcraft-1.0.0b2.tar.gz 173.7 kB Details

Built distribution (wheel)

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

Total release size: 442.9 kB

Release files / appcraft-1.0.0b2.tar.gz

Download URL appcraft-1.0.0b2.tar.gz
Size 173.7 kB
Tags Source
SHA-256 checksum
How to use checksums
47fa1df6430258379e5bdc6036e5da2cf9b923c6a9b8e1acefee4b0eacd2e453
BLAKE2b-256 checksum
How to use checksums
ec984a191f7a7f0942ef4e426f1e6c2f7bcb92c35760da1d85781dba69212278
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 16, 2026.

Transparency log

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

Download URL appcraft-1.0.0b2-py3-none-any.whl
Size 269.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8fe86a0c9510f1d6179f79c28bbbc89d252e388bfc99e135840b32dabb87c62a
BLAKE2b-256 checksum
How to use checksums
e04e8ff22de6560e52284d9e045a2370084a24d39cc4fc024294a8c4c99c2c74
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 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0b2 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