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

Uploaded CPython 3.10+Windows x86-64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

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

File metadata

  • Download URL: mountaineer-0.10.4.dev2.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.dev2.tar.gz
Algorithm Hash digest
SHA256 249938792975d2473f4c9be0fbaf691120cdc8f12f892a4c789e4ac7b1744848
MD5 809cffb79b5c2f639a36f2a9e5bbee23
BLAKE2b-256 6a572d0303870bced015092459b8d2742be1980627f09f372cca094a82411e93

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9b5b81d21a7733c629dde7e948857a2adb2d8758674b5af3ae60c07a5ffe43f5
MD5 faa634c7064d0067f6597b2176e225a6
BLAKE2b-256 abae402cbdbf5160f448d49227093d9319ed77ee20f8edc921bcf416165323ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3c6b8d2c1dcee26d23aaf8bcffda15dd27cfbc3e96dbcfffd2f763317b9c3ac8
MD5 cddb144b5637444768fe054247739f1c
BLAKE2b-256 e0235952192ccf3fdc4e9a87d91a1624fdfbd944ebc13e30074355536dd1fa13

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ad8c36b5b9d121e09166049361ae586c7b8b1b47ab122336a85152ccd3ec264c
MD5 48130b97c5ba61e847a2486fbd789594
BLAKE2b-256 0d4c8ef4139fc953427296c8c6a0e51119f5c8edc476fea490909fcfe3785378

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 daba3f6b7929133d5ac840578529ed319cf208a6ecf91fab804aa30dfdefd7ac
MD5 f13405bc1a1a54a99394115691c6966c
BLAKE2b-256 7b1cbb21d6a64561db8fec6a8e52e2b90f29be36139be26c89025a8caedd5c4a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mountaineer-0.10.4.dev2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7ae821c5234bb3fcf09b96d4263acd8fd7ed0e700e62316b5eadb72e979df1a7
MD5 69a1992fadd3ae0980b695e859beac78
BLAKE2b-256 99d6507c7fc185979f54f48d365a840109b24ada0994727f83c0df7bc823a5ae

See more details on using hashes here.

Provenance

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