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.12.2.tar.gz (899.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.12.2-cp310-abi3-win_amd64.whl (19.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

mountaineer-0.12.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.12.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.12.2-cp310-abi3-macosx_11_0_arm64.whl (19.8 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.12.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.12.2.tar.gz.

File metadata

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

File hashes

Hashes for mountaineer-0.12.2.tar.gz
Algorithm Hash digest
SHA256 73cea4824a41acba93f4b90c3f871c02913a609af5334985e4d7b43cbf8a9328
MD5 a396e575e12336d91e412bc16ef42c8b
BLAKE2b-256 64e8d6f79c804a27be156df6e5ae5b0ea64fecea51a60b8eda3deb40b9dd3d35

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.12.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.12.2-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: mountaineer-0.12.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 19.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mountaineer-0.12.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 584cbd42d3582d5af5e65af787a54649c4f1207533718148aa66cef539cac3af
MD5 e5bb009a4c9b0d417a7e9b619f8e3b3b
BLAKE2b-256 a10d0e2d5476d2a5a62bb1f01a59b5bce7bf328880a99672239c5ae4eb62d767

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.12.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.12.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mountaineer-0.12.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02ac33b525af9aebdaf996bae64633c05135edf296085f8f7d5efc993503cbcb
MD5 98f4958eb75bf621be47b1965e157a85
BLAKE2b-256 312523bb7acee2f3bc33f675670b8b5f38a078a1b0f055515676b1137f4a1fad

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.12.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.12.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mountaineer-0.12.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 21b011d771293fd695370aa98c50d1db3233256692a722ea26e64f621480b4bb
MD5 b8a4b27b7a30a24499970ade17472aa9
BLAKE2b-256 0f5045c84f08a8f5a0d57a2c7a19dc28a0f6aa788762136f8b496b3aa12c74a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.12.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.12.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mountaineer-0.12.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 13310d070ac66513835a7f92ca5c03faf40696a303970cc1c98186ba030bb474
MD5 76002a345032bc04c95cd86524d7fd39
BLAKE2b-256 6ce7b3fc722121d6a53cc19e14241d29aed8fddd23efc58f04b0e3ddf7219be3

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.12.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.12.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mountaineer-0.12.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6a3d1370c812445fb2fc1096986dcd0a3a9942e508fb4dfb4d79258d70b68f6c
MD5 2a874163b88f3625665ad9eac9c75d28
BLAKE2b-256 af11c5fc6535a62b0417e94d296cd877092c47eb815dcb6001477d5d0fb4d178

See more details on using hashes here.

Provenance

The following attestation bundles were made for mountaineer-0.12.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