In theory, I love the local-first mode of building. It aligns well with “small tech” philosophy where privacy and data ownership are fundamental. In practice, it’s hard! You’re effectively responsible for building a sync engine, handling conflict resolution, managing schema migration, etc. This said, tools for local-first software development seem to have improved in the past couple years. I keep my eye on jazz.tools…
I've been using instantdb in anger for the past month or so for a side project of mine. I'm building a personal budget app. I should probably write a blog post, but I will say that I investigated power sync, electricSQL, livestore and powersync before. I briefly looked at jazz tools but wanted something a bit more structured. I'm pretty impressed this far. I've actually been writing it with Vue and a community librar…
Local-first software (2019)
281–290 of 308 posts
Re: Local-first software (2019)
#282Yes a thousand percent! I'm working on this too. I'm sick of everyone trying to come up with a use case to get all my data in everyone's cloud so I have to pay a subscription fee to just make things work. I'm working on a fitness tracking app right now that will use the sublime model - just buy it, get updates for X years, sync with all your devices and use it forever. If you want updates after X years buy the newest…
Re: Local-first software (2019)
#283Earlier quoted context omitted.
Are you requiring a google account for file/folder based auth on a per user bases for a vault? Not to keen on using a 3rd party for this kind of thing.
For our free/individual plan we do use OAuth2 providers (currently only Google is enabled, but considering others), and can support other methods for larger teams (like oidc). Originally the idea was to keep everything within the Obsidian UI so things like username/password didn't make sense (no password managers in Obsidian). We initiate the OAuth2 login flow from within Obsidian. I guess we could add an extra click…
Re: Local-first software (2019)
#284Earlier quoted context omitted.
I mean if local first isn’t possible. I’m more comfortable with web based development plus don’t you need to apply for all kinds of certificates to be “allowed” to run on windows and Mac these days?
> don’t you need to apply for all kinds of certificates to be “allowed” to run on windows and Mac these days? Not for a PWA.
Re: Local-first software (2019)
#285Earlier quoted context omitted.
For our free/individual plan we do use OAuth2 providers (currently only Google is enabled, but considering others), and can support other methods for larger teams (like oidc). Originally the idea was to keep everything within the Obsidian UI so things like username/password didn't make sense (no password managers in Obsidian). We initiate the OAuth2 login flow from within Obsidian. I guess we could add an extra click…
What's that particular auth for again? Is it to distribute permissions to the shared folder user you add?
Re: Local-first software (2019)
#286Earlier quoted context omitted.
> What is sad is that they used to be local files first note app and then they moved to sqlite citing some sync and performance issues. They're still a local-first note application. It's just slightly harder for you to edit your notes externally, and not even by that much - it's very easy to directly query (read and write) SQLite databases, and if you really cared you could have made a script to grab a note, export i…
>and if you really cared you could have made a script to grab a note, export it to a temporary text file, allow you to edit it, then update the SQLite database. Bear devs advise against doing that: "Generally speaking, it is safe to access the database for reading only" https://bear.app/faq/where-are-bears-notes-located/
It's still worth pointing out that this design decision is orthogonal to the decision to use SQLite, though. The Bear devs could have designed it such that you could write to the database directly, or they could have kept the text-file-based design, but still told the user that they can't modify the files directly (as one of my personal projects does). The assignment of blame to SQLite specifically is misguided.
Re: Local-first software (2019)
#287Earlier quoted context omitted.
From memory the sqlite3 API is something like sqlite3 data.db 'select text from notes' I use sqlite3 to load and query random CSVs all the time. It feels a bit weird to hear data described as "locked" within a SQLite DB, because it's one of the simplest non-text formats for me to read data from. It would surprise me of it took more than five minutes to set up a one-way cron job to dump your notes into plain text file…
My god! Really? What is this subthread now - bear app fan version of discussions.apple.com? This is just unbelievable! Fucking pitchforks are out literally! I am dealing with plain text notes and you all want me to write sql queries and scripts to access those fucking text files? Are you all (these few people who just jumped in the subthread) pulling some sort of prank of so?
I don't want you to do anything. Use whatever you want! But if you love your tool except for the fact it uses an open database format instead of text files, then lucky you, there's a solution, and it takes all of five minutes.
Re: Local-first software (2019)
#288Yes a thousand percent! I'm working on this too. I'm sick of everyone trying to come up with a use case to get all my data in everyone's cloud so I have to pay a subscription fee to just make things work. I'm working on a fitness tracking app right now that will use the sublime model - just buy it, get updates for X years, sync with all your devices and use it forever. If you want updates after X years buy the newest…
Obsidian the note taking app is a great model to follow as well. The client is completely free and they sell an optional syncing service. The notes are all on markdown files so the client is completely optional.
Re: Local-first software (2019)
#289I've always thought that this article overstates the promise of CRDTs with regard to conflict resolution. For toy cases like a TODO list, yes, you can define your operations such that a computer can automatically reconcile conflicts - e.g. you only support "add" and "mark as complete", and if something gets marked as complete twice, that's fine. But once you get past toy examples, you start wanting to support operati…
This is what every "cloud file sharing" provider like Dropbox is doing. If there is a conflict, the version on the server is "the right one", and your locally conflicted file is copied on the side with some annotation in the file name.
Re: Local-first software (2019)
#290We have been building a local-first browser app (PWA) for personal finance, based on double-entry accounting. https://finbodhi.com/ We do use online services like firebase for auth, and some service to fetch commodity prices etc, but rest of the data is stored in browser storage (sqlite) and backed to local disk (and soon dropbox). We also syncs data across devices, always encrypting data in transit. I think it's the…
Try demo doesn't work on my iphone, it keeps spinning forever. Plus please take into consideration of removing the friction via signup, if it's real local first you don't need accounts in the cloud
That said, the app is currently designed for desktop use—mobile UX is still on our roadmap.
As for signup: it helps us track and bill users. Building our own auth system for local-first would’ve been a full project on its own. Until better options exist for authorization and billing in local-first apps, we’ll stick with a cloud signup flow.