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

Uploaded CPython 3.10+Windows x86-64

mountaineer-0.11.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (22.7 MB view details)

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

mountaineer-0.11.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.9 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

mountaineer-0.11.0-cp310-abi3-macosx_11_0_arm64.whl (20.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.11.0-cp310-abi3-macosx_10_12_x86_64.whl (21.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mountaineer-0.11.0.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.11.0.tar.gz
Algorithm Hash digest
SHA256 c473a08412a7bfff830955137c0dae0280d647f9cef7d461dde608f8f00fb523
MD5 8d811904e078af645261d8afcfa2827e
BLAKE2b-256 c9f394bbbc8d2f76ac989235b5aae1bddbec784aff83a50aba25e3efe7317c4c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.11.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 20.3 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.11.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b319a1206fe635504abfe29bf4edb166a324a52fdfd8e38749f938272375ee3c
MD5 244a979c638b7ac8f404c0fa5b1e618f
BLAKE2b-256 d71f0bd6530359fa754fe9ad478849dc098d1189d154177c6437072d9a611ad5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e9678036f39e627f8c1aadf1d71d1b4e899ca32281f29615ab9cc565ff11459
MD5 f2e68557c76d1b2219597b53ccb55b3b
BLAKE2b-256 8bba73cde1b7d5d5783b6425211b9e828026b2b1b0be5a5fddd95ade6aa1f6bf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fa53c30a20003b4885661c3aed9066e39c6338e8a4d4cbd99ad7f7ebe6180a6a
MD5 6d814a40099452b7e7defe864b863dce
BLAKE2b-256 d4c32aa89699923a7c6f0ac627037b22aeca758ba8059b6c3d87c86b125f2bf2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7d809a7fd5a7b686aef165e04144b602ea824b987cceb8619f5008563819abd
MD5 49ae4ef2b7bef97f11bea41d09eb9afb
BLAKE2b-256 41e0b41ad45f2fd824366019b4dc1109f13eb5a6b52e3cce78448c72ab9222d7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 373c6150393b47918a1d4a4522e093e64b1bc1f42e34571fb32f63a3706899ff
MD5 b0414eef7e8789a3f08568875a8fa873
BLAKE2b-256 4e0e7b14468dccc54ff38aa9bc7ab8c16162241eb7e205717ec279c3e22fd0a5

See more details on using hashes here.

Provenance

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