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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: mountaineer-0.12.0.tar.gz
  • Upload date:
  • Size: 898.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.tar.gz
Algorithm Hash digest
SHA256 c34d4ffdd3b6419081abd0d123470cc14e161074e0aedbef00654372f5d23b72
MD5 49f4559056461dd11c8ca65df36cc0a0
BLAKE2b-256 24d525ab5d2142717476b44e5394099cfc1f3478b34be9d03d302946952189ff

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: mountaineer-0.12.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 19.5 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mountaineer-0.12.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c8011ff548d9586bf450c42c54bf87a6b30f41e336b1f79842fc69bee0b2013d
MD5 fc85efeae23b6f70ec2757d8382cdd17
BLAKE2b-256 f08cd8305a8de7e868a4eefb778c82bc65c0c50415c99ade2065f038ddeeec7d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5f39612169ca598b762aeb4391b7e7baf736abb8ae720e3bfbdb059b5da40355
MD5 f1267397dcaec58a3f237fbe4f01facd
BLAKE2b-256 475232fcec36e64a305b5f79477ee739ac4e9603edd7f27bfc34b272627aa8c3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1a3e116e7bbc56a8071692b15aa94b8de937524b73402d1f499dee823e7bb923
MD5 c4c6c34169ebd8445e39fd902b08442f
BLAKE2b-256 38158d77ff0225c169619f277594530a5d017eff07a26946fdcef66da542e798

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 456bb64d5f48ae4b2da2e8cb8e912741081c1865c02496dc7ea6d9a5be9a45ec
MD5 f7caa464f76fc217a76a50d8643d6e59
BLAKE2b-256 ada29d269f870c19f0d7d8d64e031b7bfb6893b0b1d95fe14706e23d1fd319cb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.12.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b9e575939f4dbad9d4e3af59e5a06023b1b333c2d2cc83f03da282645974b1e1
MD5 c4c9f8389c1b661b94ffb7a0629bbd14
BLAKE2b-256 5ce3625cce4c4cdbacb5270a4a1059ba8c483665fa6c3d6347114f75bc582d44

See more details on using hashes here.

Provenance

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