Deployment speed vs scaling limits in SQLite-first projects
Compare PocketBase, Supabase, and Appwrite based on deployment complexity and scaling capabilities. While a $4 Hetzner VPS can handle 10,000 real-time connections with PocketBase, Supabase offers superior horizontal scaling for write-heavy applications.
Minimalist binaries for rapid deployment
PocketBase ships as a single 20 MB binary. You download the file, run the command, and access the admin UI at localhost:8090. This setup works for MVPs and internal tools because it avoids the complexity of Docker or multi-container orchestration. However, the project maintainers suggest avoiding PocketBase for production-critical applications before it reaches version 1.0.0. You should expect to apply manual migrations when updates occur. You already know how simple a $4 VPS can be for a small app.
PocketBase provides authentication, file storage, and real-time subscriptions out of the box, including a built-in admin dashboard for managing collections and users. Developers add custom logic using Go or JavaScript hooks. This single-process architecture avoids the network latency between app and database because the binary contains the database, auth system, and file storage. You navigate to the admin URL in your browser to manage your data collections. PocketBase uses SQLite in WAL mode to provide fast reads. A $4 Hetzner CAX11 VPS handles 10,000+ persistent real-time connections.
Logic and permission models
PocketBase utilizes API rules consisting of short filter expressions. These rules live in the admin UI next to the schema. Supabase utilizes Row Level Security through SQL statements on each table. This method provides more power but requires SQL fluency to avoid exposing data. While a $4 VPS handles 10,000 concurrent WebSocket connections for read-heavy apps, the inherent single-writer limitation of SQLite means PocketBase cannot support write-heavy collaborative tools that require thousands of concurrent editors. PocketBase manages real-time via Server-Sent Events, while Supabase manages real-time through Postgres logical replication. Supabase provides 20+ OAuth providers and magic links, and PocketBase supports over 15 OAuth2 providers including Apple, Google, and GitHub.
Supabase offers Edge Functions via the Deno runtime, but these functions run close to users and incur round-trip latency for data-heavy tasks. PocketBase embeds a JavaScript VM to run hooks next to the data with zero extra latency. Appwrite provides a different model with multi-runtime support for Node, Python, and Dart. Appwrite targets mobile developers with a first-class Flutter SDK. Supabase maintains 99,000 GitHub stars, while Appwrite maintains 55,000 GitHub stars. PocketBase provides authentication, file storage, and real-time subscriptions through its built-in admin dashboard.
Scaling and cost structures
PocketBase requires only a single server for vertical scaling. A $4 Hetzner VPS handles 10,000+ persistent real-time connections. Supabase scales horizontally using read replicas and handles high concurrent write throughput via PostgreSQL. Appwrite hits a ceiling if a team needs to handle millions of concurrent writes because it lacks horizontal scaling for the app server.
| Feature | PocketBase | Supabase | Appwrite |
|---|---|---|---|
| Database | SQLite | PostgreSQL | MariaDB |
| Scaling | Vertical | Horizontal | No app scaling |
| Auth | Email, OAuth2 | Email, OAuth2, MFA | Email, OAuth2, MFA |
Supabase Pro plans start at $25 per organization, which includes $10 in compute credits, while Appwrite charges $25 per month per project. PocketBase costs only the price of your VPS. Supabase provides a free tier with 500 MB of database storage and 50,000 monthly active users. PocketBase’s lack of a managed tier means you pay only for your chosen VPS provider, but a $5 VPS can support medium-sized applications. Pick PocketBase to ship fast with zero complexity, pick Supabase for relational data and horizontal scaling, or pick Appwrite for mobile apps or document-style APIs. Will SQLite’s single-writer bottleneck eventually force every small team toward PostgreSQL?