feat: a cleaner task list #42
kai wants to merge 3 commits into main from feature/task-list
Previa turns every GitHub pull request into its own live preview: the exact commit, built from your own Dockerfile, running at a private HTTPS link that's posted right on the pull request. Reviewers click, try it, and approve with confidence.
kai wants to merge 3 commits into main from feature/task-list
Why Previa
Reviewing a change should feel like using it. Previa puts the running commit one click away from the review, so nobody has to check out a branch to see what it does.
Click through the real UI on every push, not a picture of it.
Databases, migrations and background workers come along for the ride.
Preview contributions from forks safely. Forks never get your secrets.
Test the real thing from a link on the pull request. No local setup.
Try it
Open it, build it, push new commits, merge it. A sped-up simulation of what Previa does on GitHub.
How it works
The default. Nothing builds until you press Build latest commit. Builds five minutes after your last push. Every new commit resets the clock.
As soon as a pull request is opened or updated, Previa picks it up, notes its latest commit and checks whether it can merge. Missed an update? Sync in the dashboard catches up in one click.
In Manual mode, the default, you choose Build latest commit.In Automatic mode, a build starts five minutes after your last push. Right before it starts, Previa double-checks with GitHub. If anything changed, it waits.
Previa builds your own Dockerfile from exactly that commit, in a clean, isolated build with sensible time and size limits. The build log streams live while it runs.
Each preview runs on its own with firm CPU and memory limits. Your repository secrets are added when it starts (never for forks), and nobody can open it until its health check passes.
Every pull request gets its own private HTTPS link with a random part nobody can guess. When you push again, the new version takes over only once it's healthy, so reviewers never land on a broken page.
Previa keeps one comment on the pull request up to date, from Queued to Building to Ready with the link, and adds a check to the exact commit. The dashboard updates live, no refresh needed.
When the pull request closes, the link stops working and the preview and its data are removed. A preview nobody closes expires 48 hours after it was last published. Building again brings it back at the same link.
Overview
Your previews at a glance, from your own repositories.
Workspace
Pick a source to see its pull requests and previews.
taskboard pull requests
Serving commit 3f9c2a7. It passed its health check.
#42 · feat: a cleaner task list
Build logs
Rebuild of commit 8d41e0b · requested by kai
MAILER_API_KEY2 days agoReplaceDeleteSENTRY_DSN5 days agoReplaceDeleteMAPS_API_KEY1 week agoReplaceDeleteALGOLIA_APP_ID=FH8Q2LK1 ALGOLIA_SEARCH_KEY=••••••••••••••••Save secrets
Features
Manual by default: you press Build latest commit. Or switch on Automatic and Previa builds five minutes after your last push.
Pull requests with merge conflicts don't build. Previa checks again right before it starts, so nothing runs by mistake.
Every preview is built from one exact commit, and your .previewrc.yaml is checked before anything runs.
If it runs in Docker and answers HTTP, it runs on Previa: Node.js, Python, Ruby, Go, PHP, Java or a static site.
Every request is saved before it runs, so a hiccup never loses your build. It simply picks up again.
Pull requests from forks build without your secrets or extra connections, and can't affect your other builds.
Each preview runs on its own, without admin rights, with a read-only file system and firm limits.
small 0.5 vCPU / 512 MiB, standard 1 vCPU / 1 GiB, or large 2 vCPU / 2 GiB, set in one line.
Ask for PostgreSQL 17 or 16 and Redis 8 or 7. Each preview gets its own fresh copy and its connection details.
Run migrations and seed data once with setup, add up to three background processes, and link your API docs.
Write-only in the dashboard, paste a whole .env file, added when a preview starts and masked in logs.
Allow up to ten outside destinations, like a sandbox database, when your preview needs them.
One unguessable link per pull request that stays the same for its whole life.
A new commit takes over only once it's healthy. Until then, the previous version keeps serving.
One comment on the pull request, updated from Queued to Building to Ready. It always names the commit it describes.
A Previa preview check on the exact commit: in progress, then success or failure, right in GitHub.
Watch the build as it happens, then copy or download the log. Secrets are masked.
Every pull request's state at a glance. When something can't run, it says why and how to fix it.
Build, Retry, Rebuild and Tear down, with a confirmation before anything is removed.
Pull in the latest pull requests from GitHub with one click, whenever you like.
Closing or merging removes the preview at once. Forgotten previews expire after 48 hours.
When it's busy, your build waits its turn and starts on its own. It never just fails.
Find any repository or pull request fast, and share the exact view with a link.
No new password. Signing in doesn't give Previa your code; only the repositories you choose do.
Full-stack previews
Add PostgreSQL or Redis, a setup command and up to three background processes to .previewrc.yaml. Previa starts them next to your app, hands over the connection details, and shares the link only when everything is ready.
Each preview runs on its own, without admin rights, on a read-only file system with firm CPU and memory limits.
Security
Every pull request is treated as untrusted, even your own team's. Previews are kept apart from each other, from other customers and from Previa itself.
Pull requests from forks never receive your secrets or extra connections.
Encrypted, added only when a preview starts, masked in logs, and never shown again.
Previews never run on Previa's own address, so a preview can't touch your sign-in.
Each build runs on its own, with limits, and can't reach anything private.
Each link has a random part. Previews aren't behind a login, so use test data.
Merged, closed or expired: the preview and its data are removed.
Roadmap
FAQ
Didn't find yours?
Previa turns every GitHub pull request into its own live preview: the exact commit, built from your Dockerfile, running at a private HTTPS link that's posted right on the pull request.
Two files at its root: a Dockerfile and a .previewrc.yaml. The config can be as short as {}; by default Previa expects your app on port 3000. You can also set a health check path, environment variables and a size.
Anything that runs in a Docker container and answers HTTP: Node.js, Python, Ruby, Go, Java, PHP, static sites and more. APIs work too.
In Manual mode (the default), when you press Build latest commit. In Automatic mode, five minutes after your last push. Either way, Previa checks with GitHub right before building.
Until its pull request is closed or merged, or 48 hours after it was last published. Building again brings it back at the same link.
Yes. Previa is free while it's in early access, so you can explore it on your own pull requests.
No. Signing in only tells Previa who you are. It reads code only in the repositories, public or private, where you install its GitHub App, and only to build previews and post comments and checks.
Yes. Every build and preview is isolated, and pull requests from forks never receive your secrets or extra connections.
Anyone who has its link. Each link has a random part, so previews can't be guessed, but they aren't behind a login. Use test data and sandbox credentials, never production ones.
It's used only to build and run your preview. When the pull request closes or the preview expires, the preview and its data are removed.
The comment and check on the pull request say what went wrong, the full build log is one click away, and you can retry whenever you're ready.
Make your early-access pass, then send it to Ajay on LinkedIn to claim your spot.
Early access
Previa is in early access. If you'd like it on your repositories, or have feedback, ideas or questions, get in touch.
Previa preview: Queued
Queued: builds as soon as it's your turn.
https://pr-42-gc0uy9-k3x9q2ma.preview.ajaykathwate.devcommit 3f9c2a7