Postgres for people who read EXPLAIN.
Every project is a dedicated Supabase stack — Postgres 17, Auth, Storage, Realtime and Edge Functions — in Warsaw or Stockholm. supabase-js compatible, EU-hosted and roughly half the price.
- No credit card
- Free tier never pauses
- VAT invoices
20 s
to a running stack
8
services per project
PG 17
with pgvector and PostGIS
0
pausing on Free
EU
data residency, GDPR
WAW · STO
Warsaw and Stockholm
Migration
From Supabase in two lines.
The same PostgREST, GoTrue, Realtime and Storage APIs. Move your data with pg_dump, swap the URL and key — your queries, RLS policies and SDKs stay exactly as they were.
- supabase-js, Flutter, Swift, Kotlin, Python — unchanged
- SQL migrations and RLS policies 1:1
- A guide with ready-to-run pg_dump / pg_restore commands
pg_dump "$SUPABASE_DB_URL" -Fc -f app.dump
pg_restore -d "$HOSTBASE_DB_URL" --no-owner app.dumpPlatform
A complete backend.
A dedicated stack per project.
You never share Postgres with other customers. Every project gets its own database container with CPU and RAM limits, plus its own Supabase services.
Presence, broadcast and live database changes.
WebSockets for every project: cursors, chats, dashboards — table changes reach clients in milliseconds.
- olapresence{ status: 'online' }
- youINSERTmessages · id 9f2c…
- kubatyping{ room: 'general' }
- olacursor{ x: 412, y: 188 }
Deno on the server, deployed from the dashboard, API or MCP.
Semantic search in the same database.
- Return policy0.91
- Complaints & warranty0.84
- Return shipping0.79
Daily at 2:00 plus on demand. One-click restore.
Numbers that actually mean something.
TPS
180
transactions / s
cache hit
99.6%
blks_hit / read
connections
13 / 100
max_connections
Pooler, cache and search — one toggle away.
- PoolerPgBouncer:6543
- CacheValkey · Redis:6380
- SearchMeilisearchhttps
p50 / p95 for every service, logs and alerts.
* animations show sample data — the dashboard shows your project's live metrics.
Under the hood
The path of a request, no magic.
TLS terminates at the edge, routing goes by hostname and SNI, and every project runs on its own Docker network as a separate Supabase instance — in the EU.
01 · client
Your app
- supabase-js · Flutter · Swift
- psql · Prisma · Drizzle
- Claude / Cursor over MCP
02 · edge
TLS + name-based routing
<ref>.host.ulewicz.space :443
db-<ref>… :5432 (SNI)
pooler :6543 · cache :6380
03 · dedicated project stack
p-<ref>API gateway → Supabase services
GoTrue
/auth/v1
PostgREST
/rest/v1
Realtime
/realtime/v1
Storage
/storage/v1
Edge Runtime
/functions/v1
pg-meta
panel · SQL
04 · data
Postgres 17
- own container and disk
- CPU / RAM limit per instance
- backup 02:00 · metrics 60 s
Developer experience
You write SQL. The rest comes free.
Your schema becomes REST and GraphQL, RLS guards access, Edge Functions handle the rest. Prefer raw Postgres? You get psql over TLS.
REST + GraphQL
from every table
Row Level Security
auth.uid() in policies
Edge Functions
Deno, secrets, versions
psql / pg_dump
TLS, SNI, pooler :6543
1import { createClient } from '@supabase/supabase-js'23const db = createClient(4 'https://k3x9qz7mwa2cvbnhrtly.host.ulewicz.space',5 process.env.HOSTBASE_ANON_KEY!6)78const { data: orders } = await db9 .from('orders')10 .select('id, total, customer:profiles(username)')11 .gte('total', 100)12 .order('created_at', { ascending: false })Panel
A studio that tells you what's going on.
p50/p95 reports, live logs, security advisors, query performance, backups and alerts with upgrade suggestions — before your users notice a problem.
shop-production
Active🇵🇱 Warsaw · Medium · Postgres 17Requests / min
2,874
p95 latency
43 ms
Database CPU
31%
Connections
18 / 100
API traffic by service
Live requests
- 200GET/rest/v1/orders?select=*12 ms
- 200POST/functions/v1/stripe-webhook48 ms
- 200GET/storage/v1/object/public/avatars/…9 ms
- 200POST/auth/v1/token?grant_type=password61 ms
- 204PATCH/rest/v1/orders?id=eq.:id15 ms
> Create a todos table with RLS and add 3 sample tasks.
⏺ hostbase.execute_sql({ ref: 'k3x9qz…', query: 'create table todos …' })
⎿ ✓ CREATE TABLE · ALTER TABLE · CREATE POLICY · INSERT 0 3
⏺ hostbase.deploy_edge_function({ name: 'todo-digest', code: … })
⎿ ✓ deployed v1 · https://k3x9qz….host.ulewicz.space/functions/v1/todo-digest
Done. The todos table has RLS (auth.uid() = user_id), and the todo-digest function sends a summary.
MCP · AI agents
Your database has an API for agents.
A built-in MCP server: Claude Code, Cursor and other assistants create projects, run SQL and deploy Edge Functions — with your token and your permissions.
Pricing
See how much you keep.
The same services at a lower price. Pick the number of projects and the instance size — compared against Supabase's public pricing. Prices in PLN, EUR shown as an estimate.
Plan
Projects
3
Instance per project
Indicative, net / month. Supabase: Pro plan 25 USD + compute per its public price list (with the 10 USD credit), at 4.00 PLN/USD. Excludes egress overages. Invoices are issued in PLN.
| HostBase | Supabase | |
|---|---|---|
| Data location | Warsaw (pl-waw-1) or Stockholm | AWS regions |
| Billing | PLN, EU VAT invoice | USD |
| Pro plan | 49 PLN (≈ €11) / mo | 25 USD / mo |
| Free projects | never paused | paused after 7 days |
| Pooler, cache, search | one-click add-ons | pooler; the rest separately |
| MCP server for AI agents | built in | yes |
FAQ
Questions engineers actually ask.
Is HostBase a fork of Supabase?
Can I use @supabase/supabase-js?
How do I migrate from Supabase?
pg_dump from Supabase, pg_restore into HostBase, then swap two environment variables. Step by step in the migration guide.What if my database grows?
postgres=> create database your_next_project;
Build in a weekend.
Scale without the stress.
A free project in about 20 seconds. No credit card, no pausing after a week.