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.10.2.tar.gz (1.6 MB view details)

Uploaded Source

Built Distributions

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

mountaineer-0.10.2-cp310-abi3-win_amd64.whl (19.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

mountaineer-0.10.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.4 MB view details)

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

mountaineer-0.10.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (21.7 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

mountaineer-0.10.2-cp310-abi3-macosx_11_0_arm64.whl (19.5 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.10.2-cp310-abi3-macosx_10_12_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mountaineer-0.10.2.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

Hashes for mountaineer-0.10.2.tar.gz
Algorithm Hash digest
SHA256 2b92050f5488758784ddb3d892772815f5e3d62a37cb3a09ad8aa391b799867c
MD5 f64bd2fb5bb755c8384b4f75201e6cbd
BLAKE2b-256 a90f1b680636861d63b3b322c6679a6e681c9f4548457c0cadb83bc3722eff36

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.10.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 19.1 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

Hashes for mountaineer-0.10.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8afaf32f55f3594d4f68f2fbbf5c9c00addff7680c9b060ad82f474cdd941353
MD5 f2a70c9290c5c159b58ff037fa4874b8
BLAKE2b-256 7a0781b8c3cfd0939cbe3b83aa685c2905ed323d38b43761aabe70fa95499e9f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2f6e852a59d089d3cb0f2cdd5833e44b43f4b5fca5dc1da807a748f467fc4cef
MD5 a06b2b69a8200391dff5d547f0664934
BLAKE2b-256 a75c9ee5d17d11f70b7fb4c200206aac6aedbc5be28f7e23ad354e16a0bfe44f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 791fac20d2f6c5a0d5f7af4496a722f0d55c16f47d0f86422133eebe755f3fcf
MD5 07a0794617a91d6c681d896f5c18aa10
BLAKE2b-256 659c3e839ec03ecc4a591054e09bd2d67dca2c05d0a63c8ce504ee467f9167c0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d35d4a8cea679dd5c0d155913815b25ef84c356193a890837957f4010d647d60
MD5 cd7be202c4c6de591b224773e027c8d3
BLAKE2b-256 b1cbfd72a7320c7298b30d8c7aaf2d66d2c08a4d9e4a6b04707c4928f5a29e2f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5da468218cff78610d945456d7365e145841e863e80b3e845f691134e43cb51e
MD5 fc9735f5139f528264b4029902c9f0e9
BLAKE2b-256 41b86171ce932b7dd13863c0ba2f53e2424946ec9556c7abb57474c1b5a8f0ab

See more details on using hashes here.

Provenance

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