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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.12.1-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.1.tar.gz.

File metadata

  • Download URL: mountaineer-0.12.1.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.1.tar.gz
Algorithm Hash digest
SHA256 0edd471c74554415cc02134a54e14dba6ea26e3a67e7e5865f65a58e1c8f07cc
MD5 ebeb5027beba85519a0d3c1faa9dd9c7
BLAKE2b-256 04b9f030b43fc22f3ad38d2551b2467b3bbc994e9ddad3d2c26924f869aefd39

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.12.1-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.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 60302295a7559884c502f5b1cacfd1fb5221e6d76ba7959e323ded0a38f314f2
MD5 ebb0bc82f0260242b758bd11cd837023
BLAKE2b-256 3813b79c127108530374c10be48356ebb723665530e053df28df9a146d7fd192

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 91e324c8452548d293d5db49b62c341cf3289e387381b397a8670f663b59a6b9
MD5 9e6c40f63908e06cf388f61b90cb0384
BLAKE2b-256 34781306b1e48737e3dd89774966e61182ea1bb72f9441b589f9c0238448f3e5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 86e599a4b34fa35273b1f1655b84d630d94558874a007d94201adea4d69f8ec1
MD5 0e3bd9488963e6ac6fe9a20328fac4d7
BLAKE2b-256 b2b9070faf76b4449b380b86ea4a86992338f9c0e052e11f0027a7ee57fbca5d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10823ebee7171a3cac1bb7ca100e54743977e18c582fd47b9d65ec380d42f60f
MD5 17a6ec0ea399b4b2704bc22ac1c9d6a0
BLAKE2b-256 fd006d8093844f3896a8d986c5ad05105ca8b08c7364b1dfb0991be32408195b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7759944b1e9aab3a69437975eafeaa2f909e45191573f4d20ef197408adc302c
MD5 b3d6893838c07381d520c68df9ff9a5b
BLAKE2b-256 e37f151def5c1df14055c7299ecd63ed86d112a46b9e63f1109a655c824794d0

See more details on using hashes here.

Provenance

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