Turn a folder into a private website for your team.

eze is open-source hosting you run inside your company. Upload some HTML and get a link that only your coworkers can open. Every site gets a database, live updates, file uploads and AI, with nothing to set up.

Set it up GitHub Self-hosted. MIT license.

How it works

  1. Make a siteWrite plain HTML, CSS and JavaScript yourself, or ask your AI tool to.
  2. Deploy itRun eze deploy or drop the folder on the eze dashboard.
  3. Share the linkAnyone signed in to your company can open it. Nobody else can.

A backend without a backend

Pages load one script from eze and can save data, react to changes and know who is looking. They use the viewer's company sign-in, so there are no keys in your code.

<script src="/_q/sdk.js"></script>
<script type="module">
  const me = await eze.id.me();
  const votes = eze.db.collection('votes');

  await votes.create({ place: 'Ramen', by: me.name });
  votes.subscribe({ onCreate: (vote) => redraw() });
</script>
  • eze.dbSave and query data, with live updates
  • eze.filesUploads like images, video and PDFs
  • eze.wsRooms for cursors, chat and games
  • eze.aiCall Claude, OpenAI or your own model
  • eze.idThe name and email of whoever is viewing

Works with your AI tools

eze init adds instructions that teach coding agents how to build an eze site. eze mcp lets Claude Code, Cursor and other MCP apps deploy sites for you.

claude mcp add eze -- eze mcp

> make a site where my team can vote
  on where to eat on Friday

Set it up

You need a server, a domain with wildcard DNS and HTTPS, and your company's sign-in: Google Workspace, Okta, Entra ID or any OpenID Connect provider, or an auth proxy you already use.

eze is one program with a small database file. A small VM is plenty.

Read the setup guide

go install github.com/ahyield/eze/cmd/eze@latest

EZE_DOMAIN=eze.acme.com \
EZE_AUTH=oidc \
EZE_OIDC_ISSUER=https://accounts.google.com \
EZE_OIDC_CLIENT_ID=... \
EZE_OIDC_CLIENT_SECRET=... \
EZE_OIDC_ALLOWED_DOMAINS=acme.com \
EZE_SESSION_SECRET=... \
eze serve

Only for your company

Everyone who can sign in can open, change and redeploy every site. That keeps eze simple, so keep it to your own people: eze won't start if its sign-in would let in a public email domain like gmail.com.

Found a security problem? Report it privately.