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

Uploaded CPython 3.10+Windows x86-64

mountaineer-0.10.4.dev3-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.10.4.dev3-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.10.4.dev3-cp310-abi3-macosx_11_0_arm64.whl (20.6 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.10.4.dev3-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.10.4.dev3.tar.gz.

File metadata

  • Download URL: mountaineer-0.10.4.dev3.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.dev3.tar.gz
Algorithm Hash digest
SHA256 7d4bd8ac38bda4053d3fd703bccae49554c7cdc0d061e1b6112eb40bffbe848c
MD5 b880477c2c8d7eb955d9996738a541e4
BLAKE2b-256 117a4302ea617ebc3b23dbad291ee746885d73865d1f54a6b88c4e6d1c73be83

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev3-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 baad2018b9d0e25f937d49d53662f68327dfbdbc6ed9a304a519fa1c133c3b84
MD5 a2b48cf55ee3b52c55ee4a564d2c51ae
BLAKE2b-256 3ff0520335785d67b292479e738a0fa7d2404c82b386297dd72372ab413a5fa6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d72e09a4aabdddbd62f6b743505e023d501325943050d66c3b56664b8a52acd5
MD5 fe5c9eccc5e87d0bdb37997f39c5cf3a
BLAKE2b-256 daa50398778a13980858e37077be7bcdd0eb79ae32a0e3ce5b947344d53e2ad6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev3-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cc05f17e3b795aed19c83527c561f02981a7b06f7a4ac542871f24a3c0cce272
MD5 50960e78c7285cd2daf9e91cacdb5dba
BLAKE2b-256 1dc3129c4d74643c6f14ea0aed75b721cd6a5eea7be2e26421249474526d5056

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev3-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1615880cf8b17061aa61dc236d9d4b3d755fbee69f65e8da0fd913bb7d4b9f68
MD5 acf1aa78f4f867e81f993840ca0698da
BLAKE2b-256 9ef5eca5f1f3367f64ecb701cfbaed225c86dd9397950edf3ff9e7a3206e4c16

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev3-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5072bc348120238be6cc69f03fd947a8c537ef80b5548273143c8f38631b5cee
MD5 8a6cb95eda206b660106f87a64a8df74
BLAKE2b-256 ce263f91d25409ac4a61aa5206e5e3a32c30db17fc5d2eac7998271f1473067f

See more details on using hashes here.

Provenance

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