Mountaineer is a batteries-included webapp framework for Python.
Project description
Mountaineer
Move fast. Climb mountains. Don't break things.
Mountaineer 🏔️ is a framework to easily build webapps in Python and React. If you've used either of these languages before for development, we think you'll be right at home.
Main Features
Each framework has its own unique features and tradeoffs. Mountaineer focuses on developer productivity above all else, with production speed a close second.
- 📝 Typehints up and down the stack: frontend, backend, and database
- 🎙️ Trivially easy client<->server communication, data binding, and function calling
- 🌎 Optimized server rendering for better accessibility and SEO
- 🏹 Static analysis of web pages for strong validation: link validity, data access, etc.
- 🤩 Skip the API or Node.js server just to serve frontend clients
Getting Started
New Project
To get started as quickly as possible, we bundle a project generator that sets up a simple project after a quick Q&A. Make sure you have pipx installed.
$ pipx run create-mountaineer-app
Mountaineer projects all follow a similar structure. After running this CLI you should see a new folder called my_webapp, with folders like the following:
my_webapp
/controllers
/home.py
/models
/mymodel.py
/views
/app
/home
/page.tsx
/layout.tsx
/package.json
/tsconfig.json
/app.py
/cli.py
pyproject.toml
Every service file is nested under the my_webapp root package. Views are defined in a disk-based hierarchy (views) where nested routes are in nested folders. This folder acts as your React project and is where you can define requirements and build parameters in package.json and tsconfig.json. Controllers are defined nearby in a flat folder (controllers) where each route is a separate file. Everything else is just standard Python code for you to modify as needed.
Development
If you're starting a new application from scratch, you'll typically want to create your new database tables. Make sure you have postgres running. We bundle a docker compose file for convenience with create-mountaineer-app.
docker compose up -d
uv run createdb
Of course you can also use an existing database instance, simply configure it in the .env file in the project root.
Mountaineer relies on watching your project for changes and doing progressive compilation. We provide a few CLI commands to help with this.
While doing development work, you'll usually want to preview the frontend and automatically build dependent files. You can do this with:
$ uv run runserver
INFO: Started server process [93111]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:5006 (Press CTRL+C to quit)
Navigate to http://127.0.0.1:5006 to see your new webapp running.
Or, if you just want to watch the source tree for changes without hosting the server. Watching will allow your frontend to pick up API definitions from your backend controllers:
$ uv run watch
Both of these CLI commands are specified in your project's cli.py file.
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mountaineer-0.10.4.dev3.tar.gz.
File metadata
- Download URL: mountaineer-0.10.4.dev3.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d4bd8ac38bda4053d3fd703bccae49554c7cdc0d061e1b6112eb40bffbe848c
|
|
| MD5 |
b880477c2c8d7eb955d9996738a541e4
|
|
| BLAKE2b-256 |
117a4302ea617ebc3b23dbad291ee746885d73865d1f54a6b88c4e6d1c73be83
|
Provenance
The following attestation bundles were made for mountaineer-0.10.4.dev3.tar.gz:
Publisher:
test.yml on piercefreeman/mountaineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mountaineer-0.10.4.dev3.tar.gz -
Subject digest:
7d4bd8ac38bda4053d3fd703bccae49554c7cdc0d061e1b6112eb40bffbe848c - Sigstore transparency entry: 1147991082
- Sigstore integration time:
-
Permalink:
piercefreeman/mountaineer@f74ad8b63ff0ef2028967486893a651373409f81 -
Branch / Tag:
refs/tags/v0.10.4.dev3 - Owner: https://github.com/piercefreeman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@f74ad8b63ff0ef2028967486893a651373409f81 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mountaineer-0.10.4.dev3-cp310-abi3-win_amd64.whl.
File metadata
- Download URL: mountaineer-0.10.4.dev3-cp310-abi3-win_amd64.whl
- Upload date:
- Size: 20.3 MB
- Tags: CPython 3.10+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baad2018b9d0e25f937d49d53662f68327dfbdbc6ed9a304a519fa1c133c3b84
|
|
| MD5 |
a2b48cf55ee3b52c55ee4a564d2c51ae
|
|
| BLAKE2b-256 |
3ff0520335785d67b292479e738a0fa7d2404c82b386297dd72372ab413a5fa6
|
Provenance
The following attestation bundles were made for mountaineer-0.10.4.dev3-cp310-abi3-win_amd64.whl:
Publisher:
test.yml on piercefreeman/mountaineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mountaineer-0.10.4.dev3-cp310-abi3-win_amd64.whl -
Subject digest:
baad2018b9d0e25f937d49d53662f68327dfbdbc6ed9a304a519fa1c133c3b84 - Sigstore transparency entry: 1147991177
- Sigstore integration time:
-
Permalink:
piercefreeman/mountaineer@f74ad8b63ff0ef2028967486893a651373409f81 -
Branch / Tag:
refs/tags/v0.10.4.dev3 - Owner: https://github.com/piercefreeman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@f74ad8b63ff0ef2028967486893a651373409f81 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 22.7 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d72e09a4aabdddbd62f6b743505e023d501325943050d66c3b56664b8a52acd5
|
|
| MD5 |
fe5c9eccc5e87d0bdb37997f39c5cf3a
|
|
| BLAKE2b-256 |
daa50398778a13980858e37077be7bcdd0eb79ae32a0e3ce5b947344d53e2ad6
|
Provenance
The following attestation bundles were made for mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
test.yml on piercefreeman/mountaineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
d72e09a4aabdddbd62f6b743505e023d501325943050d66c3b56664b8a52acd5 - Sigstore transparency entry: 1147991129
- Sigstore integration time:
-
Permalink:
piercefreeman/mountaineer@f74ad8b63ff0ef2028967486893a651373409f81 -
Branch / Tag:
refs/tags/v0.10.4.dev3 - Owner: https://github.com/piercefreeman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@f74ad8b63ff0ef2028967486893a651373409f81 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 22.9 MB
- Tags: CPython 3.10+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc05f17e3b795aed19c83527c561f02981a7b06f7a4ac542871f24a3c0cce272
|
|
| MD5 |
50960e78c7285cd2daf9e91cacdb5dba
|
|
| BLAKE2b-256 |
1dc3129c4d74643c6f14ea0aed75b721cd6a5eea7be2e26421249474526d5056
|
Provenance
The following attestation bundles were made for mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
test.yml on piercefreeman/mountaineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
cc05f17e3b795aed19c83527c561f02981a7b06f7a4ac542871f24a3c0cce272 - Sigstore transparency entry: 1147991149
- Sigstore integration time:
-
Permalink:
piercefreeman/mountaineer@f74ad8b63ff0ef2028967486893a651373409f81 -
Branch / Tag:
refs/tags/v0.10.4.dev3 - Owner: https://github.com/piercefreeman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@f74ad8b63ff0ef2028967486893a651373409f81 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mountaineer-0.10.4.dev3-cp310-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: mountaineer-0.10.4.dev3-cp310-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 20.6 MB
- Tags: CPython 3.10+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1615880cf8b17061aa61dc236d9d4b3d755fbee69f65e8da0fd913bb7d4b9f68
|
|
| MD5 |
acf1aa78f4f867e81f993840ca0698da
|
|
| BLAKE2b-256 |
9ef5eca5f1f3367f64ecb701cfbaed225c86dd9397950edf3ff9e7a3206e4c16
|
Provenance
The following attestation bundles were made for mountaineer-0.10.4.dev3-cp310-abi3-macosx_11_0_arm64.whl:
Publisher:
test.yml on piercefreeman/mountaineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mountaineer-0.10.4.dev3-cp310-abi3-macosx_11_0_arm64.whl -
Subject digest:
1615880cf8b17061aa61dc236d9d4b3d755fbee69f65e8da0fd913bb7d4b9f68 - Sigstore transparency entry: 1147991163
- Sigstore integration time:
-
Permalink:
piercefreeman/mountaineer@f74ad8b63ff0ef2028967486893a651373409f81 -
Branch / Tag:
refs/tags/v0.10.4.dev3 - Owner: https://github.com/piercefreeman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@f74ad8b63ff0ef2028967486893a651373409f81 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mountaineer-0.10.4.dev3-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: mountaineer-0.10.4.dev3-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 21.8 MB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5072bc348120238be6cc69f03fd947a8c537ef80b5548273143c8f38631b5cee
|
|
| MD5 |
8a6cb95eda206b660106f87a64a8df74
|
|
| BLAKE2b-256 |
ce263f91d25409ac4a61aa5206e5e3a32c30db17fc5d2eac7998271f1473067f
|
Provenance
The following attestation bundles were made for mountaineer-0.10.4.dev3-cp310-abi3-macosx_10_12_x86_64.whl:
Publisher:
test.yml on piercefreeman/mountaineer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mountaineer-0.10.4.dev3-cp310-abi3-macosx_10_12_x86_64.whl -
Subject digest:
5072bc348120238be6cc69f03fd947a8c537ef80b5548273143c8f38631b5cee - Sigstore transparency entry: 1147991115
- Sigstore integration time:
-
Permalink:
piercefreeman/mountaineer@f74ad8b63ff0ef2028967486893a651373409f81 -
Branch / Tag:
refs/tags/v0.10.4.dev3 - Owner: https://github.com/piercefreeman
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
test.yml@f74ad8b63ff0ef2028967486893a651373409f81 -
Trigger Event:
push
-
Statement type: