# Host Storybook privately, without Chromatic · Stacktree

Source: https://stacktr.ee/host-storybook-privately

[Skip to content](#main) [Stacktree](/)[Developers](/developers)[Agents](/agents)[Docs](/docs)[Use cases](/use-cases)[Pricing](/pricing)[Blog](/blog)[Dashboard](https://app.stacktr.ee)[Sign in →](https://app.stacktr.ee)      By [ Steve Smith ](/about) · Founder, Stacktree  ·  Last updated August 16, 2026          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.

  [ Get started free ](https://app.stacktr.ee/?join=1&from=seo_host_storybook_privately)   install npx stacktree-install
Copy
     No card · 3 pages free · about a minute

##  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 from Solo: storybook.yourco.com.
 - X-Robots-Tag noai on every response so the Storybook source isn't slurped into AI training data.

FAQ

## 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, from Solo at $19 a month. Point a CNAME at Stacktree, Cloudflare for SaaS handles TLS, and your Storybook lives at storybook.yourco.com.
Keep reading

## Related guides

   -  [ Share architecture diagrams Same primitive for diagram-style HTML. ](/share-architecture-diagrams)
-  [ Internal tool hosting When the artifact is a single-file utility. ](/internal-tool-hosting)
-  [ Private HTML hosting in 2026 Category overview. ](/private-html-hosting)
-  [ Private GitHub Pages alternative Why Pages is the wrong primitive here. ](/github-pages-private-alternative)

References

## Sources and further reading

   -  [ Storybook — building for production ↗ Official Storybook docs on producing a static build for hosting. ](https://storybook.js.org/docs/sharing/publish-storybook)
-  [ Storybook CLI — build command ↗ Reference for the build subcommand used in the pipeline above. ](https://storybook.js.org/docs/api/cli-options)
-  [ Cloudflare for SaaS — custom hostnames ↗ How Pro-plan custom domains terminate TLS. ](https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/)

##  Get your Storybook behind a private link.

 storybook build, one upload, one email-domain gate. Done.

 [ Sign up free → ](https://app.stacktr.ee/?join=1&from=cta_host_storybook_privately)   install npx stacktree-install
Copy
       Private hosting for the HTML your agents make.

[](https://betalist.com/startups/stacktree?utm_campaign=badge-stacktree&utm_medium=badge&utm_source=badge-featured)[Featured on](https://devhunt.org/tool/stacktree)[](https://buildlist.io)[Get started free](https://app.stacktr.ee/?join=1)

## Product

- [Page video](/page-video)
- [Ask this page](/ask-this-page)
- [Client spaces](/client-spaces)
- [Templates](/templates)
- [Example deliverables](/examples)
- [Custom domains](/custom-domains)
- [Client feedback](/client-feedback-loop)
- [One-time links](/one-time-view-links)
- [See how pages get read](/page-engagement)
- [Made with Stacktree](/made-with)
- [Security](/security)
- [Watch the demo](/demo)

## Agents

- [All integrations](/agents)
- [Claude Code](/claude-code)
- [OpenAI Codex](/codex)
- [Cursor](/cursor)
- [Claude.ai connector](/claude-ai-connector)
- [Claude Cowork](/what-is-claude-cowork)
- [Meta Muse](/muse)
- [MCP server](/mcp-publish-html)
- [Deploy from Claude Code](/deploy-html-from-claude-code)
- [Skills](/skills)
- [Slack app](/slack)
- [n8n node](/n8n)
- [Agent payments (x402)](/x402)

## Alternatives

- [All comparisons](/alternatives)
- [Head-to-head comparisons](/compare)
- [Tiiny Host](/tiiny-host-alternative)
- [GitHub Pages (private)](/github-pages-private-alternative)
- [Vercel](/vercel-alternative-for-agents)
- [ngrok](/ngrok-alternative-for-html)
- [Display.dev](/display-dev-alternative)
- [Static.app](/static-app-alternative)
- [OpenAI Codex Sites](/openai-codex-sites-alternative)
- [here.now](/here-now-alternative)
- [Shippage](/shippage-ai-alternative)
- [Best private hosting](/best-private-html-hosting)

## Use cases

- [All use cases](/use-cases)
- [Share with clients](/share-with-clients)
- [Send a file to a client](/share-html-file-with-client)
- [Share Claude artifacts](/share-claude-artifacts)
- [Share Jupyter notebooks](/share-jupyter-notebook-html)
- [Host Storybook privately](/host-storybook-privately)
- [Architecture diagrams](/share-architecture-diagrams)
- [AI-generated reports](/host-ai-reports)
- [Internal HTML tools](/internal-tool-hosting)
- [Private HTML hosting](/private-html-hosting)
- [Vibe-coded page hosting](/vibe-coding-hosting)
- [Leave a website builder](/website-builder-migration)

## Learn

- [Blog](/blog)
- [Glossary](/glossary)
- [FAQ](/faq)
- [Where AI output should live](/where-ai-output-lives)
- [Agent-loop hosting](/agent-loop-hosting)
- [Why agents need a publish primitive](/blog/why-agents-need-a-publish-primitive)
- [MCP servers explained](/blog/mcp-servers-explained-for-developers)
- [What changed in the 2026-07 MCP spec](/blog/mcp-2026-spec-changes)
- [Sites in Codex explained](/blog/sites-in-codex-explained)
- [Private-by-default hosting](/blog/private-by-default-html-hosting)
- [An agent paid us $1 (x402)](/blog/agent-paid-to-provision-itself)
- [When a loop hits a paywall](/blog/loop-engineering-paywall)
- [Pricing](/pricing)
- [Self-host (new)](/self-host)
- [Changelog](/changelog)
- [Docs](https://stacktr.ee/docs)
- [About](/about)
© 2026 Stacktree · stacktr.ee

[Privacy](/privacy)[Terms](/terms)[Security](/security)[Dashboard](https://app.stacktr.ee)[npm](https://www.npmjs.com/package/stacktree-mcp)[Sitemap](/sitemap.xml)[llms.txt](/llms.txt)[API spec](/openapi.json)

---
Full markdown summary of the Stacktree marketing surface: https://stacktr.ee/llms-full.txt
