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.1.tar.gz (1.5 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.1-cp310-abi3-win_amd64.whl (20.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.11.1-cp310-abi3-macosx_10_12_x86_64.whl (21.7 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mountaineer-0.11.1.tar.gz
  • Upload date:
  • Size: 1.5 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.1.tar.gz
Algorithm Hash digest
SHA256 9b7822910107526c86c504379b98ac5ad6b1515f42788bef18517eb44b00ac1d
MD5 8bf76cd31d4c74458f0968b333d73d82
BLAKE2b-256 e9abebf8455e601fb30c02329ee72c5c6fcaad4b573d31016c0e415e762542ad

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.11.1-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.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b421cb33b331fc8e64ff8c6affb7d2f68f9fbc6fa56a7d30eae6847e8e69001f
MD5 c63fcc8fdf90cd5fafeda692e2e5342d
BLAKE2b-256 1f44b679cfdd0cc3e2d6269e7df18ae992f53074fa0b8c1405292f8c6cedc955

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9b9d1dda058b67e043b09b7501e79a25e673d80e7bc88ef47b2a26f8c08f132a
MD5 3fab997bd6d8fff5c594b95c8a32735a
BLAKE2b-256 19b0a1651915b3f6372c1c44b53bcdded7259de4a6d8311f5c9caa90ce9ba6b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8b74c633bd1b0c5e76888b078024d0646cf4241d7e2f74face00511ba0e5f0ec
MD5 2bdf27a8da1fd0faf6cdc0dcabd165aa
BLAKE2b-256 b53373e4c9c287bd7f80d2758f386ac0da3ec31ac9fb013dc17aace5b7dad20c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e64aa0b329a7e65b1b83df07094c31b80ebdd2aa9077739917d75a0e13b86c9f
MD5 811cde34d4b5e87b298378bd4721c769
BLAKE2b-256 0e8384c00c67901769bb50e97a6071c6ba87176c75e6d31cd000c789dbccee48

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.11.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3170a9582e86bbf4d5ae8d468e30abe132e86e343b77630d5bd0347128637d59
MD5 161f3a9f2b6e00c847c14796cf1311fa
BLAKE2b-256 d40ac574caca61b2462d2b2ab6d7c3f2ca9cd7f3d958b1e09247327b0a447a9e

See more details on using hashes here.

Provenance

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