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.0.dev1.tar.gz (858.0 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.0.dev1-cp310-abi3-win_amd64.whl (19.5 MB view details)

Uploaded CPython 3.10+Windows x86-64

mountaineer-0.12.0.dev1-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.0.dev1-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.0.dev1-cp310-abi3-macosx_11_0_arm64.whl (19.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

mountaineer-0.12.0.dev1-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.0.dev1.tar.gz.

File metadata

  • Download URL: mountaineer-0.12.0.dev1.tar.gz
  • Upload date:
  • Size: 858.0 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.0.dev1.tar.gz
Algorithm Hash digest
SHA256 0a63b3f3caeeb7717ba576c7f25d2951dcc91ff0211dfeb79b4e26dc8db1210d
MD5 7d69d9c3c869896ec7302a8b6c9812ce
BLAKE2b-256 beac38834c25cb6c73cb8e61e570e6d47c707fc1710ef29b520ab9f4b7c1ff92

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0.dev1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 60152b2e8d3e01fa8c7a9f698b9a49e4e6e7bd3cff57b6f165d48072b6d131cf
MD5 970052e89e889ca9c2fd71bf84e8cc43
BLAKE2b-256 4f81a0f158fd4bfd05e249567625435bee4e4c23414e56c56f96fae25ca840ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0.dev1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 118efc21c89c9983540b3b3e5cf5b351dda1fb5dc0dcca49cbdfe4908a99a159
MD5 a135f6b4f4fb4622b51b45c5f5888547
BLAKE2b-256 f0d357d752942a6b49357d122720c11428734846456af1737b495a0003513676

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0.dev1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ea1d5b21e342245a904bb0d7a65dc8503c635fc890eccd846e278bb67e6376b4
MD5 79e4ddf2a8b83b03c9f85214921dfe2a
BLAKE2b-256 2164d5eebcfe377b9192498e4b28b07586f05eb83258a1394bbbb414b2bf9923

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0.dev1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 321465fe04921f3d3eb574523ef2c670f1762685679e836452cd49727a693be7
MD5 6498b38d2fc9a0111c0c9c9616ed39c9
BLAKE2b-256 eb8e8a2acf2055ef106203dd38916b0fc00ad54f7c692caf1d00ff8c59e8d03c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0.dev1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5f189de84deab95e965ed1836f8c88bfbdfdc3631767f568ee3e7eb3283c3144
MD5 5f31b7fa3e4a651169a06f91b30dafe4
BLAKE2b-256 890122ec12e69b2b60a8e1de24039435e69b882c9384612286ecd0424e84efa1

See more details on using hashes here.

Provenance

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