Firenook, an open-source Firebase emulator replacement, claims 5.1 ms writes

Firenook is an open-source (Apache 2.0), independent replacement for the Firebase emulators, presented on firenook.dev. It reads an existing firebase.json, SDK setup and ports, so switching is mostly a command change: firenook emulators:start instead of firebase emulators:start. Developers keep firebase-tools for deploying. The page states that Firenook is not made by or affiliated with Google.

The headline claims are vendor benchmarks for version 0.2.x, run against the official emulator. Median write latency is 5.1 ms versus 208.2 ms, roughly 41 times lower. Peak memory is 2.11 GiB versus 22.57 GiB, roughly 11 times lower. Restarting with existing data (--keep-data) takes 0.59 s versus 30.8 s. CPU time over two hours is 616 s versus 1,586 s. The test used one production app with about 211,000 Firestore documents and 6.7 GB in Storage, on one server.

Eight services are emulated: Firestore, Authentication, Cloud Storage, Cloud Functions, Pub/Sub, Cloud Tasks, Eventarc and Extensions. Each uses the same ports as the official emulators. Firestore support covers native and web SDKs, realtime listeners, Security Rules, named databases, and the official import and export. Realtime Database, Hosting, App Hosting and Data Connect are not emulated; a firebase.json that configures them still starts, with a warning.

Other features: no Java is required, only Node 22, 24 or 26. Import and export use the official format, so a project can move back to the official emulator. emulators:exec runs a test command against the emulators and exits with that command's status code. A web console shows function calls, logs and other services. The firenook mcp command exposes 54 tools to coding agents for inspecting the running emulators.

Setup is npm install --save-dev firenook, then npx firenook init --adopt --dry-run to check the project, then npx firenook emulators:start. The page says 0.2.0 is the first public release and recommends committing the lockfile and upgrading deliberately.

Key facts

  • Firenook is an open-source (Apache 2.0) replacement for the Firebase emulators that reads the existing firebase.json and uses the same ports; it is not made by or affiliated with Google.
  • Vendor benchmarks (0.2.x) give a median write of 5.1 ms against 208.2 ms for the official emulator, and peak memory of 2.11 GiB against 22.57 GiB.
  • Restart with existing data takes 0.59 s against 30.8 s, and CPU time over two hours is 616 s against 1,586 s; the dataset was about 211,000 Firestore documents and 6.7 GB in Storage.
  • It emulates Firestore, Authentication, Cloud Storage, Cloud Functions, Pub/Sub, Cloud Tasks, Eventarc and Extensions, but not Realtime Database, Hosting, App Hosting or Data Connect.
  • firenook mcp exposes 54 tools to coding agents; 0.2.0 is described as the first public release.

Why it matters

The official Firebase emulators are the usual way to test against Firestore, Auth, Functions and related services locally. Firenook's pitch is that the same workflow can run with far lower latency and memory. On its own figures, peak memory drops from 22.57 GiB to 2.11 GiB and a restart with existing data from 30.8 s to 0.59 s, which would matter most on large datasets and in test loops that restart often. The page also positions the MCP command as a way for coding agents to inspect running emulators.

Who it affects

Teams that develop and test on Firebase and run the official emulators, especially those with large local datasets or slow, memory-hungry emulator runs. Developers who use coding agents may care about the 54-tool MCP interface. Projects that depend on Realtime Database, Hosting, App Hosting or Data Connect emulation are not covered by it.

How to use it

Install with npm install --save-dev firenook, check the project with npx firenook init --adopt --dry-run, then start with npx firenook emulators:start in place of firebase emulators:start. It reads the existing firebase.json, SDKs and ports, and firebase-tools stays in place for deploying. It needs Node 22, 24 or 26 and no Java. emulators:exec runs a test command and exits with its status code. The project is Apache 2.0 licensed. Because import and export use the official format, moving back to the official emulator is possible.

How solid is it

The performance numbers are the vendor's own, from one production app on one server, and no independent verification is given. The page does not say which version of Google's emulator was the baseline. The page names no authors, company or maintainers. The text reviewed was a summary of the page rather than a verbatim copy. The 40x and 10x figures in the Hacker News title are roundings of the absolute numbers (5.1 ms against 208.2 ms, 2.11 GiB against 22.57 GiB), not ratios the page states.

Risks and caveats

Version 0.2.0 is the first public release, and the page itself recommends committing the lockfile and upgrading deliberately. The project is independent and not affiliated with Google, so behaviour may differ from the official emulators in places the benchmark does not test. Four services are not emulated: Realtime Database, Hosting, App Hosting and Data Connect. A firebase.json that configures them still starts, but with a warning. Results on other datasets or hardware may differ from the single benchmark reported.