Deploy a hackathon demo with a QR code
Build it, deploy it, and put a QR code on the projector so the audience can open it.
It's the last day of the hackathon and your team's app works on localhost. You're about to demo it to judges on a projector, with an audience watching, and you want a real URL instead of a screen share.
This recipe keeps the steps to a minimum.
1. Deploy it publicly
Skip making it private and inviting people. At a hackathon, a public URL is the right call:
vibehost app create hackathon-demo
vibehost link --app hackathon-demo
vibehost deploy ./dist
vibehost app visibility hackathon-demo publicOr chain the commands if you're pressed for time:
vibehost app create hackathon-demo \
&& vibehost link --app hackathon-demo \
&& vibehost deploy ./dist \
&& vibehost app visibility hackathon-demo publicThe deploy output prints the URL. Paste it into the pitch deck.
2. Show a QR code to the audience
vibehost app qr --app hackathon-demoThis prints a scannable QR code in the terminal. Put it on the projector, and while you present, judges, mentors, and other teams can open the demo on their own phones.
Save it as a PNG for the slide deck:
vibehost app qr --app hackathon-demo --png ./qr.png3. Iterate during the event
A judge gives feedback between rounds. Fix it and redeploy:
vibehost deployThe URL stays the same. Anyone who scanned the QR code earlier sees the new version when they reload.
If the change breaks something mid-demo, roll back with one command:
vibehost rollback --app hackathon-demo4. Test before it reaches the main URL
If you have time, deploy the next iteration to a channel before it reaches the main URL. The channel gets its own URL, such as https://hackathon-demo-ch-test-yourws.vibehost.space. Open it in another tab and check it:
vibehost deploy --channel testWhen it's good, deploy the same directory to production. Don't rebuild in between, so the audience gets exactly what you checked:
vibehost deploy(vibehost promote would move the checked deployment by ID, but it currently fails for static apps on vibehost.com.)
The main URL updates, and the audience sees the version you checked.
After the hackathon
The app stays live indefinitely, because VibeHost apps don't expire on the free tier. You can add the URL to your resume or GitHub README, or keep building and deploying to the same URL.
If you want a branded URL for your portfolio (hackathon-project.yourdomain.com), upgrade to Business and add a custom domain. See custom domains.
Team setup (if multiple people deploy)
Invite teammates:
vibehost workspace invite teammate@x.com --role member
vibehost app grants add-email teammate@x.com deployer --app hackathon-demoAnyone with the deployer role can vibehost deploy to the same app, and the URL stays the same whoever pushed.
The free tier allows 3 workspace members. On a team of 3 to 5, one person creates the workspace and invites the rest as needed. Alternatively, each person keeps their own workspace and one person owns the deploy.
CLI cheat sheet
| What | Command |
|---|---|
| Deploy | vibehost deploy ./dist |
| Make public | vibehost app visibility <app> public |
| Roll back | vibehost rollback --app <app> |
| QR code | vibehost app qr --app <app> |
| List deployments | vibehost channel list --app <app> |
See also
- Quickstart is the longer version, with explanations.
- Channels lets you test changes during the event without touching the main URL.
- QR command documents the command for in-person demos.