Skip to main content

local-preview

Test status Deploy Status Docs Go Reference PyPI

A local-first preview-deployment orchestrator: every commit of a registered git repository becomes a servable preview at its own subdomain (<sha>-<repo>.preview.localhost:8080), built once, deduplicated by content, and served from a single binary.

local-preview resolves each commit into a (frontend artifact, backend artifact) pair by content-addressing the relevant subtrees. Commits that don't touch the frontend (or backend) reuse the existing artifact — and the already-running backend process. Backend state follows git lineage: a new backend version forks its data from the nearest deployed ancestor, so previews feel continuous on a straight line of commits while divergent branches can never corrupt each other.

Install

uv tool install local-preview

This installs the binary to ~/.local/bin/preview. Make sure to have that on your PATH.

Run

preview serve

The server listens on :8080. Open http://localhost:8080/ for the dashboard.

Or with Docker Compose:

docker compose up -d

📖 Documentation

Full documentation lives at https://jmelahman.github.io/local-preview/:

  • Quickstart — register a repo, deploy a commit, open the preview.
  • Configuration — flags and env vars.
  • REST API — endpoints exposed by the running server.
  • CLI — serve, repo, deploy, install-hook.

Metadata

Release files for local-preview 0.28.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for local-preview 0.28.0
File
local_preview-0.28.0-py3-none-manylinux_2_17_x86_64.whl Python 3 none Linux glibc 2.17+ x86-64 Details
local_preview-0.28.0-py3-none-manylinux_2_17_aarch64.whl Python 3 none Linux glibc 2.17+ ARM64 Details
local_preview-0.28.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
local_preview-0.28.0-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details
local_preview-0.28.0-py3-none-any.whl Python 3 none any Details

Total release size: 44.2 MB

Release files / local_preview-0.28.0-py3-none-manylinux_2_17_x86_64.whl

Download URL local_preview-0.28.0-py3-none-manylinux_2_17_x86_64.whl
Size 9.1 MB
Tags Linux glibc 2.17+ x86-64 Python 3
SHA-256 checksum
How to use checksums
2b9e0c47435e92067a5a7a1e1d05d2a80b32f4a9f9aef70a1e3af496c41f7bfe
BLAKE2b-256 checksum
How to use checksums
477b7a425d55a575407c3f77c61ad767e19ebaf234bc51eaffe1682a09f7f97f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / local_preview-0.28.0-py3-none-manylinux_2_17_aarch64.whl

Download URL local_preview-0.28.0-py3-none-manylinux_2_17_aarch64.whl
Size 8.3 MB
Tags Linux glibc 2.17+ ARM64 Python 3
SHA-256 checksum
How to use checksums
1b96652b2a1075e42f6e933d1816282a062c479d44475cb9a0998f6567a84f34
BLAKE2b-256 checksum
How to use checksums
d880c855ccabc9214fb34b5096b8192812f2a2d25ed8d0d626c4372e4722d631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / local_preview-0.28.0-py3-none-macosx_11_0_arm64.whl

Download URL local_preview-0.28.0-py3-none-macosx_11_0_arm64.whl
Size 8.6 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cecd7a749c587a8a61706c320b425ba11e4e9b21e35dd43c7fa9f6b78dd1117a
BLAKE2b-256 checksum
How to use checksums
9bc01524cece61d5be7cc76f8508961bf3e459f5b7aee3e2e78c459fc571db29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / local_preview-0.28.0-py3-none-macosx_10_12_x86_64.whl

Download URL local_preview-0.28.0-py3-none-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
39102dfe798aea37dc0cabf6bdd861c8fe5e067ff54a406ea629f693c7596c65
BLAKE2b-256 checksum
How to use checksums
fdf9cf18f878e02cb6ae8fd0ba0a669feb0ecf647e0d2a25dd69a570ef309e54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / local_preview-0.28.0-py3-none-any.whl

Download URL local_preview-0.28.0-py3-none-any.whl
Size 9.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
5dd51383a9f5f7ed8bc1188990888f16738911093ae0e4bcf7b6c1221663de13
BLAKE2b-256 checksum
How to use checksums
428235e1b6f1963750b568e0b735165f2b4a60080450de46e16dc6cb242b3d36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

0.31.1

5 release files

0.31.0

5 release files

0.30.1

5 release files

0.30.0

5 release files

0.29.1

5 release files

0.29.0

5 release files

This release

0.28.0 This release

5 release files

0.27.0

5 release files

0.26.1

5 release files

0.26.0

5 release files

0.25.1

5 release files

0.25.0

5 release files

0.24.0

5 release files

0.23.0

5 release files

0.22.0

5 release files

0.21.0

5 release files

0.20.0

5 release files

0.19.0

5 release files

0.18.2

5 release files

0.18.1

5 release files

0.18.0

5 release files

0.17.1

5 release files

0.17.0

5 release files

0.16.0

5 release files

0.15.0

5 release files

0.14.3

5 release files

0.14.2

5 release files

0.14.1

5 release files

0.14.0

5 release files

0.13.2

5 release files

0.13.1

5 release files

0.13.0

5 release files

0.12.0

5 release files

0.11.1

5 release files

0.11.0

5 release files

0.10.2

5 release files

0.10.1

5 release files

0.10.0

5 release files

0.9.0

5 release files

0.8.2

5 release files

0.8.1

5 release files

0.8.0

5 release files

0.7.0

5 release files

0.6.0

5 release files

0.5.0

5 release files

0.4.0

5 release files

0.3.0

5 release files

0.2.2

5 release files

0.2.0

5 release files

0.1.8

5 release files

0.1.7

5 release files

0.1.4

5 release files

0.1.3

5 release files

0.1.2

5 release files

0.1.1

5 release files

0.1.0

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page