frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
460•klaussilveira•6h ago•112 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
800•xnx•12h ago•484 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
154•isitcontent•7h ago•15 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
149•dmpetrov•7h ago•65 comments

How we made geo joins 400× faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
24•matheusalmeida•1d ago•0 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
48•quibono•4d ago•5 comments

A century of hair samples proves leaded gas ban worked

https://arstechnica.com/science/2026/02/a-century-of-hair-samples-proves-leaded-gas-ban-worked/
88•jnord•3d ago•10 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
259•vecti•9h ago•122 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
326•aktau•13h ago•157 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
199•eljojo•9h ago•128 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
322•ostacke•12h ago•85 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
405•todsacerdoti•14h ago•218 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
331•lstoll•13h ago•240 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
20•kmm•4d ago•1 comments

Show HN: R3forth, a ColorForth-inspired language with a tiny VM

https://github.com/phreda4/r3
51•phreda4•6h ago•8 comments

I spent 5 years in DevOps – Solutions engineering gave me what I was missing

https://infisical.com/blog/devops-to-solutions-engineering
113•vmatsiiako•11h ago•36 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
192•i5heu•9h ago•141 comments

Learning from context is harder than we thought

https://hy.tencent.com/research/100025?langVersion=en
150•limoce•3d ago•79 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
240•surprisetalk•3d ago•31 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
3•romes•4d ago•0 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
990•cdrnsf•16h ago•417 comments

Introducing the Developer Knowledge API and MCP Server

https://developers.googleblog.com/introducing-the-developer-knowledge-api-and-mcp-server/
23•gfortaine•4h ago•2 comments

Make Trust Irrelevant: A Gamer's Take on Agentic AI Safety

https://github.com/Deso-PK/make-trust-irrelevant
7•DesoPK•1h ago•4 comments

FORTH? Really!?

https://rescrv.net/w/2026/02/06/associative
45•rescrv•14h ago•17 comments

I'm going to cure my girlfriend's brain tumor

https://andrewjrod.substack.com/p/im-going-to-cure-my-girlfriends-brain
61•ray__•3h ago•18 comments

Evaluating and mitigating the growing risk of LLM-discovered 0-days

https://red.anthropic.com/2026/zero-days/
36•lebovic•1d ago•11 comments

Show HN: Smooth CLI – Token-efficient browser for AI agents

https://docs.smooth.sh/cli/overview
78•antves•1d ago•57 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
5•gmays•2h ago•1 comments

Show HN: Slack CLI for Agents

https://github.com/stablyai/agent-slack
40•nwparker•1d ago•10 comments

The Oklahoma Architect Who Turned Kitsch into Art

https://www.bloomberg.com/news/features/2026-01-31/oklahoma-architect-bruce-goff-s-wild-home-desi...
21•MarlonPro•3d ago•4 comments
Open in hackernews

Lessons learned from building a sync-engine and reactivity system with SQLite

https://www.finkelstein.fr/sqlite-sync-engine-with-reactivity
193•engmarketer•5mo ago

Comments

gczh•5mo ago
very cool! have you tried Tanstack DB and ElectricSQL?

https://x.com/marcelohbairros/status/1956892684859158892

oDot•5mo ago
The whole line of Tanstack products is very well made yet poorly designed at the same time. I don't know if it's inherited from React by trying (and succeeding) to be a seamless React experience or if it's part of their own philosophy, but most of the tools make it very easy to mix state everywhere in your app which is just bad.

Really people should just move to Gleam and Lustre or Elm, even if it means I'll have much fewer clients paying good money to untangle state issues...

SkiFire13•5mo ago
Not sure about Tanstack DB, but from the second paragraph in the article:

> First Try: PGlite and Electric

robinfaraj•5mo ago
very cool stuff!
Jarwain•5mo ago
I love the timing of how, over the past week or so I've been digging into the ecosystem and options around this, and now here's another article!
judge123•5mo ago
It feels like everyone is solving the sync problem from a slightly different angle. Has anyone here used a few of these in production?
Void_•5mo ago
We use very similar solution in https://reflect.app

Using the wa-sqlite library, and our own Mobx-based model layer similar to what Linear does.

I gave a short talk about it a few months ago https://www.youtube.com/watch?v=b0GKWzeyZko

