I think one of the best ways of stopping lock-in is to be file-based. Obsidian is a good example of this. Users can just keep their data as is and move on with their lives.
This whole article is true and to the point but... reality is: most people still don't build their own setups: work, home - most of them follow a sh*tty software or decorate with Ikea. I think this applies only to a small group of users how will be willing to go extra mile and prompt their ideal interface for whatever they need to do.
If you read old computing magazines from the 1980s or watch any of the TV shows about computers from that era (a fun rabbit hole on YouTube if you're ever bored), the prevailing optimism was that everyone and their cat would have a computer in their kitchen, and just write the programs to do whatever they want.
But the fragmentation of operating systems and programming languages didn't really let that take off. HyperCard and Visual Basic came close, but they were killed off because of course.
It's only since a year ago that the original promise of computers has started to be realized.
I believe it is critical for regulators to force mega-corporations (and software vendors in general) to permit third party clients.
I use services like YouTube every day, why can I get sued if I write my own YouTube client that's better than the one provided by Google? Why can I get sued if I create a chat client that aggregates the myriad of chat services I use?
I'd argue that this even extends down the stack. Why is there only Android and iOS? It's because hardware drivers are practically impossible to write for undocumented hardware (which is virtually all hardware). Vendors should be compelled to document their hardware such that drives could be produced for them.
Asahi Linux is a testament to a team attempting the impossible and making unbelievable progress - but it's still not competitive with first party drivers.
I want a world where I can run Linux on my MacBook Pro and my phone. I want a world where I can flash a custom firmware to my TV that removes the bloat and spyware. I want a world where I can use the services I depend on in ways that are better than what the vendor can produce. I want a world where I can rebuild applications and games lost to time.
Everything you listed is exactly the reason why copyleft and GPLv3 needs to be the first and foremost license when opensourcing. If proliferated, it can give you all of these freedoms listed that you (and i) desire.
> If proliferated, it can give you all of these freedoms listed that you (and i) desire.
Hold up, let's not oversell things here. GPL/Copyleft just means that you have to share source if you share binaries. However big companies exploit the digital commons differently now.
Instead they run the important pieces remotely in their data-centers, and release neither binary nor source. If they do a client binary (e.g. phone apps), they can just sprinkle in some naive encryption and some "copyrighted content" on the server. Then if you make a custom client--or even document how to do it--you might go to jail. [0]
That means if the OS is too big a of a step, start with an application. If the hardware is too locked down, start with data so that next time you buy hardware, you will bring over that data then switch. Don't postpone.
Maybe I'm uneducated here, but wouldn't this just commoditize the products of companies? Would it disincentivize them from creating their products in the first place?
YouTube's product is the commercials it targets with the collected user data, not the web or phone client. So as long as the client doesn't get in the way of showing these advertisements and collecting that user data, it should not matter to them.
In more general case, you don't pay for the client software (or web page), you pay for the service provided trough it, so it should not matter if you use the service trough different client.
Of curse, many of these new clients do provide options for getting around the data collection or make it possible to block the advertisement, and that makes the companies so strict about who makes clients and how.
In a sense, yes - intuitively, you'd think it's bad but historically it's actually a major accelerant to innovation.
Essentially, if competition entered the market, Apple (and co) aren't going to give up, they'd be forced to innovate in order to retain market share.
If individuals (like me, some random on the internet) were permitted to create competing services on top of hardware and software that exists, you'd be running SteamOS on your MacBook, you'd be plugging your phone into a USB-C dock or lapdock, you'd be able to export data from your health tracker so you can buy a new one and keep your existing data, etc.
By contrast, the status quo of permitting corporations to attain functional monopolies by making it practically impossible to compete is a far worse outcome for the general consumer.
Also, when you consider that the EU is looking at cutting their reliance on US technologies - they are literally not going to make a MacBook or iPhone in this decade - but if Europeans were allowed to install their own software on these devices, the road to sovereignty gets a whole lot less impractical
Also, as stated below, as long as you don't prevent YouTube (or similar) from making money from ads (ad blocking, etc) - there is no reason to not allow you do to this.
Did TV, VCR, soundbar, monitor, laptop manufacturers end up stop manufacturing their devices because they had to talk to each other with a compatible HDMI format? And the user could swap out the TV device that played media from Apple TV?
i think they meant the hardware becomes more fungible. This is what made IBM lose their competitive advantage when it came to PCs, because others were able to make IBM-compatible ones that are cheaper and still able to use the same old software.
Right. But viewed differently, that made everyone have to compete at actually making good PCs, instead of relying on customers unable to escape to another vendor due to lock-in.
We want this. Software and other modern tech desperately need this! How many companies are stuck with an absolutely terrible suite of MS products because you can't easily rip out and replace just the IM or videoconferencing part, for example?
Its good for the buyers, and good for broader society and the economy.
Its bad for vendors.
Why would vendors do something that is bad for them? HN is full for people talking about how to create a "moat" for their products. Why do you expect hardware vendors not to want to do the same?
I've been thinking about this issue. One thing i realized early on is that the presentation layer is transcient it doesn't matter as much as data representation and storage.
The other day, I spent at least 20 minutes trying to share screens with my mother on Google Meet. She uses OSX.
There was a cascade of subtle issues which blocked every possibility.
My mother was using an an Apple iPad and I was using Linux. I sent her the link to the Google Meet to her email. When she tapped it, it opened in Safari browser. Safari did not allow screen sharing via Google Meet so I told her to download Chrome and told her to copy the URL into Chrome. Safari would not let her copy the URL from the address bar... She ended up literally typing out the URL and the resource ID by hand while I read it out to her. Then when she opened Google Meet in Chrome, it required her to download a browser extension (I don't recall having to do this on Linux)... Anyway it was unbelievably tedious.
It's obvious that operating system companies have been intentionally making it difficult to 1. Know where you are when browsing your file system or the web and 2. Copy the URL or path between different apps.
This has been a major point of frustration for software developers. First, it started with OSes hiding file extensions, then converting the address bar into breadcrumbs/buttons which can't be highlighted or selected... Then hiding the protocol (e.g. http:// or https://) then hiding most of the start of the breadcrumbs which make up the address so that you can't even see the full path in a single screen and you can't even select individual words to copy even a single folder name.
And this trend spread to a lot of other apps. Sometimes in downright dangerous ways. For example, recently, I noticed that my email client was hiding most of the email address of the sender of an email I had just received. If I clicked on the email address it opened up their contact card in a modal but only showed their name! Their email address still cut off on the contact card view and also not selectable... I just wanted to see if the domain name was legit but I physically couldn't see what the domain name was. OMG. Nowadays, whenever I'm forced to use one of these crappy web applications, I just open up the Chrome developer panel and inspect the HTML directly. I don't know what's wrong with people that they put up with this stuff voluntarily.
I always find these ideas funny. Been working with computers for decades and never once have I thought software “malleable”. Maybe back when I had to actually type the program into my Speccy to get anything to work… but then again it wasn’t a “let’s make software malleable” situation, it was more of a “this is how we can distribute software right now” type of thing.
Software was never malleable. User agency is a tale you tell yourselves to try and justify your rose-tinted glasses. Could things be better in computer world? Absolutely. But you could’ve ask us the same way back then and the answer would still be “absolutely”.
Malleability is a great answer to avoid the death by a thousand feature where you bloat your software because a company asked for something 99% of your users don't care about. That's the path I went with for my open source work with plugins that can run from a wasm runtime to prevent those from doing crazy things [1]. Unsurprisingly plugins represent more than 10x the code than what the core provides.
Our software is already malleable in a bunch of ways: APIs, integrations, extensions, plugins and compatible formats (eg lots of programs can edit a .md file). But all of this stuff is special-cased. Every program that wants to read a .psd has to write its own - probably buggy - parser. I can't just take the data in application A as JSON - at least not without claude. And I can't connect applications A and B and have them bidirectionally sync except with hacky scripts which will break in lots of situations.
That’s… not a valid point. eMacs whole point is being “malleable”, but the point is that not every software has to be, and they never have been by default.
Its quite reasonable to assume a future operating system could take on the malleability of emacs? That would make it the default. Just because it hasn’t doesn’t mean it can’t be.
Software has always been maleable. To think otherwise is a plain delusion. Go ahead and write a few bytes into a binary, or download some updates, and you'll see what I mean.
The issue here is the legal barriers which set up a delusion of nonmaleability. Copyright and IP treat software and ideas as if they were fixed, unmaleable things; they are not.
So many companies (including mine) built software to replace spreadsheets - but of course spreadsheets are great because you can do anything you want.
When there is no 'standard' way of doing things, you end up writing feature after feature to meet all the different ways people want/need to use the software to replace their spreadsheets.
Eventually it just becomes a huge messy. If instead we allows our customers to customize the software themselves, so each customer got what they needed, but still had the core backend, data, and shared functionality shared between them maybe we could build simpler software again that also does.
Maybe they can just vibe everything themselves, but vibe coded features feel like a solid middle ground.
I know of rough.app and vendo.run trying to allow vibe coded features, but I haven't seen anything take off like lovable yet. Is there something out there that is being widely used that lets any software become malleable?
I have been working on exactly this with Filestash (https://github.com/mickael-kerjean/filestash), out of millions of users, 99% of them don't seem to care so much about the malleability, it gets very usefull when a company ask for something that 99.99% of people don't care without having to add yet another setting toggle. A recent example was when supporting gobd compliance deployment which required us to sign logs via a vendor who can deliver a qualified electronic signature for which nobody outside Europe would care about
If you read old computing magazines from the 1980s or watch any of the TV shows about computers from that era (a fun rabbit hole on YouTube if you're ever bored), the prevailing optimism was that everyone and their cat would have a computer in their kitchen, and just write the programs to do whatever they want.
But the fragmentation of operating systems and programming languages didn't really let that take off. HyperCard and Visual Basic came close, but they were killed off because of course.
It's only since a year ago that the original promise of computers has started to be realized.
I use services like YouTube every day, why can I get sued if I write my own YouTube client that's better than the one provided by Google? Why can I get sued if I create a chat client that aggregates the myriad of chat services I use?
I'd argue that this even extends down the stack. Why is there only Android and iOS? It's because hardware drivers are practically impossible to write for undocumented hardware (which is virtually all hardware). Vendors should be compelled to document their hardware such that drives could be produced for them.
Asahi Linux is a testament to a team attempting the impossible and making unbelievable progress - but it's still not competitive with first party drivers.
I want a world where I can run Linux on my MacBook Pro and my phone. I want a world where I can flash a custom firmware to my TV that removes the bloat and spyware. I want a world where I can use the services I depend on in ways that are better than what the vendor can produce. I want a world where I can rebuild applications and games lost to time.
I have the skills and desire to do these things.
But nah. Not allowed.
Hold up, let's not oversell things here. GPL/Copyleft just means that you have to share source if you share binaries. However big companies exploit the digital commons differently now.
Instead they run the important pieces remotely in their data-centers, and release neither binary nor source. If they do a client binary (e.g. phone apps), they can just sprinkle in some naive encryption and some "copyrighted content" on the server. Then if you make a custom client--or even document how to do it--you might go to jail. [0]
[0] https://en.wikipedia.org/wiki/Anti-circumvention_laws
> I have the skills and desire to do these things.
Please check out my page on the topic https://fabien.benetou.fr/Content/SwappingPartsOfTheRestrict... and let me know if I could improve it somehow to help you.
Overall though my recommendation is :
- do what you can TODAY no matter how small
That means if the OS is too big a of a step, start with an application. If the hardware is too locked down, start with data so that next time you buy hardware, you will bring over that data then switch. Don't postpone.
In more general case, you don't pay for the client software (or web page), you pay for the service provided trough it, so it should not matter if you use the service trough different client.
Of curse, many of these new clients do provide options for getting around the data collection or make it possible to block the advertisement, and that makes the companies so strict about who makes clients and how.
Essentially, if competition entered the market, Apple (and co) aren't going to give up, they'd be forced to innovate in order to retain market share.
If individuals (like me, some random on the internet) were permitted to create competing services on top of hardware and software that exists, you'd be running SteamOS on your MacBook, you'd be plugging your phone into a USB-C dock or lapdock, you'd be able to export data from your health tracker so you can buy a new one and keep your existing data, etc.
By contrast, the status quo of permitting corporations to attain functional monopolies by making it practically impossible to compete is a far worse outcome for the general consumer.
Also, when you consider that the EU is looking at cutting their reliance on US technologies - they are literally not going to make a MacBook or iPhone in this decade - but if Europeans were allowed to install their own software on these devices, the road to sovereignty gets a whole lot less impractical
Also, as stated below, as long as you don't prevent YouTube (or similar) from making money from ads (ad blocking, etc) - there is no reason to not allow you do to this.
Where do you get those silly ideas?
We want this. Software and other modern tech desperately need this! How many companies are stuck with an absolutely terrible suite of MS products because you can't easily rip out and replace just the IM or videoconferencing part, for example?
Its bad for vendors.
Why would vendors do something that is bad for them? HN is full for people talking about how to create a "moat" for their products. Why do you expect hardware vendors not to want to do the same?
of course they want the moat - the point is that society as a whole should force them not to have a moat. Ala, they should not be allowed monopolies.
Unfortunately, this sort of legislation has been lacking recently, and in fact, has been failing even enforcing existing ones from yester-century.
Feb 2025: https://www.inkandswitch.com/ambsheets/notebook/
September 2026: https://techcommunity.microsoft.com/blog/excelblog/excel-now...
Malleable software: Restoring user agency in a world of locked-down apps - https://news.ycombinator.com/item?id=44237881 - June 2025 (114 comments)
There was a cascade of subtle issues which blocked every possibility.
My mother was using an an Apple iPad and I was using Linux. I sent her the link to the Google Meet to her email. When she tapped it, it opened in Safari browser. Safari did not allow screen sharing via Google Meet so I told her to download Chrome and told her to copy the URL into Chrome. Safari would not let her copy the URL from the address bar... She ended up literally typing out the URL and the resource ID by hand while I read it out to her. Then when she opened Google Meet in Chrome, it required her to download a browser extension (I don't recall having to do this on Linux)... Anyway it was unbelievably tedious.
It's obvious that operating system companies have been intentionally making it difficult to 1. Know where you are when browsing your file system or the web and 2. Copy the URL or path between different apps.
This has been a major point of frustration for software developers. First, it started with OSes hiding file extensions, then converting the address bar into breadcrumbs/buttons which can't be highlighted or selected... Then hiding the protocol (e.g. http:// or https://) then hiding most of the start of the breadcrumbs which make up the address so that you can't even see the full path in a single screen and you can't even select individual words to copy even a single folder name.
And this trend spread to a lot of other apps. Sometimes in downright dangerous ways. For example, recently, I noticed that my email client was hiding most of the email address of the sender of an email I had just received. If I clicked on the email address it opened up their contact card in a modal but only showed their name! Their email address still cut off on the contact card view and also not selectable... I just wanted to see if the domain name was legit but I physically couldn't see what the domain name was. OMG. Nowadays, whenever I'm forced to use one of these crappy web applications, I just open up the Chrome developer panel and inspect the HTML directly. I don't know what's wrong with people that they put up with this stuff voluntarily.
Software was never malleable. User agency is a tale you tell yourselves to try and justify your rose-tinted glasses. Could things be better in computer world? Absolutely. But you could’ve ask us the same way back then and the answer would still be “absolutely”.
[1] https://github.com/mickael-kerjean/filestash
Our software is already malleable in a bunch of ways: APIs, integrations, extensions, plugins and compatible formats (eg lots of programs can edit a .md file). But all of this stuff is special-cased. Every program that wants to read a .psd has to write its own - probably buggy - parser. I can't just take the data in application A as JSON - at least not without claude. And I can't connect applications A and B and have them bidirectionally sync except with hacky scripts which will break in lots of situations.
I love the idea of fixing that.
The issue here is the legal barriers which set up a delusion of nonmaleability. Copyright and IP treat software and ideas as if they were fixed, unmaleable things; they are not.
When there is no 'standard' way of doing things, you end up writing feature after feature to meet all the different ways people want/need to use the software to replace their spreadsheets.
Eventually it just becomes a huge messy. If instead we allows our customers to customize the software themselves, so each customer got what they needed, but still had the core backend, data, and shared functionality shared between them maybe we could build simpler software again that also does.
Maybe they can just vibe everything themselves, but vibe coded features feel like a solid middle ground.
I know of rough.app and vendo.run trying to allow vibe coded features, but I haven't seen anything take off like lovable yet. Is there something out there that is being widely used that lets any software become malleable?
Spreadsheets.
Or, maybe something very close to spreadsheets but that can also deviate from the rectangular cell grid topology.