14 ms·
Local-first software (2019)
- WrtCdEvrydy 6y agoUnfortunately local-first software is incompatible with you being a slave to your preferred technology company of choice (Facebook, Apple, Google, Microsoft). If it wasn't for GDPR, most of these companies wouldn't even offer exports of your data.
- henvic 6y agoGDPR was born yesterday, and government intervention on such private matters can really cause a disaster. You want to have control over your data, and just to cite one case, Apple has started embracing it a while ago ahead of GDPR laws. Perhaps because it is a hardware company it has more incentives (like, it could very well create something akin to a 'family vault' that would be a fancy digital vault that you could buy and store your family data on it, and it would survive even fires - just thinking some crazy ideas, so don't judge me too much). I am positive that market forces would achieve the same effect sooner if it were not by GDPR. One thing that has to change in my opinion is the idea of 'exporting out'. People should be using such services to import in what they have to share with others, instead of blindly relying on them to access remotely.
- WrtCdEvrydy 6y agoUnfortunately in the real world, noone writes about the Honeywell basic-ass wifi AC controller but instead jizzes themselves over the Google Nest "with AI" which I will find time to write an extension that replaces "with AI" with "with if statements" sometime this century.
- marcinzm 6y agoIt's pretty common for up-an-coming players in a market to push for interoperability and then once they have dominance to shut it down. This happening is not proof that GDPR isn't needed as such measures only cover a small fraction of the market at any given time.
- Frost1x 6y ago>I am positive that market forces would achieve the same effect sooner if it were not by GDPR. Considering how many business practices across the board aren't very consumer friendly and are seemingly growing ever more anti-competitive in nature while skirting antitrust definitions in grey areas, I'm personally not nearly so sure we can rely on "market forces" to protect anything but the business in question. In fact, the only thing I've seen market forces achieve is self-preservation and interest which may or may not align with the rest of what society wants or needs.
- Proven 6y agoApple doesn't have a relationship with the rest of society and doesn't need to cater to it. It has a relationship with its customers and each side can exit the relationship. That's much preferred to the GDPR nonsense and associated costs. If that doesn't suit you, don't use Apple.
- ramraj07 6y agoNetflix is always the perfect example against this weird logic. They commited to AWS, and stuck with it even after Amazon itself is one of their prime competitors. They clearly decided that infra and devops is not their core competency and have absolved themselves of that responsibility and are ready to pay a premium for it. On the other side we have people who keep patting themselves in their back about their Emacs setup being able to run a web server from a raspberry Pi. We're at a place where it's fairly counter intuitive to continue arguing against cloud providers. I doubt azure or AWS are going to go down with a probability that should worry any business (and even then it should be recoverable). The only danger with cloud providers is that if your engineering team is not exactly smart you can rack up a million dollar bill for a dog walking app. But thars more about your ability to recruit disciplines engineers, no point blaming it on the cloud. Look at Imgur. For the most part bootstrapped, scales extremely well, and if I'm not wrong, is very frugal, also runs off AWS.
- WrtCdEvrydy 6y ago> doubt azure or AWS are going to go down with a probability that should worry any business Were you asleep when S3 East failed to the point that half of the internet was offline or did you just not get a notification? https://aws.amazon.com/message/41926/ https://aws.amazon.com/message/41926/ > The only danger with cloud providers is that if your engineering team is not exactly smart you can rack up a million dollar bill for a dog walking app The public cloud has never been recession tested and these next few years may be the only way to do it. The model works as long as there are people willing to pay for Amazon and Azure will raise prices if the base load drops below a certain point.
- sukilot 6y agoHouses catch fire/flood/tornado too. The question is overall SLI, and multihoming, not has there ever been an outage.
- scarface74 6y agoAnd that half of the internet decided that it wasn’t worth it to have multi region redundancy. I’m not saying that was a bad decision. It all depends on how much they would lose in an outage vs. cost.
- scarface74 6y agoAnd now with GDPR I have an annoying “we use cookies” splash page every time I visit a web page. Win???
- Nextgrid 6y agoThose are not actually compliant with the regulation - it explicitly forbids annoying/confusing/forced consent prompts. There is a problem with the lack of enforcement, but the regulation itself is sane.
- scarface74 6y agoSo the end result was that it wasn’t effective. Imagine that, ineffective government regulations with regards to tech. Who would have thought?
- erinnh 6y agoSo the end result should be that we dont try?
- scarface74 6y agoMore regulation actually increases the barrier of entry to make it even harder for new companies. Well financed established companies are well able to comply. There is a reason that FB always begs for regulation.
- erinnh 6y agoIf the barrier to entry is "don't be a dick and sell data to whomever you like without telling your customers", it's kinda a good barrier, or not? Regulation isnt a black and white/good or bad thing. It can be either.
- scarface74 6y agoThink about a regulation being passed that says if you allow user generated content, you must have a system in place to prevent copyright infringement. Would a startup be able to design such a system? It would give FB and Google an advantage.
- staticvar 6y agoWas this paper in a journal?
- cxr 6y agoIt was published in the proceedings for Onward! 2019. https://doi.org/10.1145/3359591.3359737 https://doi.org/10.1145/3359591.3359737
- eternalban 6y agoI skimmed the desired qualities, the review of current tools, and finally the software centric approach to achieving the stated goals. While we can reasonably expect software elements in any proposed solution, the hardware and physical elements of distributed computing may provide a far simpler pathway and likely will permit much greater reuse of existing proven software approaches. For example, all future multi-unit residences could come with 'data center' along with the boiler, or possibly the actual units will host this equipment along with their air conditioning units. All your cloud apps can now point to this cloud. I don't see any fundamental reason why 'data center' can not become a modular utility unit, coming in domicile, commercial, and industry grade flavors. In my view, the pure software solution approach to the 'modern informaton society' has implicit political dimensions. One of these is the concentrated private ownership and control over physical resources which are now a required substrate of modern society. I for one am not ready to accept that as 'acceptable'.
- ozim 6y agoThere is whole bunch of reasons and that bunch of reasons has name IoT. I mean that security of such utility units would be roughly what we already see with current breed of IoT devices. To keep some kind of quality level of such devices there would have to be one big company that produces them, which does not solve the problem. If you look at IoT devices manufacturers now there is so much crap floating around because there are so many of them. I don't think it is "evil corporations concentrating power" it is more "normal people have better things to do". If you are plumber you want to spend time fixing pipes not setting up your homepage. Putting some ad on Facebook for a plumber is perfect solution.
- eternalban 6y agoYou can not possibly compare IoT -- I work in the space -- and server as utility appliances. IoT is designed to work in extreme edge conditions: low power; intermittent connectivity; constrained local storage; limitations on embedded code, etc. Further, there is currently NO financial incentive for anyone to tackle the issues necessary to take these bits of technology and make it 'home' techonlogy. We've done this for all sorts of things, including controlled combustion in the basement for heating. You also have two strawmen here that you attack: 1 - I did not say anything about the "evil" of corporations. Simply that it is not acceptable. 2 - A "normal" person in a modern multi-residence is hardly bothered with "fixing the boiler", or "the network connection", or "the fire alarm system", any other utility tech. If you are asserting that this is "impossible" for "networking and hosting" (!!) please make the case. The solution space is fairly permissive, with various business models to consider. It should definitely be explored.
- webscalist 6y agoTODO: build a local-first livestream remote conference zoom alternative software
- worble 6y agoYou mean jitsi?
- WrtCdEvrydy 6y agoNow with beta end-to-end encryption!
- ForHackernews 6y agoWasn't this Skype, originally? Pre-Microsoft acquisition?
- ramraj07 6y agoEveryone starts with p2p and realizes it doesn't work. OG skype predates fast internet and expectations of extremely smooth conferencing between arbitrary number of users. A centralised server is basically a requirement for acceptable performance.
- pferde 6y agoThere is a step between peer to peer and centralized, and that is federated. For most services, that should be the sweet spot.
- fastball 6y agoHow do you federate a video call with 10 people? Federation isn't needed because you don't need to have servers that communicate with each other, you just need some server that can host a given video call. So any open source solution works, no federation architecture is required.
- AriaMinaei 6y ago> ... cloud apps depend on the service continuing to be available: if the service is unavailable, you cannot use the software, and you can no longer access your data created with that software. This means you are betting that the creators of the software will continue supporting it for a long time — at least as long as you care about the data. Although there does not seem to be a great danger of Google shutting down Google Docs anytime soon, popular products (e.g. Google Reader) do sometimes get shutdown or lose data, so we know to be careful. Plus, the value of the cloud app is not just your data, but the network effects. Like, if you've emailed links to a GDocs document, and 5 years later you decide to move to another service, those GDocs links will 404, regardless of whether you've transferred all of your data to the new service. With local-first apps, the URL starts with you, not some some-sass-provider.com.
- elmo2you 6y agoMany far smarter people have said this before, far more eloquently than I can, but in short: Cloud Computing (and SASS even more so) is little more than just another attempt to recreate access/info monopolies, essentially the same profit proposition as existed with closed source software, while pretending to be one of the cool kids and use politically more acceptable (but in this context rather meaningless) terms like Open Source and Open Standards. It may be a different generation of companies, with slightly different cultures, but they are all equally predatory in nature as the old ones. It's going to be a rude awakening, when some of the bigger service providers will eventually fall over (which they will). Of course, everyone will blame anything and everything but their own willful ignorance, when that happens.
- scarface74 6y agoWhat do you propose? That every company reinvent the wheel or host everything locally even if it’s not their core competency? Every company has to decide what its “unfair advantage” is and concentrate on that.
- AriaMinaei 6y agoI think you are jumping to the "What do you propose?" question before understanding the pain point first. You are asking for a solution before agreeing that there exists a problem. This is the "I'll listen to your problem if the solution is convenient" mentality. It's inside-the-box thinking. It holds you back.
- flas9sd 6y agoif you prefer HTML over PDF it's https://www.inkandswitch.com/local-first.html https://www.inkandswitch.com/local-first.html
- oblib 6y agoThis is the 3rd time in a week a "Local-First software" overview has been submitted and the 2nd time it's made the front page here. I'm pretty surprised about that because I'm about to release a local-first, offline-first, option for an app I make. This article also quickly moves past "local-first" software to conflict resolution which, in my opinion, is a distinctly different issue. It's certainly not reason enough to hold off offering users a local-first option. At this point I believe that since it can be done it should be done. I'll even go so far as to say it's a necessity. At some point users will understand it's a necessity and demand it. All that really needs to happen to convince them is one big incident where they lose access to their data for an extended period of time, or worse yet, lose all their data forever, and it won't matter why or how. Aside from that, as more app makers start offering local-first options and users begin to see the benefits of that they will begin to demand it. That could take some time, but I expect it's inevitable. There are other benefits to a local-first approach for developers. Take a "Contacts" app for example. If we have a standard for saving contacts data on the client side that any app could access this would give users and developers options to create and use new apps and features that all use the same data. CouchDB & PouchDB.js provide a pretty solid and easy way to do this right now. Installed on the user's desktop PC, CouchDB provides the missing link to a robust client side web app runtime environment. There may be other ways of achieving this right now, but I am not aware of them.
- akulbe 6y agoDo you have a website where you talk about your stuff? I didn't see anything listed in your profile.
- oblib 6y agoI have a personal blog where I blabbered on a bit about using CouchDB on the client side back in May : https://azartiz.com https://azartiz.com And I outline the features on the new site for the app at https://cherrypc.com/home.html https://cherrypc.com/home.html That site is still under construction but there is a link to a demo of the app there. It doesn't run on a local CouchDB though, it uses the browser's IndexedDB. You only change one line of code to use the IndexedDB, the cloud based CouchDB, or the locally installed CouchDB. I did make a very simple demo of a "Rich Text Editor" app that runs on a CouchDB installed on your desktop pc though. After you've installed CouchDB and created an "Admin User" and password this page configures a user and a DB on your CouchDB: https://cherrypc.com/app/editor/setup.html https://cherrypc.com/app/editor/setup.html After you created your user you're redirected to the app and prompted to login at this page: https://cherrypc.com/app/editor/index.html https://cherrypc.com/app/editor/index.html After you log in you can CRUD & print rich text documents. It's a very simple app and all the code to make it is included in the source of those two html pages.
- merricksb 6y agoMade the front page a few days ago but didn't get much traffic or many comments: https://news.ycombinator.com/item?id=23985816 https://news.ycombinator.com/item?id=23985816 http://hnrankings.info/23985816/ http://hnrankings.info/23985816/
- pvh 6y agoHello, we've published some more work in this space -- no HTML version yet, but here's a more recent paper on our PushPin project. https://martin.kleppmann.com/papers/pushpin-papoc20.pdf https://martin.kleppmann.com/papers/pushpin-papoc20.pdf You can also try PushPin for yourself: https://github.com/automerge/pushpin/ https://github.com/automerge/pushpin/ likely outdated binaries are available here: https://automerge.github.io/pushpin/ https://automerge.github.io/pushpin/ Also, we're currently in the midst of a new project called Cambria, exploring some of the consequences and data demands for a new Cambrian-era of software here: https://inkandswitch.github.io/cambria/ https://inkandswitch.github.io/cambria/
- codetrotter 6y agoThis Cambria project looks pretty interesting. Is it an internal project only? One of the blog posts gives an example of running it, but I couldn’t find any links to source nor binaries, so I am assuming it is currently internal only.
- jjordan 6y agoThis is why I'm a frequent visitor to /r/selfhosted. Any other self-hosted centric communities to be aware of?
- ffpip 6y agoMaybe r/datahoarder ? Or even r/opendirectories ,r/plex , r/homeserver ?
- smithssoso 6y agoTake a look at the PJON protocol that is a perfect example of a local-first networking technology, I am really amazed by the job they did on that! https://github.com/gioblu/PJON https://github.com/gioblu/PJON
- z3t4 6y agoAs platforms get more and more locked down (Chromebooks, Android, iOS) hosting the software in the cloud becomes a easier option. For example I'm working on and editor/IDE for programming, but it's next to impossible to compile programs on the platforms people use now a days. So in order to run a program that you made on your Apple phone, Android device or Chromebook, it has to run on a third party server...
- mkoubaa 6y agoI think there's probably a market for a personal cloud, which probably sounds dumber than personal computer did in the 80s. What I mean by that is a computer somewhere in the garage, like a furnace, with enough compute and storage to drive all the devices and appliances in a house. In this model, devices do not have CPUs or memory, only input/output and a network chip. The way this would work is for the computer in the garage to have the ability to divide itself arbitrarily into VMs for each purpose, with an ecosystem of images designed for things like fridges and gaming consoles. It should be possible to add or upgrade compute to the device in a hot swapped fashion, and because it doesn't have to be in a thin tablet, it could be easily cooled.
- alexpetralia 6y agoI would love a hardware/software solution that makes it easily to backup my data (ideally with integrations to Google Takeout, Facebook, etc.). Perhaps it exists already? Edit: of course local-first does not mean merely "backup", but instead the (redundant) hardware serves as a primary data store. I would welcome that as well!
- weejewel 6y agoSynology NAS does this very well.
- TeMPOraL 6y agoI wonder if there would be market for community clouds, or neighborhood computes? Imagine that a new apartment building comes bundled with a server room in the basement. Every dweller gets compute/storage there. This could serve as edge cache for services like Netflix/YouTube, as well as for the ecosystem you describe. I once imagined that homomorphic encryption would allow people to store data in their personal/neighborhood clouds and have third party SaaS code operate on that data locally. But I've recently been made to understand that homomorphic encryption would also allow companies to fully close off any access to data beyond what a program/service wants to give out, and unfortunately I get the feeling that the market will prefer the latter over the former.
- valuearb 6y agoThe No Spinners thing seems to be my professional niche. Every job I’m tasked at cleaning up a poorly performing native app. And it’s always caused by developers writing views like web apps, posting their server requests as views open and fire up a spinner to wait. It’s not that hard to have a caching strategy. And then your native app feels like a native app.
- asiachick 6y agoI'll take cloud first thanks. No software to update. Nothing to backup. I just open a computer/phone/tablet and access my stuff. I get the tradeoffs. I'm not going back 10+ years.
- oblib 6y agoIt's actually pretty easy to integrate the two. I've done that with the latest version of one of my apps.
- harpratap 6y agoHow do you sync data between devices if you don't use cloud?
- anilgulecha 6y agoA lot research has been done in this. The OP article is on the same topic - offline-first and local-first stores exists: whether as DBs (pouch/couch) or as data structures (CRDTs or OTs) like yjs. These automatically sync to the cloud. Usage is lower, as most commercial applications prefer cloud lockin.
- sebastianz 6y ago>> How do you sync data between devices if you don't use cloud? > [...] These automatically sync to the cloud. [...]
- anilgulecha 6y agoThey do need to talk to each other. But yes, yjs can actually sync over ipfs/dat, or direct webrtc as well. Those are options too.
- robenkleene 6y agoOut of curiosity, how do think about the prospect of being arbitrarily locked out of your account if you’re mainly using cloud-first software? (E.g., you can find example horror stories here on Hacker News: https://www.google.com/search?q=locked+out+of+gsuite+site%3Anews.ycombinator.com+&t=ipad&ia=web https://www.google.com/search?q=locked+out+of+gsuite+site%3A...)
- RivieraKid 6y agoWhat's the origin of the "X-first" language pattern? Earliest example I cam remember is when Eric Schmidt was talking about "mobile first" approach.
- zurfer 6y agoNice question. I am not that old and only further aware of the more recent "cloud first" and "america first"
- amelius 6y agoBut we still need a catchy name.
- m3047 6y agoAs partly a philosophical exercise, and partly as hyperlocal "no really, you are here so you have access", I added Apache with DAV and Etherpad to a DNS+DHCP "sled": https://github.com/m3047/pangolin https://github.com/m3047/pangolin The irony that Etherpad is written in Node is not lost on me.
- oscargrouch 6y agoIm doing a "browser-based something" that can mostly be reasoned about as a web-over-rpc-services where the primary pitch to start it, was exactly based on the thinking generously expressed by this article (albeit i had to start it much earlier). The first thing is to expect the app devs to define a api in RPC so that what they app serve it transparent to the whole platform. That way, users and other apps can reuse that api and integrate tools and other services without worrying about if the node is online or not. Given they are RPC (over TCP or IPC), they can be used as a peer node in a distributed computing flock or in the app service process the application can serve the RPC requests not locally if it wants or needs, but going over the network. But even in the case it goes straight to the "cloud" for resources, in the node it will always go through the RPC-api first. (How the application handle the RPC request is defined by the app developers). There are a lot of others important details actually, for instance the UI sdk, window management, its already there, the storage layer (files and key-value db) are distributed over p2p(torrent) and everything is accessible/bootstrapped through a DHT address accessible anywhere. But imagine if you had this architecture before, and Twitter, Facebook or Google search had to install a api-based application, where they need to ask you for permission to index content, or store locally your list of friends.. where later other apps could extract that information from your machine.. For instance you could change your search to DDG or export your Facebook list of friends and post to some other social network(this is actually the primary reason almost no one could compete with a popular social network). In the end, things that should be yours are yours and third-party apps will have to be installed and granted permission by you to manage that digital property. But overall i'm very glad to see that this is starting to become some sort of a trend, that people are finally waking up, because despite of all technological implications of it, it also have a lot of political and social benefits to this approach.
- wilsonrocks 6y agoHow about a more generalised collaboration system, where you just edit your files lot Cally as standard, but can kind of dial in using o collaboration - a bit like a screen share on a call. So suddenly the people you've dialled can leave comments on your work etc, but when you cut the connection, they can't any more?
- Natalie1Quinn 6y agoHow to make money online without investment in home,earn Money on blogging, earn Money on Fiverr,make money writing online,How can I make money online fast and easy without investment,how to earn money online without paying anythinghttps://www.bloggerzune.com/2020/06/free-marketing-tools.html https://www.bloggerzune.com/2020/06/free-marketing-tools.htm...
- oblib 6y agoIt's worth noting that a local-only offline-first web app shifts the load of storing and managing user data entirely onto the user themselves. That's a huge load of responsibility taken off the software supplier's shoulders and it eliminates the entire cost and complexity of building and maintaining Cloud based data management infrastructure. And that's a pretty great option to have on the table for both users and software makers. I'll also note that these apps consume almost no network bandwidth. With Service Workers implemented they barely speak to your server. The amount of bandwidth that can be potentially saved has got to be pretty huge.
- MaxBarraclough 6y agoMuch of this seems to be rediscovering the principles of the IndieWeb movement, who have already thought about many of the issues discussed here. https://indieweb.org/silo https://indieweb.org/silo https://indieweb.org/data-portability https://indieweb.org/data-portability