VibeHost

Hackathon demo

Three hours left, projector demo. Build it, deploy it, QR it for the audience.

The scenario: hackathon final day. Your team's app works on localhost. Demo in front of judges, projector + audience. You need a real URL, not screen-share.

This recipe is optimized for speed: under a minute from working build to URL displayed.

Step 1 — Deploy public

Skip the "private + invite" step; this is a hackathon — public URL is the right answer:

vibehost app create hackathon-demo
vibehost link --app hackathon-demo
vibehost deploy ./dist
vibehost app visibility hackathon-demo public

Or smush it together if your team's pressed for time:

vibehost app create hackathon-demo \
  && vibehost link --app hackathon-demo \
  && vibehost deploy ./dist \
  && vibehost app visibility hackathon-demo public

URL printed in the deploy output. Paste it into the pitch deck.

Step 2 — QR code for the audience

vibehost app qr --app hackathon-demo

Prints a scannable QR in the terminal. Project it. While you're presenting, the audience opens the URL on their own phones — judges, mentors, fellow hackers all interact with your demo in parallel.

Save as PNG for the slide deck:

vibehost app qr --app hackathon-demo --png ./qr.png

Step 3 — Iterate during the event

A judge between rounds gave feedback. You fix it. Redeploy:

vibehost deploy

Same URL refreshes. Anyone who scanned the QR earlier sees the updated version when they reload.

If the change breaks something mid-demo, rollback is a single command:

vibehost rollback --app hackathon-demo

Step 4 — Don't push untested code

If you have time, use a channel for the next iteration before promoting to the main URL:

vibehost deploy --channel test
# Channel URL: https://hackathon-demo-test-yourws.vibehost.space
# Open it in another tab; verify

When it's good:

# Grab the deployment ID from the channel
DEPLOY=$(vibehost channel list --app hackathon-demo --json | jq -r '.data[] | select(.name=="test") | .currentDeploymentId')
vibehost promote "$DEPLOY" --to-channel production --app hackathon-demo

The main URL updates; the audience sees the clean version.

After the hackathon

The app stays live indefinitely — VibeHost apps don't expire on free tier. Two options:

  • Portfolio: keep the URL. Add it to your resume / GitHub README.
  • Keep building: don't change anything. Keep deploying as you iterate. Same URL, evolving content.

If you want a branded URL for the 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-demo

Anyone with deployer role can vibehost deploy to the same app. URL stays consistent regardless of who pushed.

Free tier supports 3 workspace members. For a typical 3–5 person hackathon team, one person creates the workspace and invites the rest as needed (or each person uses their own workspace and one person owns the deploy).

Quick CLI cheat sheet

WhatCommand
Deployvibehost deploy ./dist
Make publicvibehost app visibility <app> public
Roll backvibehost rollback --app <app>
QR codevibehost app qr --app <app>
List deploymentsvibehost channel list --app <app>

See also

On this page