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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.10.4.dev1-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.4.dev1.tar.gz.

File metadata

  • Download URL: mountaineer-0.10.4.dev1.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.4.dev1.tar.gz
Algorithm Hash digest
SHA256 2bf8f64e0af376624e3f73caa14ba4f355e7c045f01d8406a4a142d199500909
MD5 a854e9675aabde730a3e3eb905b84adf
BLAKE2b-256 e36f3619c69294a2afef4392f893a2bb7f0d919cd59a7797c7cf1ee483d4fa31

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0707d4d9fbf28a022530e17133aad17186abf149e4867c1b286cd4975f661a5a
MD5 021aa1f12da358162516546a3a0eb2e4
BLAKE2b-256 832498f0a847994127ce6b41a42e407f517bcdefb014ea4e762e66f6bcf6103f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66d0280a2b954bc3616975cdb76ce2f35399d6add30e94b56dd2134e0410b8df
MD5 c46a748f4ab75988bc06218f365ce080
BLAKE2b-256 44ef966b97ee0b8a8bc496bfcdc88dcde9b5852a885e50672fe5432da23aa660

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8e79666be9e7e30c4ab289bd06bf9f1a642566bf8c46f86c52ec5e34ff775ca
MD5 8382c7f5f8c960acf03c78ddcfcfc410
BLAKE2b-256 d167610b26dff1a9f98e1ffedbd06f5115b2d8a162542bdd72d0578da4b8d511

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f291bb0f37dd2550e60ef1221d7ebd0e3e27b679f7cdfdface088345dc7de616
MD5 02447425c736b4e80cc64a7277e7688a
BLAKE2b-256 b8d97d00e781dab1de6a5c063d63ea9fefb03ebb09d47db375b1a447b40df584

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f9b06d11e67dd6480da7f1f886895e0c4e2f68dee02769c86287dee7707e3966
MD5 e2116a94fc2159635741b18f1ebdd616
BLAKE2b-256 4cf68d68ad91f939e8b7f333bb14df76ed01c12ffd0b8877a37ab066b4319489

See more details on using hashes here.

Provenance

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