Live data from Hacker News

Show HN: InstantDB – A Modern Firebase

github.com

11–20 of 308 posts

Re: Show HN: InstantDB – A Modern Firebase

#11
post #6

I've just used this to start a bouldering app, so far has been extremely simple, great work. I'm not sure about how things grow from here in terms of larger aggregates and more complex queries though so am slightly worried I'm painting myself into a corner. Do you have any guides or pointers here? Or key areas people shouldn't use your db?

I'm curious what a bouldering app is? As in climbing, like a route checklist type thing?

Re: Show HN: InstantDB – A Modern Firebase

#14
post #11
post #6

I've just used this to start a bouldering app, so far has been extremely simple, great work. I'm not sure about how things grow from here in terms of larger aggregates and more complex queries though so am slightly worried I'm painting myself into a corner. Do you have any guides or pointers here? Or key areas people shouldn't use your db?

I'm curious what a bouldering app is? As in climbing, like a route checklist type thing?

Yep. Which climbs have you attempted, at what grades.

My gym uses griptonite, but it's so slow I feel like it'd be quicker overall to create my own app for logging things. I decided to use instantdb as a backend database and it's working nicely so far.

Re: Show HN: InstantDB – A Modern Firebase

#16

> we tail postgres’ WAL to detect novelty and use last-write-win semantics to handle conflicts can you elaborate more on how you achieve this

We use the concept of 'topics'. A topic encodes: 'The part of the index a query cares about'.

For example, given a query like "fetch user where id = 1", there could be a topic like "users:id:1" [1]

When a WAL record comes in, we find queries by their topics, and invalidate them. This triggers a refresh.

This is inspired by Figma's LiveGraph [2], which in turn is inspired by Asana's Luna [3]. The essays cover the idea in more detail, but you can also start diving into the code, at invalidator.clj [4]

[1] This is an example. Inside Instant, we encode them as a 'datalog' pattern. Something like `[:ea "1" :users/id]` [2] https://blog.asana.com/2020/09/worldstore-distributed-cachin... [3] https://www.figma.com/blog/livegraph-real-time-data-fetching... [4] https://github.com/instantdb/instant/blob/main/server/src/in...

Re: Show HN: InstantDB – A Modern Firebase

#17
post #7

[Firebase founder] The thing I'm excited about w/Instant is the quad-fecta of offline + real-time + relational queries + open source. The amount of requests we had for relational queries was off-the-charts (and is a hard engineering problem), and, while the Firebase clients are OSS, I failed to open source a reference backend (a longer story). Good luck, Joe, Stopa and team!

Thank you James!

Re: Show HN: InstantDB – A Modern Firebase

#20

what would you say are pros/cons vs. supabase?

We provide support for optimistic updates and offline mode out of the box. Our idea is to give you the best of both worlds in terms of Firebase and Supabase. [1]

[1] https://www.instantdb.com/essays/next_firebase#the-missing-c...

Post reply on HN