Skip to main content

Mountaineer is a batteries-included webapp framework for Python.

Project description

Mountaineer

Mountaineer Logo

Python Version Test status

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


Download files

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

Source Distribution

mountaineer-0.11.2.tar.gz (849.9 kB view details)

Uploaded Source

Built Distributions

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

mountaineer-0.11.2-cp310-abi3-win_amd64.whl (19.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

mountaineer-0.11.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

mountaineer-0.11.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.1 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

mountaineer-0.11.2-cp310-abi3-macosx_11_0_arm64.whl (19.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.11.2-cp310-abi3-macosx_10_12_x86_64.whl (21.0 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file mountaineer-0.11.2.tar.gz.

File metadata

  • Download URL: mountaineer-0.11.2.tar.gz
  • Upload date:
  • Size: 849.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mountaineer-0.11.2.tar.gz
Algorithm Hash digest
SHA256 2bce8ba3d6fac63c6c5fb0bba0259b7876171549110100fbd2a00d233a3cc11f
MD5 96dc47bacc532d43795d27b5e228bfff
BLAKE2b-256 2f8781a0cdaa9e127039aac9b7898d123f46fb137168d734e705e80c9dccd373

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.11.2.tar.gz:

Publisher: test.yml on piercefreeman/mountaineer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mountaineer-0.11.2-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for mountaineer-0.11.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 94685b23f287fd079eec9970ecb79c05f92b27aca6560fe127f6f00c2c7d9e7e
MD5 fa3f0d6f6ff221e1b88b5860d7aef180
BLAKE2b-256 8dfd58de0dee365d82030b11d3abf9296ed6e149088e476e39580a51d2f1f1e7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.11.2-cp310-abi3-win_amd64.whl:

Publisher: test.yml on piercefreeman/mountaineer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mountaineer-0.11.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mountaineer-0.11.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0851c3577bfa662aa9b07f47dcd2bd495bab5dea863adf24bad8d7ccf2ea1e76
MD5 1034b8b36d1e80f591a75387d4989590
BLAKE2b-256 b80230a6668f0f69ab3f7cb43a9236d337b018462bf11027d1ee2dbdb1cf95ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.11.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: test.yml on piercefreeman/mountaineer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mountaineer-0.11.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mountaineer-0.11.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0556ab5dc353ae29cc51c9c868b5c2a85d6c82da7782f937f7c3561cee9e7db4
MD5 9ad6995833fe89d77d8e9e7490591bab
BLAKE2b-256 5b2ba80975e2452900e4cddd9c59a4d4e0119510a1560a56d29737c7996123f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.11.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: test.yml on piercefreeman/mountaineer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mountaineer-0.11.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mountaineer-0.11.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 152b80eb519c181a77586e6f30e6037a66427c5e11a6806178752653a3be436a
MD5 1010073b2cbdec6023890a5f03a2e42e
BLAKE2b-256 284d7c5ec52d814d51a415592ac12581e3445ab0c348ebbb6fa5499da83ee9c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.11.2-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: test.yml on piercefreeman/mountaineer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mountaineer-0.11.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mountaineer-0.11.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5dce925918389bbefee08c965ba08a944806f6931cee944d90786a7d813257d2
MD5 ad98e07c6d542daf005da9cbfbc1e51e
BLAKE2b-256 62738988e65e2cea6168f0691b33c566e41d9b9fd982dfbeb118f6612359c08f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.11.2-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: test.yml on piercefreeman/mountaineer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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