drobek
Open-source, self-hosted vibe coding hosting platform: an alternative to Lovable, Bolt.new and v0 that works with your own AI agent (Claude Code, Cursor, Codex) over MCP. Builds, previews and publishes web apps. AGPL-3.0.
Install / Use
claude mcp add freema -- npx -y github:freema/drobekIf the server publishes to npm under a different name, use that package instead β check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of drobek
drobek scores 83/100 on our quality scale, 3058th of 4,607 Development & Engineering skills we index.
Its MCP Server is 26 KB long, well organised into 19 sections with 14 code examples: a thorough specification that gives an agent plenty to work with.
It has 4 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated 2 days ago, so drobek is actively maintained.
- It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit β read the skill file before letting an agent act on it.
drobek compared with similar skills
All 4 of these similar skills score higher than drobek; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| drobek (this skill)by freema | 83 | 4 | 2d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 98.8k | 2d ago | CLAUDE.md |
| taste-skillby Leonxlnx | 100 | 98.5k | 3d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 75.6k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 50.7k | today | CLAUDE.md |
Frequently asked questions
- How do I install drobek?
- Run
claude mcp add freema -- npx -y github:freema/drobek. The install tabs above show the steps for each supported agent. - Which AI agents does drobek work with?
- It is written for Claude Code, Claude Desktop, Cursor and OpenAI Codex, as a MCP Server file. Other agents that read the same format can often use it too.
- Is drobek safe to use?
- It is AGPL-3.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is drobek still maintained?
- The repository was last updated 2 days ago, so drobek is actively maintained.
Skill content
View source on GitHubdrobek
Open-source vibe coding hosting: your AI agent builds the web app, drobek compiles, previews and publishes it.
Bring Claude, Claude Code, Cursor or Codex. Your agent connects over MCP, writes the app directly into a workspace and gets compile feedback and a live preview. You decide when to publish. Platform modules supply sign-in, data, forms, e-mail, uploads, external APIs and scheduled imports; a dashboard gives you control over the app, its users and its secrets. Built something as a Claude artifact? Your agent moves its files over unchanged and hands you a preview.
An open-source, self-hostable alternative to Lovable, Bolt.new and v0 for people who already have an agent: drobek has no chat of its own, the agent you use does the building, and drobek compiles, versions, previews and hosts what it writes.
Try drobek.app Β· Self-host Β· Gallery Β· Docs
The proxy module in 35 seconds: your agent registers an outside API, an admin confirms who can call it, and the key you type into the dashboard never reaches the app or the agent.
MCP Registry name: io.github.freema/drobek. The hosted
Streamable HTTP endpoint is https://drobek.app/mcp and uses OAuth 2.1.
Choose where to run it
| | Get started |
| --- | --- |
| drobek.app | The maintainer's hosted instance. Sign in and connect your agent. |
| Your own server | Run the same public image with Postgres, Redis and Caddy. Follow the self-host quickstart, then connect your agent to your server's /mcp endpoint. |
The core is AGPL-3.0. Building, testing and self-hosting need no access to the private repository that operates drobek.app. The agent plugins are MIT and can connect to either instance.
See what people build
- Drobek Tycoon β a playable hosting-company simulator with three levels.
- PokΓ©dex β PokΓ©API search and stats through drobek's proxy module, with a live request log.
- Pixel Wall β a shared 64 Γ 40 canvas backed by auth, data and other platform modules.
- Pixel Crumbs β a browser pixel-art and animation editor.
- Drobek Skok β a pixel platformer with a leaderboard.
- PekΓ‘rna Drobek β a small bakery's demo website.
These are public apps on drobek.app. Browse the gallery for more examples.
Build your first app
-
Choose an instance above and connect your agent.
-
Ask for a small app, for example:
Build a shift planner for our team on drobek. Let people sign in and see their own shifts. Give me a preview to try before publishing. -
Open the preview, ask for changes, then ask the agent to publish when ready.
Apps run in the browser. Their backend comes from installed platform
modules; arbitrary app server code and per-app npm install are outside
the execution model. For your own backend integration,
write a platform module.
The loop
- Connect drobek to your agent (an MCP server with OAuth β you approve it in the browser).
- Ask for an app: "a shift planner for our warehouse". The agent calls
create_appand gets a compiling starter plus a briefing of the rules. - It calls
write_files. drobek compiles the files in-process with esbuild and returns the compile errors in the same response; the agent fixes them and writes again. Every write is an immutable version. - Each successful compile is live at once on the app's preview host,
https://<slug>--preview.<APPS_DOMAIN>β the agent hands you the link. - When you are happy, the agent calls
publishand the version goes live onhttps://<slug>.<APPS_DOMAIN>(or your own domain). Publishing an older version is the rollback.
Why it is built this way:
- The server never executes app code. It compiles and serves; the result
runs only in browsers. No sandbox per app, no
npm install, no server-side code of the agent's. - Secrets never pass through the agent. The app owner sets them in the dashboard; modules use them server-side.
- Every app is its own origin (
<slug>.<APPS_DOMAIN>), separate from the dashboard's. - One process, one image (
ghcr.io/freema/drobek) + Postgres + Redis (+ Caddy for TLS). It runs on an ordinary small server.
Core concepts
Agent plugins and platform modules do different jobs. A plugin teaches your agent how to build on drobek. A module runs on the drobek server and adds backend capabilities for apps. Installing a plugin does not install server modules. See the repository and compatibility map.
-
Workspace β people with roles (workspace-admin / editor / viewer).
-
App β a globally unique slug, owned by a workspace. Its hosts:
<slug>.<APPS_DOMAIN>(published),<slug>--preview.<APPS_DOMAIN>(the newest version that compiled),<slug>--v<N>.<APPS_DOMAIN>(exactly version N), plus verified custom domains. -
Version β an immutable, numbered snapshot of the app's sources and compiled output. Publishing moves one pointer.
-
Platform modules β the only backend an app gets: routes under
/__drobek/v1/<name>on the app's host,drobek.<name>in the browser SDK, a per-app config the agent proposes and the owner confirms when it is risky, a skill the agent reads. Built in (modules/, enabled withDROBEK_MODULES):authβ the app's users sign in with an e-mailed code (allowlist, admins,<LoginGate>, sessions the owner can revoke);dataβ collections of records with per-operation rules (public/user/owner/admin), JSON Schema, CSV;formsβ<Form>submissions stored and e-mailed to the owners, with bot protection;emailβ notifications to the app's owners (never to arbitrary addresses), per-app and server-wide budgets;filesβ end-user uploads with types sniffed from the bytes and a per-app quota;proxyβ calls to external APIs with the secret injected server-side, behind an SSRF guard.
Operators can add their own modules against the public contract:
npm create drobek-module@latest <name>scaffolds one against the npm packages@freema/drobek-modules+@freema/drobek-sdk(imported as@drobek/modules/@drobek/sdkthrough npm aliases) βdocs/MODULES.mdβ Writing a module.
Self-host quickstart
<!-- quickstart:start -->What you need:
-
a server with a public IPv4 (and/or IPv6), linux/amd64 (there is no ARM image in v1), ports 80 and 443 reachable from the internet;
-
a domain for the dashboard and a domain for the apps. Create these DNS records before step 3 (Let's Encrypt checks them):
| Record | Points at | Example | | --- | --- | --- | |
A(and/orAAAA) for the dashboard host | the server |drobek.example.com| | wildcardA/AAAA*.<APPS_DOMAIN>| the server |*.apps.example.net|A separate registrable domain for the apps (
example.netnext toexample.com) is the safer choice;apps.<your dashboard domain>works too. No DNS at all (a test box)? UseDOMAIN=localhostin step 3 β Caddy's local CA (tls internal), reachable only from the machine itself. -
an SMTP account (host, port, user, password, a sender address) or a Resend API key β sign-in codes go out by e-mail.
Every command runs as root (or prefix sudo).
1. Docker, git and go-task
curl -fsSL https://get.docker.com | sh
apt-get install -y git openssl
snap install task --classic
docker compose version # β Docker Compose version v2.x (or newer)
task --version # β Task version: v3.x
2. The drobek files (the compose file, the scripts, the env template β the image itself comes from GHCR)
git clone https://github.com/freema/drobek /opt/drobek
cd /opt/drobek
git checkout "$(git tag -l 'v*' --sort=-v:refname | head -n 1)" # the newest release (skip before the first one)
3. Configuration β generates every secret, writes .env.production
(mode 600), renders deployments/Caddyfile with the image's own generator
(no Node on the host):
DOMAIN=drobek.example.com APPS_DOMAIN=apps.example.net \
TLS_ACME_EMAIL=you@example.com SUPERADMIN_EMAIL=you@example.com \
SMTP_HOST=smtp.example.com SMTP_PORT=587 SMTP_USER=no-reply@example.com \
EMAIL_FROM=no-reply@example.com \
task selfhost:init
Expected output (abridged):
β created .env.production from .env.production.example (mode 600)
β generated POSTGRES_PASSWORD
β generated DROBEK_MASTER_KEY
β generated TLS_ASK_TOKEN
β dashboard https://drobek.example.com Β· apps https://<slug>.apps.example.net
β TLS mode for the app hosts: on-demand
β rendered deployments/Caddyfile (on-demand)
β docker compose config: OK
Then put the SMTP password in (never on the command line):
nano .env.production # SMTP_PASS='β¦' (single quotes if it has $, # or spaces)
task selfhost:init never asks anything and never overwrites a secret; run it
again whenever you like (after changing TLS settings: then task tls:reload).
The TLS default for a real domain is on-demand (one Let's Encrypt
certificate per app host, gated by drobek); TLS_MODE=wildcard-file or
TLS_MODE=dns pick a wildcard certificate instead β see "TLS" in
docs/SELF-HOSTING.md.
4. Start
docker compose --env-file .env.production -f docker-compose.production.yaml up -d --wait
The first start pulls the images and drobek applies every database
migration. Expected: Container drobek-prod-postgres-1 Healthy, β¦-redis-1 Healthy, β¦-drobek-1 Healthy, β¦-caddy-1 Healthy.
curl -s https://drobek.example.com/healthz # β {"ok":true,"db":"up","redis":"up"}
curl -s https://drobek.example.com/api/version # β {"name":"drobek","sha":"<commit>","version":"vX.Y.Z","commitTime":"β¦","startedAt":"β¦","modules":[β¦]}
Tip: alias dc='docker compose --env-file .env.production -f docker-compose.production.yaml'
β the rest of this guide spells the command out.
5. Sign in β open https://drobek.example.com, enter your
SUPERADMIN_EMAIL, type the 6-digit code from the e-mail. You land on /me
with a personal workspace.
6. Connect an agent (Claude Code)
claude mcp add --transport http drobek https://drobek.example.com/mcp
Claude Code discovers drobek's OAuth server, opens the consent page in your
browser (read, write, publish) and gets a token bound to you. Without a
browser on the agent's machine, mint an API key on the server instead and
pass it as a header:
docker compose --env-file .env.production -f docker-compose.production.yaml exec drobek \
node node_modules/@drobek/oauth/di
Truncated for display β read the full file on GitHub.
Related Skills
Agent-Reach
98.8kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu β one CLI, zero API fees.
taste-skill
98.5kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
headroom
75.6kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
50.7kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit β see the Safety scan above for what the skill file itself contains.


