use case
Host Storybook privately.
Build the static site with storybook build, zip it, upload to Stacktree, gate the link to your @yourco.com email domain. No CI pipeline, no Chromatic minimum, no Pages public-by-default.
How do you host Storybook privately for an internal team?
Run storybook build, zip the resulting storybook-static/ folder, and upload to Stacktree. Add an email-domain gate (e.g. @yourco.com) and the link only opens for verified employees. For continuous updates, call PUT /sites/<slug> from CI on every merge — the URL stays the same, the content updates.
The minimal pipeline
# 1. Build
npx storybook build
# 2. Bundle and upload (first time, gets a slug back)
cd storybook-static
zip -r ../storybook.zip .
cd ..
curl -F file=@storybook.zip https://api.stacktr.ee/sites
# 3. Subsequent updates — same slug, replace in place
curl -X PUT -F file=@storybook.zip \
https://api.stacktr.ee/sites/<slug> CI in 10 lines
# .github/workflows/storybook.yml (or equivalent)
- run: npx storybook build
- run: cd storybook-static && zip -r ../sb.zip .
- run: curl -X PUT -F file=@sb.zip \
-H "Authorization: Bearer $STACKTREE_TOKEN" \
https://api.stacktr.ee/sites/${{ vars.SLUG }} Why not GitHub Pages or Vercel for this?
- GitHub Pages is public-by-default. "Private Pages" requires Enterprise Cloud + gates to GH users in your org, which is a heavy contract for "let designers + PMs see Storybook."
- Vercel preview URLs are public unless you wire Vercel Authentication (paid, org-wide). Each branch is a separate URL — fine for engineering, awkward for "send the design team the latest."
- Chromatic is excellent for visual regression but priced for that broader workflow.
What you get on Stacktree
- An email-domain gated URL — magic-link verified per viewer.
- A stable URL across builds (CI calls PUT on the same slug).
- Custom domain on Pro:
storybook.yourco.com. - X-Robots-Tag noai on every response so the Storybook source isn't slurped into AI training data.
Frequent questions
How do I host Storybook privately without GitHub Pages or Chromatic? +
Run
storybook build to produce a storybook-static/ folder, zip it, and upload to Stacktree. Add an email-domain gate so only @yourco.com viewers can open the link. No CI pipeline, no Chromatic minimum tier, no public-by-default Pages URL.Does it support Storybook 7 and 8? +
Yes — Stacktree hosts the static output of
storybook build regardless of which Storybook version produced it. The same applies to Storybook 9 when it ships.Will the addon panel and docs work? +
Yes. The built output is fully self-contained; addons that ship as part of the build (Controls, Actions, Docs, Viewport) render exactly as they did in dev.
Can I redeploy on every commit? +
Yes — in CI, after the build, call
PUT /sites/<slug> with the new zip. Same URL, new content. Reviewers refresh; no new link to chase.How does this compare to Chromatic? +
Chromatic is best-in-class for visual regression and review workflows. Stacktree doesn't compete on that. It does compete on "I just want my team to see this Storybook behind a private URL" — Chromatic's minimum tier is heavier than that need.
Custom domain support? +
Yes on Pro — point a CNAME at Stacktree (Cloudflare for SaaS handles TLS) and your Storybook lives at storybook.yourco.com.
Related guides
Sources and further reading
Get your Storybook behind a private link.
storybook build, one upload, one email-domain gate. Done.
Sign up free →