mrkeyoor.com_
Sat 31 Oct 07:46 UTC
Dataevaluationupdated 26 Oct 2026

pocketbase review

PocketBase is an open source Go backend with embedded SQLite, realtime subscriptions, file and user management, an admin dashboard, and a REST-ish API. It can run as a standalone executable or become part of a custom Go application. Its appeal is a backend that fits on one server; its main constraints are vertical scaling, pre-v1.0 compatibility, and volunteer support.

+10stars / 7d
Verdict

PocketBase merits a trial when one-server operation and embedded SQLite fit the application, and the team can own backups, recovery, and upgrades. Our October 4, 2026 run at commit 5cec579 recorded a successful test-command exit, but the package summary does not establish an individual test count, and the build-labelled step includes a vet failure marker. It provides a limited repository-validation baseline, not proof of production readiness, Go 1.24 compatibility, or an installed working service. Avoid adopting it where guaranteed compatibility, multi-server scaling, or contractual support is essential.

We ran it

Lab card: what happened when we ran pocketbaseScreenshot of pocketbase (pocketbase.io)
Install✓ · 30s80 packages
Build✓ · 79s
Tests✓ · 244s68 passed · 0 failed of 68 (go test)
Repo829 files~188,877 lines of source · 13 MB · 1 CI workflows · tests dir

Answers from our run

Does pocketbase build from source?

Dependencies installed in 30 seconds (80 packages), and the build succeeded in 79 seconds. We cloned commit 5cec579 into a clean Debian container with 3 CPUs and no project-specific setup.

Do pocketbase's tests pass?

Yes. The project's own test command finished in 244 seconds and reported 68 passed, 0 failed (go test).

Who should not use pocketbase?

Systems that require PocketBase itself to scale across multiple servers: the FAQ describes vertical scaling only.

What are the alternatives to pocketbase?

Supabase, Appwrite. PocketBase merits a trial when one-server operation and embedded SQLite fit the application, and the team can own backups, recovery, and upgrades.

Setup3/5Under the visible rubric, documented standalone deployment and completed recorded steps support a trial. The October 4, 2026 run at 5cec579 includes a vet failure marker and no installed-binary or service check.
Docs4/5The supplied README, FAQ, and production guide give concrete extension, deployment, backup, and limitation guidance. The v0.41.0 guide is distinct from the measured v0.40.4-associated commit; instructions were not comprehensively executed.
Community3/5The FAQ documents public help channels, and issue 7504 contains a concrete maintainer response. Support remains voluntary; response times, adoption, and support reliability were not measured.
Maturity2/5The README explicitly withholds full backward compatibility before v1.0.0. Release v0.40.4 documents a migration fix, but the recorded run does not establish production reliability and includes unresolved vet output.

Discussed on

  1. hnPocketbase – open-source realtime back end in 1 file671 points
  2. hnPocketbase: Open-source back end in one file630 points
  3. hnShow HN: PocketBase – Open Source realtime backend in one file563 points
  4. hnPoor Man's Back End-as-a-Service (BaaS), Similar to Firebase/Supabase/Pocketbase205 points
  5. hnPocketbase lost its funding from FLOSS fund125 points

Who it’s for

Solo developers and small teams willing to operate a backend on one server.
Go developers who want custom application logic in a portable executable.
JavaScript or Dart developers who want official client SDKs.
Teams evaluating internal tools or small applications whose backup, recovery, and upgrade requirements fit this deployment model.

Who it’s NOT for

Systems that require PocketBase itself to scale across multiple servers: the FAQ describes vertical scaling only.
Teams that require an external database engine: the FAQ says PocketBase uses embedded SQLite and has no plans to support other databases.
Organizations that require guaranteed backward compatibility or contractual maintenance and support.
Teams that require a built-in environment-variable interface for every application setting. Issue 7504 remains open, although the maintainer explains that Go or JavaScript initialization code can already load environment variables.
Products whose adoption depends on confirmed built-in WebAuthn support. The supplied issue 6800 extract shows an open request in the backlog, rather than evidence of a shipped implementation.

