The best Hacker News stories from All from the past day

Go back

Latest posts:

No "Hello", No "Quick Call", and No Meetings Without an Agenda

Euphemisms are best changed frequently (2016)

We don't know how bad most things are nor precisely how they're bad

How to build a 50k ton forging press

What is an SBAT and why does everyone suddenly care

What is an SBAT and why does everyone suddenly care

I'm tired of fixing customers' AI generated code

Show HN: InstantDB – A Modern Firebase

Hey there HN! We’re Joe and Stopa, and today we’re open sourcing InstantDB, a client-side database that makes it easy to build real-time and collaborative apps like Notion and Figma.<p>Building modern apps these days involves a lot of schleps. For a basic CRUD app you need to spin up servers, wire up endpoints, integrate auth, add permissions, and then marshal data from the backend to the frontend and back again. If you want to deliver a buttery smooth user experience, you’ll need to add optimistic updates and rollbacks. We do these steps over and over for every feature we build, which can make it difficult to build delightful software. Could it be better?<p>We were senior and staff engineers at Facebook and Airbnb and had been thinking about this problem for years. In 2021, Stopa wrote an essay talking about how these schleps are actually database problems in disguise [1]. In 2022, Stopa wrote another essay sketching out a solution with a Firebase-like database with support for relations [2]. In the last two years we got the backing of James Tamplin (CEO of Firebase), became a team of 5 engineers, pushed almost ~2k commits, and today became open source.<p>Making a chat app in Instant is as simple as<p><pre><code> function Chat() { // 1. Read const { isLoading, error, data } = useQuery({ messages: {}, }); // 2. Write const addMessage = (message) => { transact(tx.messages[id()].update(message)); } // 3. Render! return <UI data={data} onAdd={addMessage} /> } </code></pre> Instant gives you a database you can subscribe to directly in the browser. You write relational queries in the shape of the data you want and we handle all the data fetching, permission checking, and offline caching. When you write transactions, optimistic updates and rollbacks are handled for you as well.<p>Under the hood we save data to postgres as triples and wrote a datalog engine for fetching data [3]. We don’t expect you to write datalog queries so we wrote a graphql-like query language that doesn’t require any build step.<p>Taking inspiration from Asana’s WorldStore and Figma’s LiveGraph, we tail postgres’ WAL to detect novelty and use last-write-win semantics to handle conflicts [4][5]. We also handle websocket connections and persist data to IndexDB on web and AsyncStorage for React Native, giving you multiplayer and offline mode for free.<p>This is the kind of infrastructure Linear uses to power their sync and build better features faster [6]. Instant gives you this infrastructure so you can focus on what’s important: building a great UX for your users, and doing it quickly. We have auth, permissions, and a dashboard with a suite tools for you to explore and manage your data. We also support ephemeral capabilities like presence (e.g. sharing cursors) and broadcast (e.g. live reactions) [7][8].<p>We have a free hosted solution where we don’t pause projects, we don’t limit the number of active applications, and we have no restrictions for commercial use. We can do this because our architecture doesn’t require spinning up a separate servers for each app. When you’re ready to grow, we have paid plans that scale with you. And of course you can self host both the backend and the dashboard tools on your own.<p>Give us a spin today at <a href="https://instantdb.com/tutorial">https://instantdb.com/tutorial</a> and see our code at <a href="https://github.com/instantdb/instant">https://github.com/instantdb/instant</a><p>We love feedback :)<p>[1] <a href="https://www.instantdb.com/essays/db_browser">https://www.instantdb.com/essays/db_browser</a><p>[2] <a href="https://www.instantdb.com/essays/next_firebase">https://www.instantdb.com/essays/next_firebase</a><p>[3] <a href="https://www.instantdb.com/essays/datalogjs">https://www.instantdb.com/essays/datalogjs</a><p>[4] <a href="https://asana.com/inside-asana/worldstore-distributed-caching-reactivity-part-1" rel="nofollow">https://asana.com/inside-asana/worldstore-distributed-cachin...</a><p>[5] <a href="https://www.figma.com/blog/how-figmas-multiplayer-technology-works/#syncing-object-properties" rel="nofollow">https://www.figma.com/blog/how-figmas-multiplayer-technology...</a><p>[6] <a href="https://www.youtube.com/live/WxK11RsLqp4?t=2175s" rel="nofollow">https://www.youtube.com/live/WxK11RsLqp4?t=2175s</a><p>[7] <a href="https://www.joewords.com/posts/cursors" rel="nofollow">https://www.joewords.com/posts/cursors</a><p>[8] <a href="https://www.instantdb.com/examples?#5-reactions">https://www.instantdb.com/examples?#5-reactions</a>

Show HN: InstantDB – A Modern Firebase

Hey there HN! We’re Joe and Stopa, and today we’re open sourcing InstantDB, a client-side database that makes it easy to build real-time and collaborative apps like Notion and Figma.<p>Building modern apps these days involves a lot of schleps. For a basic CRUD app you need to spin up servers, wire up endpoints, integrate auth, add permissions, and then marshal data from the backend to the frontend and back again. If you want to deliver a buttery smooth user experience, you’ll need to add optimistic updates and rollbacks. We do these steps over and over for every feature we build, which can make it difficult to build delightful software. Could it be better?<p>We were senior and staff engineers at Facebook and Airbnb and had been thinking about this problem for years. In 2021, Stopa wrote an essay talking about how these schleps are actually database problems in disguise [1]. In 2022, Stopa wrote another essay sketching out a solution with a Firebase-like database with support for relations [2]. In the last two years we got the backing of James Tamplin (CEO of Firebase), became a team of 5 engineers, pushed almost ~2k commits, and today became open source.<p>Making a chat app in Instant is as simple as<p><pre><code> function Chat() { // 1. Read const { isLoading, error, data } = useQuery({ messages: {}, }); // 2. Write const addMessage = (message) => { transact(tx.messages[id()].update(message)); } // 3. Render! return <UI data={data} onAdd={addMessage} /> } </code></pre> Instant gives you a database you can subscribe to directly in the browser. You write relational queries in the shape of the data you want and we handle all the data fetching, permission checking, and offline caching. When you write transactions, optimistic updates and rollbacks are handled for you as well.<p>Under the hood we save data to postgres as triples and wrote a datalog engine for fetching data [3]. We don’t expect you to write datalog queries so we wrote a graphql-like query language that doesn’t require any build step.<p>Taking inspiration from Asana’s WorldStore and Figma’s LiveGraph, we tail postgres’ WAL to detect novelty and use last-write-win semantics to handle conflicts [4][5]. We also handle websocket connections and persist data to IndexDB on web and AsyncStorage for React Native, giving you multiplayer and offline mode for free.<p>This is the kind of infrastructure Linear uses to power their sync and build better features faster [6]. Instant gives you this infrastructure so you can focus on what’s important: building a great UX for your users, and doing it quickly. We have auth, permissions, and a dashboard with a suite tools for you to explore and manage your data. We also support ephemeral capabilities like presence (e.g. sharing cursors) and broadcast (e.g. live reactions) [7][8].<p>We have a free hosted solution where we don’t pause projects, we don’t limit the number of active applications, and we have no restrictions for commercial use. We can do this because our architecture doesn’t require spinning up a separate servers for each app. When you’re ready to grow, we have paid plans that scale with you. And of course you can self host both the backend and the dashboard tools on your own.<p>Give us a spin today at <a href="https://instantdb.com/tutorial">https://instantdb.com/tutorial</a> and see our code at <a href="https://github.com/instantdb/instant">https://github.com/instantdb/instant</a><p>We love feedback :)<p>[1] <a href="https://www.instantdb.com/essays/db_browser">https://www.instantdb.com/essays/db_browser</a><p>[2] <a href="https://www.instantdb.com/essays/next_firebase">https://www.instantdb.com/essays/next_firebase</a><p>[3] <a href="https://www.instantdb.com/essays/datalogjs">https://www.instantdb.com/essays/datalogjs</a><p>[4] <a href="https://asana.com/inside-asana/worldstore-distributed-caching-reactivity-part-1" rel="nofollow">https://asana.com/inside-asana/worldstore-distributed-cachin...</a><p>[5] <a href="https://www.figma.com/blog/how-figmas-multiplayer-technology-works/#syncing-object-properties" rel="nofollow">https://www.figma.com/blog/how-figmas-multiplayer-technology...</a><p>[6] <a href="https://www.youtube.com/live/WxK11RsLqp4?t=2175s" rel="nofollow">https://www.youtube.com/live/WxK11RsLqp4?t=2175s</a><p>[7] <a href="https://www.joewords.com/posts/cursors" rel="nofollow">https://www.joewords.com/posts/cursors</a><p>[8] <a href="https://www.instantdb.com/examples?#5-reactions">https://www.instantdb.com/examples?#5-reactions</a>

Linux desktop market share climbs to 4.45%

The semantic web is now widely adopted

US judge throws out FTC's ban on non-compete agreements

Calling All Hackers

Zen, a Arc-like open-source browser based on the Firefox engine

I've built my first successful side project, and I hate it

I've built my first successful side project, and I hate it

Sourcegraph went dark

Bug squash: An underrated interview question

Bug squash: An underrated interview question

Zed AI

< 1 2 3 ... 45 46 47 48 49 ... 713 714 715 >