frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Offline-First Landscape – 2025

https://marcoapp.io/blog/offline-first-landscape
25•Onavo•2h ago

Comments

isaachinman•1h ago
Hah, funny to see this reposted – I'm the author.

We've had great success with Replicache+Orama since this was written. We're keen to give Zero a spin once it's a bit more stable.

Triplit has essentially folded as a "company" and become some sort of open-source initiative instead.

InstantDB has matured massively and is definitely worth a look for anyone starting a new project.

jitl•1h ago
But, does Replicache work for your native targets? Or you are okay with a different data layer for native (sqlite) vs web (boutique data model on top of IndexedDB). At the start of the article it sounds like the goal is to use the same abstraction across web and mobile native and solutions that bifurcate implementation are unacceptable, but then we end up preferring a solution that's different between web target and native targets.

Zero (and I believe Replicache as well) layer their own SQL-like semantics on top of an arbitrary KV store, much like the layering of SQLite-over-IndexedDB discussed; like SQLite-over-IndexedDB, I believe they are storing binary byte pages in the underlying KV store and each page contains data for one-or-more Replicache/Zero records. The big difference between SQLite-over-IndexedDB and Zero-over-IndexedDB is that Zero is written with sympathy to IndexedDB's performance characteristics, whereas SQLite is written with sympathy to conventional filesystem performance.

On the subject of "keep whole thing in memory", this is what Zero does for its instant performance, and why they suggest limiting your working set / data desired at app boot to ~40MB, although I can't find a reference for this. Zero is smart though and will pick the 40MB for you though. Hopefully Zero folks come by and corrects me if I'm wrong.

isaachinman•44m ago
Yes, Replicache works beautifully on our mobile/native targets.

The constructor allows you to pass in any arbitrary KVStore provider, and we happen to use op-sqlite as its performance is exceptional.

There is no "different data layer" per se, just a different storage mechanism.

Replicache also holds a mem cache that is limited to ~50MB if I recall. Our use case is extremely data-heavy, so we might end up never migrating to Zero – who knows.

Perhaps I misunderstood your question, let me know if I can clarify further.

jitl•14m ago
Ah, I understood "native application in some targets" to mean you're writing application code in languages other than JavaScript/TypeScript; not that sometimes you're React Native and sometimes you're Web/DOM but you're always TypeScript.

Notion always* has a webview component, even in native apps, but we also have a substantial amount of "true native" Swift/Kotlin. We can't use Replicache/Zero today because our native code and our webview share the SQLite database and both need to be able to read and write the data there; if we use Replicache that would make our persisted data opaque bytes to Swift/Kotlin.

*There's many screens of the Android/iOS app that are entirely native but the editor will probably remain a webview for a while yet.

fmajid•51m ago
The OP does not mention that IndexedDB itself is built on top of... SQLite. Abandoning WebSQL was truly a heinous crime against the Web.
dunham•28m ago
It's leveldb with a custom key format in chrome and electron.

It would be nice to have WebSQL though, even if it has to be spec'd as "it's sqlite".

jitl•19m ago
IndexedDB is a standard and can be implemented however the user-agent sees fit. Chromium source tree has an implementation on LevelDB and an implementation on SQLite; I'm not sure how they pick the appropriate backend. Firefox and WebKit both appear to use SQLite as the backend.

WebSQL was a clunky API, but not as clunky as IndexedDB which is truly yucky and very easy to get wrong in modern apps that use promises.

rudedogg•40m ago
I’m doing offline-first apps at work and want to emphasize that you’re constraining yourself a lot trying to do this.

As mentioned, everything fast(ish) is using SQLite under the hood. If you don’t already know, SQLite has a limited set of types, and some funky defaults. How are you going to take this loosey-goosey typed data and store it in a backend database when you sync? What about foreign key constraints, etc., can you live without those? Some of the sync solutions don’t support enforcing them on the client.

Also, the SQLite query planner isn’t great in my experience, even when you’re only joining on ids/indexes.

Document databases seem more friendly/natural, but as mentioned indexeddb is slow.

I wish this looked at https://rxdb.info/ more. They have some posts that lead me to believe they have a good grasp on the issues in this space at least

Also, OPFS is a newish thing everyone is using to store SQLite directly instead of wrapping IndexedDB for better performance.

Everybody Imitates Hypnotoad (History of and Recreating the Hypnotoad Sound)

https://www.scottsmitelli.com/articles/everybody-imitates-hypnotoad/
1•jszymborski•1m ago•0 comments

Linus Torvalds Marks Bcachefs as Now "Externally Maintained"

https://www.phoronix.com/news/Bcachefs-Externally-Maintained
1•database64128•1m ago•0 comments

Data engineering and software engineering are converging