Setup reality

In our recorded run on October 4, 2026, at commit 5cec579da984436a258602a46a96302fbd31f77c, the dependency/setup step exited successfully in 30 seconds. The record lists 80 dependencies; this does not establish that 80 packages or a PocketBase executable were installed. Its tail shows go: downloading go1.27.0 (linux/amd64). The golang:1.24-bookworm image label therefore does not demonstrate Go 1.24 compatibility. The README asks source builders for Go 1.27+.

The build-labelled step recorded exit 0 in 79 seconds, but its tail also contains a vet diagnostic and vet-exit:1. This is not a clean validation result or proof of a working installed binary. The test step recorded exit 0 in 244 seconds. Its parser summary reports 68 successful package results, zero failed package results, and 10 packages without test files. These are not 68 individual passing tests, and exhaustive unique coverage was not reconciled against complete logs.

The recorded sandbox had 3 CPUs and 8 GB of memory. The checkout contained 829 files, approximately 188,877 lines of source, and occupied 13 MB, with one detected CI workflow, a tests directory, and no detected Dockerfile or Compose file. No installed-binary check, running-service check, workload benchmark, or security audit is supplied.

For deployment, the documentation describes a prebuilt executable without external dependencies. Production still requires persistent application data, backups, mail configuration, and appropriate access and network settings. The supplied production guide is labelled v0.41.0; it is documentation context, not evidence that our v0.40.4-associated commit was deployed.

Is one server the right boundary?

PocketBase combines SQLite, user and file management, realtime subscriptions, an admin dashboard, and a REST-ish API in a backend that can run as one executable. That makes it worth evaluating when you want to operate a small backend without a separate database server.

The boundary matters as much as the packaging. The FAQ describes vertical scaling on a single server and says there are no plans to support databases other than SQLite. Choose it only if that architecture fits your application and recovery requirements. We did not measure application capacity or establish a maximum workload.

The README documents standalone use, JavaScript extensions through the included VM, and use as a Go library. Official client SDKs cover JavaScript and Dart. These are ways to build around PocketBase; they do not change its single-server scaling model.

What our recorded run establishes

Our stored run took place on October 4, 2026, at commit 5cec579da984436a258602a46a96302fbd31f77c, associated with release v0.40.4. No new execution was performed for this review.

Recorded step Observation Limit
Dependency/setup Exit 0 in 30 seconds; 80 dependencies recorded The tail shows a Go 1.27.0 toolchain download, not confirmation that a PocketBase executable was installed
Build-labelled step Exit 0 in 79 seconds The tail also reports a vet diagnostic and vet-exit:1; this was not clean validation
Tests Exit 0 in 244 seconds The parser reports package results, not individual test cases; complete-log reconciliation was not performed

The test parser recorded 68 successful package results, zero failed package results, and 10 packages without test files. The retained output includes package-level ok lines and [no test files] entries. Packages without test files are not failed tests. The summary does not establish exhaustive unique test coverage.

The build tail identifies a struct field with a JSON tag that is not exported in tools/router/unmarshal_request_data_test.go:454:3. Its vet-exit:1 marker needs investigation before calling validation clean. It does not, by itself, prove that PocketBase cannot build or run.

The sandbox configuration records 3 CPUs, 8 GB of memory, and the image golang:1.24-bookworm. The setup tail explicitly shows go: downloading go1.27.0 (linux/amd64). Follow the README's Go 1.27+ requirement; the base-image name is not evidence that the project works with Go 1.24.

The checkout measured 829 files, approximately 188,877 lines of source, and 13 MB. Detection found one CI workflow and a tests directory, with no Dockerfile or Compose file. These describe the checkout, not the size of a release executable or the completeness of its validation. No installed-binary check, service startup, HTTP request, concurrency test, production workload, or security audit is recorded.

Deployment still needs an operating plan

The supplied production guide, labelled v0.41.0, describes uploading the executable and running it without external dependencies. That documentation is separate from our measured v0.40.4-associated checkout.

