Show HN: Firenook – Firebase emulators in Rust: 40× faster writes, 10× less RAM

firenook.dev

167 points by sanjevirau 1 day ago

Hi HN, we have been developing with Firebase for a long time, and the only way Firebase developers can build apps without directly costing them is using the official Firebase Emulator Suite.

However, the issue with this suite is, it's dependent and running on Java with a old Console UI (not updated in years), that was not built to support tons and millions of data and has pretty bad developer experience. For a long time, we were hitting Out of Memory on even high specs laptop while developing and the worst part is while this happens all the persists data keep getting lost.

We were honestly frustrated with this, and thought what if we built the Firebase Emulator Suite the right way, as it always should have been.

Introducing Firenook, a faster drop-in replacement for Firebase Emulator Suite for Firebase developers. It's 40x faster writes and needs 10x less RAM to run it. We took the right approach of first building it Rust as a single engine, so that there will be no Java dependencies and built from scratch a new Console UI using modern web stacks.

The result is, now we were able to run 2 millions datas loaded to Firenook with only taking around 2GB ram compared to 22GB of the official suite. Things are way faster and rebuilt Console UI gives best developer experience from logging Firebase Functions, to editing Firestore documents in JSON and many more.

We developed this throughly for around 2 months now and ran this internally for a month before we decided it's time to release it to public so that other devs can make use of Firenook and also contribute it to make it better.

Firenook is still new and I'm sure it misses things. So please try it our on your project and let us if there are any issues.

Thank you.

jamest 17 hours ago

(Firebase founder) This is very cool! Great work!

  • sanjevirau 17 hours ago

    Thanks a lot James, couldn't be more happy that you're liking it :)

joshdavham 17 hours ago

Looks nice!

Somewhat off topic question though: if you guys are such skilled developers to be building something as involved as this, why not just use something other than Firebase? I used Firebase mainly as a crutch when I was first getting into web dev, but feel that I’ve sorta outgrown it. Do you feel Firebase still serves developers like you well or are you developing this moreso for people like my old self?

Again, nice work!

  • tmpz22 17 hours ago

    This post also begs the question:

    Why didnt you simply provision more powerful developer boxes to handle the needs of the Firebase emulator?

    If runtime performance is the moat then won’t Google simply improve on these regressions using their decades of cloud database expertise with projects like Google Spanner?

    —-

    These are hardball questions and I feel a bit bad asking them, but I believe asking hard questions is kinder than blind adulation and support.

    • sanjevirau 16 hours ago

      Hi there, don't feel bad asking these questions. In fact, i had this questions in mind too while this project was started.

      Firstly, we already running of powerful dev boxes but still hitting out of memory issues in the official local emulators. These stronger machines doesn't remove Java or replaces the old console UI or able to loads tons of data.

      Google should fix it and it's expected, but for some reason, they haven't really prioritized local tools for local devs. In other ways of saying, some one had to take this in hand and try it out, and well we did :)

    • nfw2 13 hours ago

      > then won't Google simply improve on these regressions using their decades of cloud database expertise

      The developer experience of trying to emualate firebase locally has always been horrible, going on fifteen years, so I would guess no, they won't because they don't care.

      • CharlieDigital 5 hours ago

        Would disagree here given that Firebase is the only one of the three owned platform toolkits (Azure, AWS, GCP) that has a really complete first party emulator suite.

        • nfw2 1 hour ago

          I would agree that Firebase is better now than most vendor-locked dbs which often don't have an emulator at all.

          But local developer experience is still not good compared to Postgres or Mongo.

          • CharlieDigital 55 minutes ago

            That feels like it's more a function of the lack of a query UI whereas Pg and Mongo have a lot of options.

            I used Firefoo for a while and Google should just buy that product and ship it with Firebase. Otherwise, I have no issues with local Firestore emulation; everything works as I expected it with a few edge cases.

  • sanjevirau 16 hours ago

    Thanks Josh! Of course I'm using many other services other than Firebase. But Firebase even on 2026, I feel it still does what is suppose to do well. It does have many gaps tho, but tons of small projects or for beginners where it's really easy to get started with Firebase.

    And surprisingly, there are still many large scale mobile app and webapps that's running on Firebase. For most of them, the local development without costing them, depends on this local emulators suite.

    Compare to the alternatives like Supabase, where the team are really focused on giving best dev exps, for some reason Firebase local development has been the same for a long time.

    I personally thought, giving that best dev exps locally for Firebase, could give devs a fresh of breath air for maintaining or developing new projects faster.

  • nfw2 13 hours ago

    Firestore's subcollection feature is pretty cool. As far as NoSQL dbs go, it's flexible query and indexing make it more suitable to app development than, say, DynamoDB.

    To me, the lack of good developer tooling has been what holds it back. Not having a maintained type-safe querying ORM/ODM library like eg. Prisma or Mongoose is a major flaw imo (not to mention missing out on the coolest firestorm)

  • CharlieDigital 5 hours ago

    Sharing my perspective as a big time user of Firebase:

    1. It is practically free for a lot of my projects. Yes, there are also other free platforms out there now, but because Firebase is largely an abstraction on GCP, I have more reach if I need to scale it or move it into a more capable backend that I have full control over (very natural progression from Firebase -> Cloud Run -> GKE Autopilot -> GKE). For a few use cases, I do pay (e.g. keep a warm Function for an auth flow).

    2. Firebase auth is still really, really good. It is super easy to get SSO working with Firebase auth. End of the day, it is largely (entirely?) just an abstraction on top of Google OAuth API, but it is by far the easiest and most foolproof of the solutions on Azure, AWS. And again, for most use cases, it is entirely free.

    3. A well-designed Firestore backend is for all intents and purposes free for side projects and can still scale without the need to overthink it. I have had a few projects that had big Reddit spikes and Firestore just swallows the volume like a champ (that would have swamped a small Pg instance). I have run several side projects, blogs, etc. for years purely on Firebase because Firestore's free tier is really, really generous and when you pass those limits, the pricing is still reasonable. Ridiculously generous.

    4. Firestore gives you real-time websockets with no additional infra needed and again, practically free for most side projects. Cloudflare now has PartyKit which fills the same niche, but Firestore's real-time subscriptions are nice because of how integrated they are into the backing store. Amplify's AppSync (when I used it last) was janky AF; did not like it at all and did not like the fake relational abstraction over DynamoDB (dangerous at scale). Azure SignalR, Web PubSub, and Fluid Relay are not free or they are not usable at the free tier beyond initial sandboxing.

    5. It is easy to operate. If you want to run directly on a hyperscaler cloud (AWS, Google, Azure), Firebase is the best tooling. Azure doesn't really have an equivalent. AWS killed off their Copilot CLI[0] which I felt like was approaching the utility of Firebase and not a fan of Amplify (which seems to have changed direction recently). I was a fanboy of CosmosDB, but Microsoft refused to ship a working ARM64 emulator version for YEARS[1] which made it unusable on Mac. I am comfortable operating at any layer of any of AWS, Azure, GCP, but most of the time I only want to when I need to. So Firebase lets me ship something fast, but drop down into the underlying cloud infra when I need to.

    6. Until recently, the other platforms did not have great options for emulation. I think AI has changed that and now we are seeing more proliferation of platform emulators. LocalStack, for example, had already locked some of their emulation behind paid licenses. Firebase emulators were pretty complete in terms of what was needed to build and ship an app end to end. The OAuth emulator is still really, really nice.

    [0] https://aws.github.io/copilot-cli/ : literally their best infrastructure tooling and they killed it....................

    [1] https://github.com/Azure/azure-cosmos-db-emulator-docker/iss...

