\

Instant 1.0, a backend for AI-coded apps

151 points - yesterday at 6:30 PM

Source
  • storus

    yesterday at 11:43 PM

    An honest question - why would we need any frameworks at all for vibe coded apps? I can just tell the coding agent to use pure HTML5/Vanilla JS/CSS on the frontend and pure whatever on the backend and it would do it. No need for hundreds/thousands dependencies. For deployment I can ask the coding agent to do the same.

      • debazel

        today at 6:50 AM

        My experience with actually trying this is that current LLMs benefit greatly from having a framework to build on.

        More code in the context window doesn't just increase the cost, it also degrades the overall performance of the LLM. It will start making more mistakes, cause more bugs, add more unnecessary abstractions, and write less efficient code overall.

        You'll end up having to spend a significant amount of time guiding the AI to write a good framework to build on top of, and at that point you would have been better off picking an existing framework that was included in the training set.

        Maybe future LLMs will do better here, but I wouldn't recommend doing this for anything larger than a landing page with current models.

        • fny

          today at 7:07 AM

          Why not code in assembly?

          I kid but any reason you can think of applies to app development too.

          1. Good abstractions decrease verbosity and improve comprehension

          2. Raw HTML/CSS/JS are out of distribution just like assembly (no one builds apps like this)

          3. Humans need to understand and audit it

          4. You'll waste time and tokens reinventing wheels

          This inuitively makes sense. LLMs mimic human behavior and thought, so for all the reasons you'd get lost in a pile of web spaghetti or x86, so would an LLM.

        • stopachka

          yesterday at 11:48 PM

          A few reasons:

          1. Unlimited projects: when you spin up traditional backends, you usually use VMs. It's expensive to start many of them. With Instant, you create unlimited projects

          2. User experience: traditional CRUD apps work, but they don't feel delightful. I you want to support features like multiplayer, offline mode, or optimistic updates, you'll have to write a lot more custom infra. Instant gives you these out of the box, and the agents find it easier to write than CRUD code

          3. Richer features: sometimes you'll want to add more than just a backend. For example, maybe you want to store files, or share cursors, or stream tokens across machines. These often need more bespoke systems (S3, Redis, etc). Instant already comes with these out of the box, and the agents know how to use them.

          There are a few demo sections in the post that show this off. For example, you can click button and you'll get a backend, without needing to sign up. And in about 25 lines of code, you'll make a real-time todo app.

            • boxedemp

              today at 1:33 AM

              >multiplayer

              How does it compare to photon networking? I've been using photon and webrtc mostly. I haven't had any issues, but I'm always interested in finding better solutions!

                • stopachka

                  today at 3:01 AM

                  Photon looks interesting! I am not too familiar with it, but from what I understand Photon and WebRTC are for communicating messages between clients. Those messages can be very fast, because they aren't blocked by writes to disk. Instant has two similar services, Presence & Streams. The primary sync engine is more for storing relational data.

          • calvinmorrison

            today at 1:23 AM

            same reasons human do. context and abstraction.

              • storus

                today at 2:42 AM

                I can get rid of irrelevant abstraction bloat that way and make code perfectly tailored for what is needed. This was traditionally expensive which led to abstraction being packaged in frameworks.

            • IncreasePosts

              today at 1:25 AM

              You don't necessarily, but each token costs money for the AI to spit out. And probably more money when that output is used as input later. Delegating to a library makes sense financially.

                • storus

                  today at 2:43 AM

                  With local inference on pretty decent local models we have nowadays (Qwen-3.5 and better) it's not much of a concern anymore.

                    • Bishonen88

                      today at 7:12 AM

                      what percentage of people is using local models for anything serious? I reckon single digits if even that. And for a corporate work environment, probably close to 0.

              • stepan_l

                today at 7:04 AM

                [dead]

            • dalmo3

              today at 1:28 AM

              Congrats on the launch!

              InstantDB is a joy to work with. Granted, I've only ever built small toy projects with it, but it's my go-to. Just so much simpler than anything else I've tried in this space.

              The core product is so good that the AI emphasis feels weird. Hopefully that's just marketing and not a pivot. Unfortunate if that's what it takes to get funding these days.

                • nezaj

                  today at 1:36 AM

                  Thank you!

                  We last updated our website when open sourced back in August 2024 https://news.ycombinator.com/item?id=41322281

                  Back then most folks weren't building full-on apps with AI yet.

                  Since then we've seen a large number of people find us through content on creating apps with AI. We felt our previous messaging didn't speak to that and we thought it was time for a refresh.

                  We also invested a lot to make the agent experience with Instant a delight!

                  • stopachka

                    today at 1:34 AM

                    Thank you for the kind words.

                    > AI emphasis

                    It's not quite marketing or a pivot. We've just noticed that most of our users are coding with AI, and really optimized for that too.

                • asdev

                  yesterday at 10:31 PM

                  I wonder if people really need this. How many people are really building multiplayer apps like Figma, Linear etc? I'm guessing 99% are CRUD and I doubt that will change. Even if so, would you want to vendor lock into some proprietary technology rather than build with tried and tested open source components?

                    • stopachka

                      yesterday at 10:49 PM

                      > really building multiplayer apps like Figma, Linear

                      I think there's two surprises about this:

                      1. If it was easier to make apps multiplayer, I bet more apps would be. For example, I don't see why Linear has to be multiplayer, but other CRUD apps don't.

                      2. When the abstraction is right, building apps with sync engines is easier than building traditional CRUD apps. The Linear team mentioned this themselves here: https://x.com/artman/status/1558081796914483201

                      • nezaj

                        yesterday at 10:32 PM

                        For what it's worth, Instant is 100% open source!

                        https://github.com/instantdb/instant

                        • risyachka

                          yesterday at 10:53 PM

                          Yeah I kinda agree. Considering llms write most of the code today, the need for fancy tech is lower than ever. A good old crud app looks like a perfect fit for ai - its simple, repetitive and ai is great at sql. Go binary for backend and react for frontend - covers 99.9% use cases with basically zero resource usage. 5 usd node will handle 100k mau without breaking a sweat.

                            • stopachka

                              yesterday at 11:08 PM

                              > 5 usd node will handle 100k mau without breaking a sweat.

                              One problem you may encounter with the 5 usd node: how do you handle multiple projects? You could put them all in one VM, but that set up can get esoteric, and as you look for more isolation, the processes won't fit on such a small machine.

                              With Instant, you can make unlimited projects. Your app also gets a sync engine, which is both good for your users, and at least in our experiments, the AIs prefer building with it.

                              And if you ever want to get off Instant, the whole system is open source.

                              I still resonate with a good Hetzner box though, and it can make sense to self-host or to use more tried-and-true tech.

                              For what it's worth, with Instant you would get a lot more support for easy projects. At least in our benchmarks, AI

                      • nharada

                        yesterday at 10:36 PM

                        This is super cool and exactly what I've been looking for for personal projects I think. I wanna try it out, but the "agent" part could be more seamless. How does my coding agent know how to work this thing?

                        I'd suggest including a skill for this, or if there's already one linking to it on the blog!

                          • stopachka

                            yesterday at 11:00 PM

                            Good idea! I went ahead and updated the essay:

                            https://github.com/instantdb/instant/pull/2530

                            It should be live in a few minutes.

                            • nezaj

                              yesterday at 10:42 PM

                              We do have a skill!

                              npx skills add instantdb/skills

                              Would recommend doing `bunx/pnpx/npx create-instant-app` to scaffold a project too!

                                • LoganDark

                                  yesterday at 10:52 PM

                                  Can I view the source code of this skill / install it manually? I am incredibly not a fan of automated installers for this type of stuff.

                        • mentalgear

                          today at 8:39 AM

                          No e2e encryption and no p2p is a deal breaker for me.

                          • tarcon

                            today at 7:46 AM

                            Do we really have no way to build this in a single programming language and base database?

                            IndexDB, Postgres, Javascript, Typescript, Clojure. Not bad, but not much more attractive than the usual technology zoo any startup seems to end up with.

                            • satvikpendem

                              today at 7:25 AM

                              Conflict resolution for real time simultaneous updates, how do you resolve them? I use a CRDT for solving precisely this problem but seems like most multiplayer database services don't actually handle this correctly, using last write wins instead.

                              • mohsen1

                                today at 7:28 AM

                                Congratulations on this launch. Stepan and his cofounder have been working on this for years and great to see it being launched finally. I should be building something fun with this.

                                Sending you guys lots of love and best of luck!

                                • seyz

                                  today at 7:12 AM

                                  Nice launch! It reminds me a lot RootCX (https://github.com/RootCX/RootCX)

                                  • ghm2199

                                    yesterday at 11:06 PM

                                    One thing I have always wanted to do is cancel an AI Agent executing remotely that I kicked off as it streamed its part by part response(part could words, list of urls or whatever you want the FE to display). A good example is web-researcher agent that searches and fetches web pages remotely and sends it back to the local sub-agent to summarize the results. This is something claude-code in the terminal does not quite provide. In Instant would this be trivial to build?

                                    Here is how I built it in a WUI: I sent SSE events from Server -> Client streaming web-search progress, but then the client could update a `x` box on "parent" widget using the `id` from a SSE event using a simple REST call. The `id` could belong to parent web-search or to certain URLs which are being fetched. And then whatever is yielding your SSE lines would check the db would cancel the send(assuming it had not sent all the words already).

                                      • stopachka

                                        yesterday at 11:13 PM

                                        If I understood you correctly:

                                        You kick off an agent. It reports work back to the user. The user can click cancel, and the agent gets terminated.

                                        You are right, this kind of UX comes very naturally with Instant. If an agent writes data to Instant, it will show up right away to the user. If the user clicks an `X` button, it will propagate to the agent.

                                        The basic sync engine would handle a lot of the complexity here. If the data streaming gets more complicated, you may want to use Instant streams. For example, if you want to convey updates character by character, you can use Instant streams as an included service, which does this extremely efficiently.

                                        More about the sync engine: https://www.instantdb.com/product/sync More about streams: https://www.instantdb.com/docs/streams

                                    • ghm2199

                                      yesterday at 10:33 PM

                                      For people like me — who are kind of familiar with how react/jetpack compose/flutter like frameworks work — I recall using react-widget/composables which seamlessly update when these register to receive updates to the underlying datamodel. The persistence boundary in these apps was the app/device where it was running. The datamodel was local. You still had to worry about making the data updates to servers and back to get to other devices/apps.

                                      Instant crosses that persistence boundary, your app can propagate updates to any one who has subscribed to the abstract datastore — which is on a server somewhere, so you the engineer don't have to write that code. Right?

                                      But how is this different/better than things like, i wanna say, vercel/nextjs or the like that host similar infra?

                                        • stopachka

                                          yesterday at 10:45 PM

                                          I would say NextJS focuses a lot more on server-rendering. If you use the app router, the default path is to render as much as you can on the server.

                                          This can work great, but you lose some benefits: your pages won't work offline, they won't be real-time, and if you make changes, you'll have to wait for the server to acknowledge them.

                                          Instant pushes handles more of the work on the frontend. You make queries directly in your frontend, and Instant handles all the offline caching, the real-time, and the optimistic updates.

                                          You can have the best of both worlds though. We have an experimental SSR package, which to our knowledge is the first to combine _both_ SSR and real-time. The way it works:

                                          1. Next SSRs the page

                                          2. But when it loads, Instant picks it up and makes every query reactive.

                                          More details here: https://www.instantdb.com/docs/next-ssr

                                      • kenrick95

                                        today at 3:17 AM

                                        Congrats on the 1.0 milestone!

                                        I had a Show HN that built with Instant: https://news.ycombinator.com/item?id=44247029 The common request from that thread was to add guest auth, and few months later Instant had it baked in, so it was really easy to add that feature. Great dev experience :)

                                          • stopachka

                                            today at 5:21 AM

                                            Brightened reading this, and the whole team was rooting you on for your Show HN!

                                        • jamest

                                          yesterday at 10:28 PM

                                          They actually deliver on the promise of "relational queries && real-time," which is no small feat.

                                          Though, their console feels like it didn't get the love that the rest of the infra / website did.

                                          Congrats on the 1.0 launch! I'm excited to keep building with Instant.

                                            • stopachka

                                              yesterday at 10:41 PM

                                              Thank you! We spent a lot of time with the demos on the home page, the essays page, and upgrading the docs.

                                              We're going to redesign the dashboard in the next few weeks.

                                              One interesting observation from our users: though they use the dashboard less in some ways (the AI agents spin up apps and make schema changes for them), we found people use them _more_ in other ways. Instant comes with an Explorer component, which lets you query your data. We found users want to engage with that a lot more.

                                          • chrysoprace

                                            yesterday at 10:21 PM

                                            Is InstantDB no longer about local-first or is the AI angle just a marketing thing?

                                              • nezaj

                                                yesterday at 10:48 PM

                                                We built Instant to optimize for two things:

                                                We wanted to make a tool that (a) would make it easy to build delightful apps, and that (b) builders would find easy to use.

                                                This got us into making things that touch both local-first and AI.

                                                On the local-first side, we took on problems like offline-mode, real-time, and optimisitc updates.

                                                On the AI side, we built a multi-tenant abstraction, so you can spin up as many apps as you like, and focused on great DX/AX so agents found Instant easy to use too.

                                                  • today at 3:00 AM

                                                • dghlsakjg

                                                  yesterday at 10:25 PM

                                                  This looks like a blog post highlighting that this can be used for vibecoded apps, not necessarily a pivot on the product.

                                              • owenthejumper

                                                today at 12:53 AM

                                                This is basically a fancy Pocketbase / Supabase?

                                                  • stopachka

                                                    today at 1:28 AM

                                                    > Supabase

                                                    We are similar to supabase in the sense that we support a relational database. We're different in that with us, you get real-time queries, offline mode, and optimistic updates out of the box.

                                                    > Pocketbase

                                                    I am not too familiar with Pocketbase.

                                                    • nezaj

                                                      today at 1:30 AM

                                                      We think this is an evolution :)

                                                      Stopa also gave an answer here! https://news.ycombinator.com/item?id=47711866

                                                  • 2001zhaozhao

                                                    today at 7:40 AM

                                                    Wow, the demo-in-a-blogpost is really impressive.

                                                    • pugio

                                                      today at 12:19 AM

                                                      Thanks, this might be exactly what I'm looking for.

                                                      I see you have support for vanilla js and svelte, but it's unclear whether you can get all the same functionality if you don't use React. Is React the only first class citizen in this stack?

                                                        • stopachka

                                                          today at 12:29 AM

                                                          Thank you.

                                                          > Is React the only first class citizen in this stack?

                                                          Each system gets the same functionality. We centralize the critical logic for the client SDK in "@instantdb/core". React, Svelte, Tanstack, React Native et al are wrappers around that core library.

                                                          The one place where it's lacking a bit is the docs. We have specific docs for each library, but a lot of other examples assume React.

                                                          We are improving this as we speak. For now, the assumption on React is quite light in the docs, so it's relatively straightforward to figure out what needs to happen for the library of your choice.

                                                      • nl

                                                        today at 1:17 AM

                                                        What does "X Team Members per app" mean? Is this the number of users you can have registered or does "Team Member" have special meaning?

                                                          • nezaj

                                                            today at 1:26 AM

                                                            You can think of this as the number of devs. So if you're working on an app as a team you all can use the dashboard and CLI tools to manage the app.

                                                            No limit on number of end users for what you build

                                                              • nl

                                                                today at 2:02 AM

                                                                Thanks, that's great. Congrats on the launch.

                                                        • d0100

                                                          today at 2:29 AM

                                                          Any example more complex in the backend?

                                                          Are we supposed to expose all entities and relationships and rely on row level security?

                                                            • stopachka

                                                              today at 3:05 AM

                                                              > Any example more complex in the backend?

                                                              The home page has some examples of complex startups that use Instant as their core infra:

                                                              https://www.instantdb.com/#:~:text=Startups%20love%20Instant

                                                              > Are we supposed to expose all entities and relationships and rely on row level security?

                                                              Yes. This may feel foreign, but we think it's one the best ways to do permissions. We were originally inspired by Facebook's EntPrivacy. When you have permissions at the object layer, you can be more confident that _any_ query you write would be allowed.

                                                          • jvalencia

                                                            yesterday at 11:39 PM

                                                            How does security and isolation work? If someone else's account is compromised, how do I know I won't be? If instant is compromised, how do I know I won't be?

                                                              • stopachka

                                                                yesterday at 11:44 PM

                                                                If someone else's account is compromised, you would not be, because apps are logically separated. There would be no way for the compromised or uncompromised account to ever see your data.

                                                                If Instant is compromised, then that's a lot more dangerous. We minimize this risk following security best practices: keeping data encrypted at rest, keeping secrets hashed at creation time, etc.

                                                                  • oofbey

                                                                    today at 3:12 AM

                                                                    Oh they’re logically separated. Thanks for explaining that. Now I’m certain nothing could possibly go wrong.

                                                                    /s

                                                                      • straygarr

                                                                        today at 10:04 AM

                                                                        "logically separated" as opposed to "physically separated" (pretty rare in the Cloud world)

                                                                        If you want more details, read their open source codebase or ask them specifically what documentation would boost your confidence, instead of leaving snarky comments.

                                                            • shay_ker

                                                              yesterday at 11:23 PM

                                                              with a huge multi-tenant database, how do you deal with noisy neighbors? indexes are surely necessary, which impose a non-trivial cost at scale.

                                                                • stopachka

                                                                  yesterday at 11:32 PM

                                                                  One data structure that helps a lot is the grouped queue.

                                                                  I cover it in the essay here:

                                                                  https://www.instantdb.com/essays/architecture#:~:text=is%20t...

                                                                  To summarize:

                                                                  In places where we process throughput, we generally stick a grouped queue and a threadpool that takes from it. The mechanics for this queue make it so that if there's one noisy neighbor, it can't hog all the threads.

                                                                  There's more too (runbooks, rate limiting systems, buffers, isolated instances), but I thought this particular data structure was really fun to share.

                                                              • ladon86

                                                                yesterday at 10:16 PM

                                                                Looks very nice! I'll give it a spin for prototypes.

                                                                Would love to check out /docs but it's currently a 404.

                                                                  • nezaj

                                                                    yesterday at 10:32 PM

                                                                    Docs should be working now! If anyone else has issues please let us know!

                                                                • jgeurts

                                                                  today at 1:20 AM

                                                                  Is there a way to pair this with an existing (Postgres) database?

                                                                    • nezaj

                                                                      today at 1:27 AM

                                                                      Not at the moment but something that we've started exploring!

                                                                      Our thinking was to first get the DX/AX + feature set solid with Instant and then let folks bring their own Postgres

                                                                  • aboodman

                                                                    today at 1:54 AM

                                                                    Congrats, Instant team. Genuinely happy for y'all.

                                                                      • nezaj

                                                                        today at 2:27 AM

                                                                        Thank you! Awesome work with Zero, been a fan of you since listening to your episode on the local first podcast!

                                                                    • zbiggistardust

                                                                      today at 12:51 AM

                                                                      What's the difference between Instant and Convex?

                                                                        • stopachka

                                                                          today at 12:57 AM

                                                                          I would say:

                                                                          We both offer a real-time queries out of the box. I am not 100% sure, I but think Convex also set up a multi-tenant database; so they can offer a good number of free projects well.

                                                                          The way I would differentiate Instant:

                                                                          With Convex you write your queries as Javascript functions. This means you have to do joins for example imperatively. With Instant, you can write queries declaratively.

                                                                          As of today Convex doesn't work offline, and you have to write optimistic updates manually. Instant can run offline and comes with optimistic updates out of the box.

                                                                          Both Convex and Instant support files out of the box. But with Instant you can write CASCADE delete rules, and you also get other services, like presence and streams.

                                                                            • taoh

                                                                              today at 1:09 AM

                                                                              Congratulations on your launch! 4 years of work is certainly remarkable perseverance.

                                                                              The sync engine feature looks very interesting to me. There have been quite a few products available on the market today, but none has achieved a dominant share yet. So if this is your main strength, I'd like to see more demos built local first.

                                                                              Curious if you considered shipping the engine itself as a standalone infra piece.

                                                                                • stopachka

                                                                                  today at 1:33 AM

                                                                                  Thank you.

                                                                                  > Curious if you considered shipping the engine itself as a standalone infra piece.

                                                                                  We are thinking about supporting something like "Bring Your Own Postgres", which would allow folks to opt into just the sync engine piece.

                                                                                  Right now we focused on the integrated system, because we really wanted to optimize for a delightful developer experience on greenfield projects.

                                                                          • yoavshai

                                                                            today at 1:27 AM

                                                                            For me (and please correct me if I'm wrong, Instant team) the largest difference and a major source of frustration in trying Instant is that you don't have a backend. You get a real-time database with RLS and a sync engine. You don't get to run business logic. You don't get to write queries by name and gain the ability to migrate the schema as long as the query shapes match.

                                                                              • stopachka

                                                                                today at 1:32 AM

                                                                                If by backend you mean functions, you are right, we don't support this just yet! We give you an Admin SDK, which you can run in frameworks like NextJS, or inside systems like CF workers. We are definitely thinking about bringing this as a first-class citizen.

                                                                            • satvikpendem

                                                                              today at 7:23 AM

                                                                              Convex is not relational

                                                                          • singpolyma3

                                                                            yesterday at 11:56 PM

                                                                            Seems like a supabase competitor?

                                                                              • stopachka

                                                                                yesterday at 11:58 PM

                                                                                That's a fair statement! I would say we are similar to supabase in that we offer a relational backend. We are different in two ways:

                                                                                1. Supabase runs on VMs, so only supports 2 free projects. We built the backend to be multi-tenant, so we can give you unlimited free projects.

                                                                                2. Supabase doesn't support offline mode or optimistic updates. Instant gives you a sync engine which does.

                                                                            • truetraveller

                                                                              today at 12:44 AM

                                                                              Moose here, congrats! This is the real "firebase alternative", not Supabase. Supabase is good, but it's just hosted Postgres + user login. People who are asking "why would I need this" don't get how difficult scalable data storage is with user permissions. Would absolutely recommend this if it's good. Been in this space for ~7 years, and made a high-perf realtime DB as well. Will contact you guys directly. Some concerns for everyone's benefit:

                                                                              1) Transparency on pricing: This builds confidence. Need to know exactly what I pay for additional egress/ops (read/write). "unlimited" is not sustainable for the provider (you). For example, Firestore has detailed pricing that makes scaling sustainable for them. see https://cloud.google.com/firestore/pricing.

                                                                              2) Transparency on limits: Req/s, max atrributes, max value length, etc. What about querying non-local non-indexed data (e.g. via server-side call), that's costly for you guys. So, what's the limit?

                                                                              3) Simpler code in the docs/examples overall. Currently, they're not bad, but not great. For example, change the "i" used everywhere to "inst" or "idb". Assume dev is a noob!

                                                                              4) Change simplify/terminology used. This is probably the most important, but hardest thing. Internally, keep the same triple structure. But dev just cares about tables/key/val. Or tables+rows. Namespaces/entities are confusing. Also, be consistent/clear. For example: "Namespaces are equivalent to "tables" in relational databases"..Perhaps you meant "namespaces are just a list of tables/entities"..slighly different, but far clearer I think? "Attributes are properties associated with namespaces"...I though attributes are associated with entities? Please keep in mind, I am completely new to InstantDB, so need to study the architecture more.

                                                                              5) Simplify docs BIG TIME. And add an API REFERENCE (super important). Right now, you have: Tutorials, Examples, Recipes, Docs, Essays. These are all essentially "docs".

                                                                              6) Simplify the "About" section. Should be 1/10th the size. Right now, it's like a fruit salad of docs, and re-iterating the features/benefits. Instead, put pics of both founders. Maybe investor list. Pics of your office?

                                                                                • nezaj

                                                                                  today at 2:47 AM

                                                                                  Thank you for the deep feedback Moose!

                                                                                  Agreed lots of opportunity for simplification. There’s so much context in this space.

                                                                                  When talking about why sync we mention optimistic updates, multiplayer, and offline mode. To motivate the complexity of sync we talk about websockets, optimistic queues, and IndexedDB. To explain how we work we talk about triples, datalog, and CTEs.

                                                                                  We try to give a clean interface so devs don’t need to worry about this complexity, but yea it’s been an ongoing iteration to make both easier and transparent to understand!

                                                                              • minantom

                                                                                yesterday at 10:48 PM

                                                                                how is this better than vercel?

                                                                              • rylan-talerico

                                                                                yesterday at 11:47 PM

                                                                                congrats!

                                                                                  • nezaj

                                                                                    today at 1:56 AM

                                                                                    Thank you!

                                                                                • marsven_422

                                                                                  today at 9:13 AM

                                                                                  [dead]

                                                                                  • sanghyunp

                                                                                    today at 12:21 AM

                                                                                    [dead]

                                                                                    • tayk47999

                                                                                      today at 12:28 AM

                                                                                      [dead]