antoinefink•5mo ago
Thanks for sharing this talk. I didn’t know about MobX, but I did use your fork of wa-sqlite (https://github.com/team-reflect/wa-sqlite/) since I also needed the sqlite-vec extension :) By the way, Reflect is an awesome app; I'm actually a paid subscriber.
boris•5mo ago
> And because Electric syncs every change granularly, you are certain that the state of your local database is exactly the same as the server's.

I don't see how this certainty follows from "granularity" (whatever that means in this context). I believe to have such a certainty one would need the synchronization to happen within a single transaction that spans both client and server databases.

ethan_smith•5mo ago
Correct - granular syncing alone doesn't guarantee consistency; you'd need either a distributed transaction protocol or a conflict resolution strategy with eventual consistency semantics.
boris•5mo ago
I would say there is no certainty with eventual consistency, only hope.
st-keller•5mo ago
Ok is this about a reactive app with with a local database automatically synced to a remote db? All fully encrypted (at rest and in transit)? I thought this is what everyone does nowadays! We built an app like this in 2019 - yes - it was a bit of a challenge with the encryption but the „syncing data“-part is what every litte multiplayer-game has to deal with like forever now. Seems i‘m out of touch with the current state of affairs. Nice article though!
JSR_FDED•5mo ago
The value is in the author’s experience with other tools that caused problems as his database grew, and in learning from his reasoning about the appropriate solution for his particular problem.
yazaddaruvala•5mo ago
FWIW, I think you might be better off with immutable rows and lamport clocks.

Everything is a full new row because it is “a message” including read receipts. Some messages like read receipts just don’t render in the chat.

Edits can work the same way by rendering over a previous message, even though the local and remote DB have multiple rows for the original and edited messages.

baq•5mo ago
A month of development can easily save a day of research.

I was very surprised (or perhaps disappointed is a better word) when I didn’t see Lamport, paxos or raft mentioned at all. At least crdts made an appearance, although almost in the post scriptum.

mockingloris•5mo ago
Amazing write-up! I’m thrilled to see your exploration of a reactive SQLite sync engine; it resonates deeply with my own journey toward Local‑First, Offline‑Resilient tools aimed at relieving pressure, not just impressing. Keeping all user data local in SQLite while enabling seamless, encrypted syncing and reactivity. A nice segue in pragmatic autonomy.

It mirrors the moment I embraced tools like Obsidian; designing for real-world constraints; valuing simplicity, privacy, and functionality; especially in low‑connectivity environments.

PS: I was hooked on ...SQLite

Bravo!

mrkeen•5mo ago
> Selecting a sync engine is a lot about knowing the constraints of your application.

Not so sure about this. These seem more like fundamentals than sliding scales.

> How many people will concurrently edit the same resources?

More than 1.

> How write-heavy is it?

Write-heavy enough that you'll encounter an unexpected write between two reads.

> Can you expect unreliable connections or offline usage?

Yes.

CAP with Electron and SQLite is no different from CAP with Tauri and MySQL.

SchwKatze•5mo ago
Pretty cool! SQLite fits so well for local-first apps that feels like cheating.

Out of curiosity, apart from the lack of LISTEN support what more did you miss in SQLite itself and its ecosystem?

antoinefink•5mo ago
Thanks! In my case, the only thing "missing" was vector search but there's a great extension for that: https://github.com/asg017/sqlite-vec
surfingdino•5mo ago
Out of curiosity, would CouchDB not be a contender for this type of application?
henningpeters•5mo ago
Nice write-up! Would love to read more about practical experience on sync engines. I am also currently building one for a niche use case: a CRDT based smart home system w/o central component: syncing config and state across several embedded/MCU + mobile via CAN bus and BLE, no Internet. It features a simple ORM and persistence and for dev/debug it runs on macos/Linux. Written in C++ and Dart. Due to memory and other platform constraints I chose to build most of it from scratch. Thought about open sourcing or writing about it, but wondered whether anybody cares given the relative obscure tech stack.
theryangeary•5mo ago
I personally don't have use for the insight to this "obscure" tech stack but typically the more obscure the tech stack the more people can benefit from you sharing your perspective.

If someone shares their additional take on rewriting in rust (I say this with love as the type of person to do that) it doesn't add as much value because many of those experiences are shared regularly. If you share your unique tech stack, the people in the woodwork who might be struggling to do something along those lines but can't find the resources will benefit way more.

So you should!

Also can you elaborate on the CAN bus part of your smart home? Is your car wired into your home network?

aatd86•5mo ago
I must be a bit dense on this little Sunday morning but I don't quite get the problem solved.

Is it an issue with reactivity between browser tabs? Hence the use of the Broadcast Channel API?

The reactivity being implemented in svelte, what is different from any normal app? could have been react with mobx, zustand, recoil, etc but that's not too relevant. This is just how frontend frameworks are nowadays.

Especially since it is single-user (player? sic)?

Syncing between the backend server (remote state) and the local sqlite instance (local state) shouldn't really require much work? A simple websocket connection could do the trick to push from the remote server to the local device and then push the changes to sqlite again. But that's not too surprising to me.

I must not have understood something...

nikodotio•5mo ago
There’s a whole world of syncing databases when they’re offline and then reconnect. Local first. If your websocket connection is offline you have to store the incremental changes to your data and send them later on reconnect. This gets complex fast.

A lot of these tools (and what the author wrote) offer toolkits to do this well, not having to implement and track all these changes in state manually.

In this case the author is running SQLite in the browser, and that syncs to SQLite on the server.

aatd86•5mo ago
oh ok. What does it require? CRDTs?
nikodotio•5mo ago
Among other things, but even with a “latest change wins” method you still have to make sure all transactions arrive, data doesn’t stay out of synch forever, and other challenges.

ElectricSql, instantdb, rxdb, jazz.tools, are some of the things I’ve been looking into to make these tasks easier.

gdorsi•5mo ago
Nice article!

An interesting tool that matches the requirements mentioned in the article is Evolu[0]

It's a sync engine with e2e encryption based on SQLite.

The local-first landscape is quite wide now, and there is probably a solution ready for all kind of needs[1]

Building a sync engine can be a nice learning experience, but for production software it's better to pick something that has already faced and resolved all the weird edge cases you get when building a sync engine and persistent storage on the browser.

[0] https://www.evolu.dev/

[1] https://www.localfirst.fm/landscape

joker99•5mo ago
Oh wow, thanks for linking evolu! To bad it's typescript only... I'm looking for an e2ee sqlite sync for kotlin. Are you aware of any solutions?
gdorsi•5mo ago
Nope, none that I'm aware of
jdvh•5mo ago
We've spend the last couple of years building a local-first end-to-end encrypted multiplayer notes app (Thymer). We also explored running sqlite in the browser but ultimately concluded that we didn't really sqlite or a real database at all in the browser.

What does a document system need? A few simple indexes that track links and backlinks, mentions, and hashtags. You’re broadcasting change notifications anyway (for reactive DOM updates), so updating the indexes for those manually isn’t much extra work. You apply updates eagerly and then notify other users so they can apply the same updates, with some rules to guarantee that all users end up with the same state regardless of the order in which they receive the updates. But a relational database doesn’t help with any of this. Document systems tend to be versioned, so every user action turns into another entry in a transaction log. Even queries like “last Monday’s version of my document” don’t map naturally to SQL. You can query for transactions in a given time period, but unless you have snapshots, you’re still forced to re-apply transactions all the way from t=0 if you want to re-create the document state at a given date.

samwillis•5mo ago
This is a really great write up!

I work at Electric and started the PGlite and now Tanstack DB projects. The issues mentioned with PGlite are one of the major motivating factors behind Tanstack DB. We are taking those learnings and building, what we believe, is the missing client side datastore that is "sync native" and completely backend agnostic. Also being JS, rather than WASM, solves many of the slower than ideal query semantics, and has enabled us to build an incremental query engine for it.

It's also important to note that Electric doesn't require PGlite on the client, far from it - it's essentially a "protocol first" sync engine, you can use it to write into and maintain any client side store.

This solution by the OP, diffing based of modified data is ideal for a huge number of apps, and something that we intend to built into Tanstack DB so you can easily sync with no additional infrastructure.

SQLite (or PGlite) in the browser is awesome, and has the advantage over Tanstack DB at the moment of having persistence (it's on our roadmap), but they are also somewhat chunky downloads. For many local-first apps that's not a problem though.

evelant•5mo ago
I built my own offline capable, multiplayer capable sync engine with pglite and electric https://github.com/evelant/synchrotron

It is opinionated and not for every use case, also very experimental, but you might find some of the ideas interesting.

samwillis•5mo ago
Oh cool! I'll absolutely take a look.
evelant•5mo ago
I'd love to hear what you think of the idea. I really like what electric is building. I'm actually hacking on getting pglite to run on react-native right now =)
samwillis•5mo ago
Do drop into the discord and let me know who you are there. Would love to hear your take on react-native support.
gioelecantoni•5mo ago
Great write-up! You should check out SQLite-Sync (https://github.com/sqliteai/sqlite-sync) - it might be exactly what you're looking for. There's also a WASM build (https://www.npmjs.com/package/@sqliteai/sqlite-sync-wasm)
dumah•5mo ago
performance degradation observed using the first approach at high concurrency recently discussed here: https://news.ycombinator.com/item?id=44490510
jacinabox•5mo ago
Do you cache data on the client and write buffer it on the way back to the server? I made a key value store as a hobby project, that also kind of streamed the data and it was convenient to do that .
ochiba•5mo ago
This is great to see and I like the simplicity of the approach. You can also look at PowerSync (which I work on). It's in a similar space as ElectricSQL. It syncs to SQLite on the client-side and provides built-in reactivity. On the web, it uses wa-sqlite with either OPFS or IndexedDB. It also takes care of things like multi-tab on web, and queueing and uploading client-side mutations to the backend.