silverlight 17 hours ago

This is really neat! I've been working on an open-source version of the Firebase Realtime Database as well that might be of interest[1]. Also written in Rust! Might be a good basis for building out the Realtime Database part of Firenook if you have any interest in supporting that as well.

[1] https://github.com/lark-sh/lark

  • sanjevirau 16 hours ago

    Thanks and Lark looks really good and interesting!! Will definitely look into it as I do have plans to integrate Realtime Database into Firenook too :)

corytheboyd 18 hours ago

Awesome, not surprised to hear that Google still neglects to improve this experience, but you called out exactly why:

> [...] the only way Firebase developers can build apps without directly costing them is using the official Firebase Emulator Suite

We had started on the management UI portion of this at my old job out of similar frustrations. Felt awful seeing what should be a small/medium sized development-only application spew forth Java flotsam.

  • sanjevirau 17 hours ago

    Thanks, please give Firenook console ui a try and let me know if there's any missing ui portion that could make dev exp better.

codazoda 4 hours ago

At first I thought this had something to do with books because "Amazon Fire" plus "B&N Nook" = "firenook".

anilgulecha 10 hours ago

Can this be hosted on a node and I get firebase of my own?

  • sanjevirau 3 hours ago

    Technically it's possible. But right now we are focused on getting the emulator right, so that once we do self-hosting, it would be really reliable and we can run production data securely.

shaolinspirit 6 hours ago

well, actually this inspired me to try firebase for my next app instead of supabase (sorry supa, you are awesome)

willdub 18 hours ago

this is awesome, great work. any plans to target replacing the cloud production services?

  • sanjevirau 17 hours ago

    Well, right now plans are there to make Firenook to run locally perfect first. I was thinking, once it's well stable, to make it self-hosted first before thinking of any cloud versions. But I'm curious to ask, may I ask which service you're going to use it for in cloud?

lenerdenator 4 hours ago

If you can get application integrations running on an emulator I would seriously consider switching my team over. I know that's technically outside of Firebase, but we use a Frankenstein's monster of GCP and Firebase for our services.