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.3.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.3-cp310-abi3-win_amd64.whl (19.1 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: mountaineer-0.10.3.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.3.tar.gz
Algorithm Hash digest
SHA256 30df3076e2f5e1a2a733755377a7786d8215fc41ff14fefc53a9e3e3ccd0bdf4
MD5 ae69a9e65f90de1c4700a4481150dc95
BLAKE2b-256 9fa590f9629a1d52d65bc76f7769b0b13cfae31d51fa081d4b65c4d7bb4f6bc4

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.10.3-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.3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4e8b6203f5c980047e5958510175f4be3f8c73b57a9ac16412ca93a30ddb9c9f
MD5 ef76579f9b177b034e85b388b8da5ab1
BLAKE2b-256 193319113b1af59ef331f634150b811e3e1f1e8c66fc5652ba7e126f8e0157a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a6d245932147aa4d6bdaff2fbf2426e918eabc151f5106d4a5c9e1c6efe3e44
MD5 e71bf9d25fdee75ba3e59785540d8aaf
BLAKE2b-256 c6bc1ca4982129d3d62b3b9fc62772aa74e2246f42c78784639d7837c1da04a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 91847fef068c12e77d06a554a35f08ca1658440642118673afcbe0e926702c44
MD5 f61b39ae9cef2ebda10064be4fb0f1c5
BLAKE2b-256 128fbfaf2baccae6c3b951aad60dcd438ea9bb28b4b963b4de574fcd0a19246f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32e6cf97c10210d5034b325d74f42e4e2eea507936c8a600b28b3940324836b5
MD5 275a190d0713c75c8d3ab269b783ba47
BLAKE2b-256 dd6b49f9a6f479e7bc96bd8619d524c593df39e1694d155d53bd5abdb0786ee4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 362014f79072520f770158fb5090733e3e5de6fe01e6444e5813b9ad26161ae4
MD5 10427dd5f96d1ee4eb11eefd5919b378
BLAKE2b-256 87e9f9d66f391e4248857b3e289dd2804734283e310ace2ff39f8f2011437376

See more details on using hashes here.

Provenance

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