When you're experimenting on ideas, it's really nice when time to hello world is near zero. It's also nice when you aren't limited to a certain number of dbs or your projects get paused. This makes it so much more delightful to hack.
When you do want to get closer to the code, we think Instant provides a nicer abstraction for working with agents and getting deligthful experiences like a sync engine out of the box
You are right about the activation energy to throw up anything new really comes down to a hosted db that won't rot. My initial experience with supabase was incredible in that sense: any client-side framework I wanted, deployed statically while still integrating with full Postgres, for free!
Problem is supabase rots. And turning that project into anything meaningful is basically undoing everything you got for free up front.
My solution today is sqlite. I'm not diehard typescript so it turns out traditional backend apps like rails running sqlite on tiny/free hardwire is pretty nice.
That said, client-side runtime will always be alluring because it can be deployed statically. So you've got something there that I'll check out.
For toy apps and initial prototypes the problem is they aren't going to get used so the rot is that they will be in a good-enough state to come back to when you get the time. With supabase the drop-in auth completely broke at some point, probably just a deprecation I didn't keep up with.
The postgres instance spins down when you aren't using it, which is understandable and I will say it works, it's just Postgres and you get the database dump if you need to move or come back a year later.
The nuance here is that you get the raw connection string + the postgREST API which all makes sense but you're choosing full cloud/client mode which is completely different from if you just went with the raw connection string behind a server layer. I kinda had to work through all of that learning on my own. The full client mode trade-off is that you'll be doing everything with that pattern, handling migrations, security, auth, it's just kinda... it's a whole thing. The public postgREST and row level security is a different paradigm.
as a professional dev, I would have just chosen the raw connection string and managed the database from the server until I outgrew it and I'd have the dev workflow already, it's just a Postgres db. Or sqlite to start, same reasoning it's all the same dev workflow, the problem is the cloud-hosting transition, which is why fully-managed cloud db accessible from an edge/client runtime is so alluring, but you're trading two very different ergonomics.
Everything else is the same. Will let y'all be the judge which is better.
Both where made in one-shot with this prompt:
Create a habit tracking app where users can create habits, mark daily completions, and visualize streaks. Include features for setting habit frequency (daily/weekly), viewing completion calendars, and tracking overall progress percentages.
Agreed. It is curious how the agent got nudged to add auth in that one.
I did another ad-hoc but this time I added "Use guest auth" to the prompt. This way you don't need to enter an email. Full prompt below
Create a habit tracking app where users can create habits, mark daily completions, and visualize streaks. Include features for setting habit frequency (daily/weekly), viewing completion calendars, and tracking overall progress percentages. Use guest auth
You can use `db.subscribeQuery` on the server to react to react to changes. We plan to add webhooks soon to make this even easier. And yes eventually we'd love to support SDKs in other languages too!
You can certainly use Instant without AI! We indexed on making the API easy to understand so projects built with Instant are easy to maintain. We also invested in our AX experience since we saw more folks coming to us when trying to build apps with AI
We use LWW on the attribute level which greatly reduces conflicts. There are certainly cases where you'll need a different CRDT but this works great for a lot of use cases.
I'm confused by the messaging that instantdb has been open source... but we haven't been able to host it? What's the story here, and what's the change happening here?
From skimming the linked PR it looks like it's all been open source, but has been tightly coupled to their deployed instance. The PR appears to be decoupling things completely by making all hard coded values configurable.
Appreciate it! We thought it was a nice touch too and a fun way to highlight the power of Instant!
Realizing we didn’t highlight this as a use case — but you can use our ephemeral app feature (it’s free) to easily add your own interactive demos into essays!
When you do want to get closer to the code, we think Instant provides a nicer abstraction for working with agents and getting deligthful experiences like a sync engine out of the box