https://clickhouse.com/blog/eight-principles-of-great-developer-experience-for-data-infrastructure
1•craneca0•4m ago•0 comments

Revolut tied employee bonuses to compliance performance

https://www.businessinsider.com/revolut-karma-bonus-system-compliance-workplace-culture-2025-4
2•rzk•7m ago•0 comments

3D web fish tank with Three.js

https://mattcool.tech/posts/building-a-web-aquarium-part-three/
1•mbcool•7m ago•0 comments

What Is Git Made Of?

https://zserge.com/posts/git/
1•homebrewer•8m ago•0 comments

Why Vibe-Coding Doesn't Work on an Existing Codebase

https://blog.reffie.me/what-vcs-dont-understand-about-vibe-coding/
2•SoylentOrange•13m ago•1 comments

Cell's 'Antenna' Could Be Key to Curing Diseases

https://www.mskcc.org/news/cells-antenna-could-be-key-to-curing-diseases
1•geox•14m ago•0 comments

Welcome to the Living New Deal

https://livingnewdeal.org/
2•Amorymeltzer•15m ago•0 comments

Show HN: Readn – Feed reader with Hacker News support

https://github.com/thang-qt/Readn
3•thangqt•16m ago•1 comments

Selectorate Theory

https://en.wikipedia.org/wiki/Selectorate_theory
1•baxtr•18m ago•0 comments

Ask HN: Writing Custom Instructions for the AI

2•tacone•19m ago•0 comments

TSMC to market system to manage trade secrets, its lawyer says

https://www.reuters.com/world/asia-pacific/tsmc-market-system-manage-trade-secrets-its-lawyer-say...
2•thelettuce•22m ago•0 comments

Pax Americana: Is the United States a Benevolent Hegemon? [pdf]

https://isonomiaquarterly.com/wp-content/uploads/2025/07/burns-l-s-1.pdf
1•brandonlc•22m ago•1 comments

U.S. denies Palestinian officials visas to attend UN General Assembly

https://www.axios.com/2025/08/29/us-deny-palestinian-authority-visa-un-assembly
9•mdp2021•25m ago•0 comments

WalkmanLand

https://walkman.land/
2•whilenot-dev•25m ago•0 comments

Type Inference for Plain Data

https://www.haskellforall.com/2025/08/type-inference-for-plain-data.html
1•PaulHoule•25m ago•0 comments

Japan should debate cap for foreign residents, government report says

https://www.channelnewsasia.com/east-asia/japan-foreign-residents-cap-debate-policy-5321921
6•eagleislandsong•26m ago•0 comments

Spatial Nautilus: A Postmortem

https://mycophobia.org/spatial_nautilus/index.html
1•netdoll•28m ago•0 comments

Driverless coal trucks push efficiency limits in Inner Mongolia [video]

https://www.youtube.com/watch?v=6zwdLA6kZTE
1•xbmcuser•28m ago•0 comments

Not in my browser Vivaldi capo doubles down on generative AI ban

https://www.theregister.com/2025/08/28/vivaldi_capo_doubles_down_on/
1•XzetaU8•28m ago•0 comments

Mastodon says it doesn't 'have the means' to comply with age verification laws

https://techcrunch.com/2025/08/29/mastodon-says-it-doesnt-have-the-means-to-comply-with-age-verif...
5•speckx•29m ago•0 comments

Maintainers: Mark Bcachefs Externally Maintained

https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ebf2bfec412ad29...
2•thebeardisred•29m ago•0 comments

Security Advisory: SonarQube Scanner GitHub Action

https://community.sonarsource.com/t/security-advisory-sonarqube-scanner-github-action/147696
1•regularfry•29m ago•0 comments

I Left Quantum Computing Research [video]

https://www.youtube.com/watch?v=pDj1QhPOVBo
1•eagleislandsong•29m ago•0 comments

LLM and MCP in Browser

https://huggingface.co/spaces/LiquidAI/LFM2-MCP
1•shreyask•31m ago•1 comments

Postal inspector investigating mail fraud charged with stealing victims' cash

https://www.universalhub.com/2025/postal-inspector-working-investigation-mail-fraud-rings-charged
2•ilamont•32m ago•0 comments

Replacing Developers with GPUs

https://ayende.com/blog/203012-A/replacing-developers-with-gpus
2•hvb2•33m ago•0 comments

AI just made a new word

https://www.threads.com/@gurovdigital/post/DGBB7O4t6TK
1•fernvenue•33m ago•0 comments

New self-assembling material could be the key to recyclable EV batteries

https://news.mit.edu/2025/new-self-assembling-material-could-be-key-recyclable-ev-batteries-0828
1•bookofjoe•36m ago•0 comments