Preserve pb_data on persistent storage. The guide says built-in backups are ZIP snapshots of that directory, including locally uploaded files but excluding files uploaded to S3 and local backup archives. If uploads use S3, the backup plan must cover those objects separately. The guide warns that backup work can slow queries and suggests considering another strategy for large data directories, giving 5 GB or more as an example rather than a hard limit.

The same guide recommends SMTP for reliable mail delivery, rate limiting, and restrictions on superuser IPs. Reverse-proxy deployments may need client-IP header configuration. Open-file limits may need adjustment for many concurrent realtime connections. These are documented operating considerations, not security findings from our run.

Compatibility and support affect the decision

The README warns that full backward compatibility is not guaranteed before v1.0.0. Pin a release, read its migration notes, and rehearse upgrades against a copy of application data before replacing the executable.

Release v0.40.4 documents a fix for a migration deadlock. That specific fix is useful release history; it does not establish that every migration path or workload is reliable. The FAQ describes PocketBase as a personal project developed entirely by volunteers, without promises of maintenance or support. Repository attention cannot substitute for those commitments.

Configuration also needs a precise reading. Issue 7504 requests an environment-variable interface for all settings, but the maintainer says environment variables can already be loaded as initial settings through Go or the JavaScript VM, including initialization on each application start. Teams requiring configuration through environment variables should assess that code-based route rather than assume the dashboard is the only option.

The supplied WebAuthn issue remains open and appears in the backlog. Comments mentioning external implementations do not establish built-in support. If passkeys are essential, confirm the implementation you intend to deploy before adopting PocketBase.

When to consider another platform

Supabase is relevant when PostgreSQL or hosted operation is a requirement. Its repository describes a Postgres platform with authentication, APIs, realtime subscriptions, functions, and storage, alongside hosted, self-hosted, and local development options. We did not compare its performance or operating cost with PocketBase.

Appwrite is relevant when you want functions, messaging, or frontend hosting alongside backend services. Its repository documents managed cloud and self-hosting; the self-hosted installation requires Docker. We did not run that installation or measure its deployment effort.

How to read the scores

These are editorial fit ratings, not benchmark results. The rubric is: 1 means the evidence shows a major obstacle; 2 means substantial constraints or unresolved validation; 3 means a documented option with material limits; 4 means strong documented support with bounded gaps; 5 requires comprehensive evidence for the intended use. Missing adoption or compatibility evidence does not earn a high score.

Setup receives 3/5 because standalone deployment is documented and the recorded steps completed, while binary operation was not checked and the vet marker remains unresolved. Documentation receives 4/5 for concrete deployment, backup, extension, and limitation guidance, with the current guide's version kept separate from the measured commit. Community receives 3/5 because public help and maintainer responses are documented, but support is voluntary and response reliability was not measured. Maturity receives 2/5 because compatibility is explicitly unguaranteed before v1.0.0 and the run does not validate production behavior.

Before committing, check the selected release's requirements, investigate the vet diagnostic, start the actual executable, and exercise your application's authentication, access rules, uploads, backup restoration, and upgrade path. Those checks remain work for the adopting team; this record does not show them completed.

Alternatives

ProjectWhat it isPick it when
Supabase gh↗A Postgres development platform with authentication, APIs, realtime subscriptions, functions, and file storage.Choose it when PostgreSQL or a hosted platform is a requirement. Its repository also documents self-hosting and local development; no comparative scaling result was measured here.
Appwrite gh↗A backend platform with authentication, databases, storage, functions, messaging, realtime features, and hosting.Choose it when functions, messaging, or frontend hosting belong in the same platform. Its repository offers managed cloud and self-hosting, with Docker required for the documented self-hosted installation.

Sources

  1. PocketBase README
  2. PocketBase repository
  3. PocketBase v0.40.4 release
  4. PocketBase production guide
  5. PocketBase FAQ
  6. WebAuthn feature request
  7. Environment configuration feature request

More data reviews

jq · pgx · HowToLiveLonger · ip2region · dbdelve · litestream · the whole board →