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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.12.3-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.3.tar.gz.

File metadata

  • Download URL: mountaineer-0.12.3.tar.gz
  • Upload date:
  • Size: 900.8 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.3.tar.gz
Algorithm Hash digest
SHA256 addee403694900c88a20161deb86d7f1c0879e13dc80a8fd0502099c518fb565
MD5 c138cb3c347d837a0bb1105a786955af
BLAKE2b-256 9e73ace2119c3fdf30636332f98256beb2f558f3174f597eec3c01e72f721286

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.12.3-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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5ab3269eb5a6151255dd68f8ff7db4c220af377d6c18fbd45e35507e4f854391
MD5 1a1fb3f0a07e94c9789fa77065db343b
BLAKE2b-256 889247be4a9ed2465ffb4fee933ffb04f533afb9eb7e898f46f261744471be30

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0486d5b3acd7e982bfa18ee7b4eab1473b2bbd9f6a11d49ca993adb1128048b4
MD5 cfac5635736b74edf592918d176bf6f0
BLAKE2b-256 8202148d78c0917e12e82ab5f0de1b05339560883407bba4b1b120bc3c0ca27c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bd7c0e653d8cddb9c2b366f4927906bc5eca962475beda4255b8e285ca8a5ffb
MD5 71263fbe612bbc8b1da3104aa86b4571
BLAKE2b-256 d05c9ea36a3285ac9275c5b962e1abd02c7a248fb258ab3714f9439e95732f02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 20e7b4af1730eb62c6f5d7a952cc27390a893f37a71ed09c389d484b733d0e7b
MD5 9c8be19c5cc8dbf0a1068564efa4fa51
BLAKE2b-256 debb809ad2f141f550170a0c62ee887546a181e3c3fdab5b78c13b6a1ce2143e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b0986b678b619a7e823ae4c4587486a45d596fc9f43f21ba83b0d0066bb612fc
MD5 113088b66aaab2382ca632baa9833ddd
BLAKE2b-256 b72917f0e8ff186c9bf0e333f11872cdad90f772aaf9bab4d1e44413754b0552

See more details on using hashes here.

Provenance

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