PocketBase single-binary deployments for teams moving from Firebase
PocketBase offers a 15MB single-binary alternative to Firebase and Supabase using SQLite. A $5 VPS can handle 10,000 concurrent WebSocket connections, providing predictable costs for teams seeking to manage their own data and infrastructure.
PocketBase is a single-binary wonder that consolidates a real-time database, authentication, and file storage into one 15MB file. This minimalism is the best choice for solo developers or small teams needing to ship an MVP quickly. Unlike Firebase, which uses a proprietary NoSQL database and charges users per operation, PocketBase uses SQLite and costs only what you pay for your VPS. While Supabase manages several containers for its services, PocketBase is a single process that handles the web server, the database, the auth system, and the admin UI all in one go. I recommend PocketBase for projects where you want to avoid heavy infrastructure and manage your own data. Appwrite is a more batteries-included alternative, but it requires a Docker Compose stack and more moving parts. However, SQLite’s single-writer model is a limit on concurrent write throughput for applications with thousands of concurrent editors. You already know that managing separate containers for auth and database creates unnecessary overhead.
Deployment and technical specifications
You can deploy PocketBase on a $4 monthly VPS or via managed platforms like Railway or Fly.io. The single binary allows you to start a server with a single command: ./pocketbase serve. For production, many users run the application as a Systemd service to ensure it restarts automatically. The application directory structure is pb_migrations, pb_hooks, and pb_data. To deploy on a Linux server, you upload the binary and these directories to your remote server using tools like rsync. Non-root users often need to use setcap to bind to privileged ports like 80 or 443. The setcap command is a standard way to allow the binary to bind to port 80. You can also create your first superuser explicitly via the superuser create command.
| Feature | PocketBase | Supabase | Firebase |
|---|---|---|---|
| Database | SQLite | PostgreSQL | NoSQL |
| Deployment | Single binary | Multi-container | Managed |
| Scaling | Vertical | Horizontal | Managed |
| License | MIT | Apache 2.0 | Proprietary |
If you use a reverse proxy like NGINX or Caddy, you must set up the "User IP proxy headers" so the application can extract the actual visitor IP. For those who use Docker, a minimal Dockerfile can pull the specific version and expose the necessary ports. Deployment on Fly.io involves modifying the fly.toml file to expose the correct container port. To back up your application, you manually copy or replace the pb_data directory. How will developers handle the migration of complex relational schemas from PostgreSQL to SQLite?
Moving from Firebase or Supabase
Teams leaving Firebase often seek predictable costs because Firebase billing scales with user activity. PocketBase billing stays flat based on your infrastructure choice. I find that a $5 VPS handles 10,000 concurrent WebSocket connections easily. PocketBase uses SSE for real-time subscriptions, which provides live updates to connected clients.
| User Scenario | PocketBase (VPS) | Supabase (Pro) | Firebase |
|---|---|---|---|
| 10,000 MAU | ~$5/month | $25/month | Usage-based |
| 100,000 MAU | ~$20/month | $25/month+ | Usage-based |
PocketBase provides a built-in Admin UI reachable at /_/ for managing collections and users. You can extend functionality through Go hooks or a JavaScript VM plugin. For security, version 0.38.0+ includes a superuser IPs whitelist to harden the application. You can also enable MFA and OTP for the superusers collection to add an extra layer of protection. To minimize the risk of API abuse, you can configure the built-in rate limiter from the Dashboard. If you use the default Unix sendmail for development, your emails might get marked as spam, so you should configure an external SMTP service in the Dashboard settings. You can view application logs by checking the std.log file in your directory. While the admin interface is easy to use, the lack of a managed service option from the official developers means you handle all security patches and OS updates yourself. PocketBase is an open-source tool that remains incredibly easy to use for scaling small to medium apps.