354 comments

[ 3.2 ms ] story [ 309 ms ] thread
I still wish Google would allow adhoc Wi-Fi on Android...
It's insane to me that this is a frustration I've had back maybe 20 years now and I still feel like there isn't a particularly great solution.

My current iteration is just a "transfer" SyncThing folder that is on all my devices. It's not clean or convenient but at least its incredibly fast.

Yep, syncthing is the closest I've found to a simple(ish) cross platform solution. Though when at home, my actual solution is to copy to my file server on one device, then copy from the server on the other.
If only we had something like AirDrop that reliably worked cross-platform.

Proximity-based sharing just makes significantly more sense than uploading files to some server miles away, then immediately redownloading them back when the computer was two feet away from you the whole time.

Maybe LocalSend? https://localsend.org/

Windows, Linux, Android, iOS and macOS. Seems quite cross-platform. Can confirm it works smoothly for Linux and Android at the very least.

Most people will happily install entire ad package from Meta and Google, but not some unknown "LocalSend app".
I know that Meta and Google make money from data, but they are also competent, so they can be trusted to at least not get breeched or sell the data to the an aggregator.
“But they feed us for free in our competent concentration camp!”
If the choice was between 'the competent concentration camp' and 'the concentration camp run by one dude in his spare time', then if the question is 'which one is more likely to feed me', then yes, that is apt.
Seconded for LocalSend.

Works a treat for me.

Insane that we need a third party application for something as basic as this. This is as bad as an OS not shipping with a file browser.
(comment deleted)
I just tried it and it works as expected for Windows <--> Android.

I was using syncthing but this will replace it for one offs.

EDIT: I checked out another app in the comments and their website mentioned that it didn't work with a VPN. I can also confirm that LocalSend works when connected to VPN.

Never heard of it. Just tried it. Easy to install and run, copied one file in each direction (Linux/iOS).

Seems to good to be true. Are we sure this isn't malware?

Nearby share maybe. It is being merged with quick share from samsung.
Syncthing tries to send over the LAN if it's available, and only uses Internet relay servers if it can't establish LAN connectivity. This is why it's (usually) blazing fast. Not sure why the OP thinks this is a misuse of the tool. In fact, it's probably one of the intended purposes of it.
The hilarious thing is that was what Dropbox was meant to solve.

Like Drew Houston's demos to Y Combinator was copying a file to a given folder on one computer... and seeing it show up in the corresponding folder on another computer. HN comments at the time were dismissing, like "whatever, I can do that with rsync"

And then cloud storage became a thing.

It is purely because of the lack of static addressing. Probably an entire country's GDP-worth of SaaS products are essentially nothing more than providing basically a proxy to other devices that have to have apps installed to speak their special language.

If I knew your computer's address (and it didn't change) and you knew mine, we could route traffic through the infrastructure we already pay for.

IPv6.
What about it?
It will solve all of our problems for good and after it's implemented across every ISP, everyone will live in an interconnected utopia without NAT and other obstacles getting in the way of direct P2P communications across any device. /s

It will at least address the NAT problem. Theoretically, if ISPs truly embrace it, it will also open up the possibility of direct P2P communication across most devices on the Internet. Can't remember if there's a standardized protocol for IPv6 like UPnP but if not you can just configure your firewall manually. Of course, that's assuming ISPs allow you to do so.

Tbh, I misread your OP and I somehow got the idea you were talking about NAT. Static addressing is also a problem but a smaller one. In fact, IPv6 probably does nothing to help here, and may even make the problem worse with address randomization (which is a legitimate privacy feature, but still).

[flagged]
The OP talks about transferring from a PC to a phone (and vice versa). I have no idea how to use scp on my phone or how to move a file from my PC to my phone with scp.

Honestly, if you can teach me how to do that in less than a minute, I would (no sarcasm) really appreciate it.

That's fair, the duopoly on the mobile platform is such that you are only allowed to do what google or apple deigns to allow, so I suppose one must take it up with them
Once I found Termux i use SSHelper less often, using scp and later rsync on either. But I'm on Android...

SSHelper will tell give you a GUI where you configure optional password and get the IP and port. Then scp is -P<port> <user>@<IP>:<path>

  scp -P22222 myfile anyuser@192.168.1.10:/data/user/0/com.arachnoid.sshelper/SDCard/.
where the only trick part is how Android managed storage, but it's just more letters (/data/user/0/com.arachnoid.sshelper/SDCard/<path>).

Once I found Termux I embraced it since it's a nifty linux thing straight on my phone with it's own configurable sshd and it's exactly the same as above except with a different path and lots more options.

Android: install termux, `pkg install openssh`, and preferably run `termux-setup-storage` to give it access to storage folders.

iOS: I think https://ish.app/ ?

(If you're in the ~1% of smart phones not on Android or iOS, either this is trivial (postmarketos rocks) or you're on your own)

It also requires running a ssh server on the PC, and the even harder issue of having an externally accessible IP address that will allow ssh connections to the PC from the internet - I can do the former but I'm not entirely sure if the latter is even possible with my ISP.
I was responding to a comment that said,

> I have no idea how to use scp on my phone or how to move a file from my PC to my phone with scp.

so I'm comfortable assuming that they have an sshd and can reach it (though I grant, having an IP line-of-sight can be annoying).

Only if there is direct connectivity (or router has port forwarding set up), there is no firewall or port is open, one computer has ssh server running, another one has ssh client jnstalled, you know the username on remote computer, you know password or have ssh key set up, and if copying from remote machine, you know exact filename or at least a location. None of that is given, especially if one of the ends is a cell phone.
I agree. The state of mobile tools is severely hamstrung by the fact that the overwhelming majority of the ecosystem is on closed platforms

I'm not sure how you would propose to solve the other problems, such as "the computers can't communicate directly" or "you don't know where the file you want is" but that doesn't seem like a problem with there being proper tools available

that could be complicated for people. some have never used a terminal before. people will literally write "command src dst" https://www.theverge.com/22684730/students-file-folder-direc...
Right. So my point is that if we define a non-technical user as "someone who doesn't know how to do the thing yet", and any amount of teaching them to do the thing is thus implicitly deemed an unacceptable cost, then the problem simply has no solution
Nah, you just make your interface use verbs the target audience is already familiar with. They might not by familiar with command line text verbs, but they're probably familiar with point & click or drag & drop verbs.
Having just last night gone back and forth with multiple screenshots and careful explanations to guide someone through importing a picture from email to the ios photos app… maybe I’m lazy but it’s just exhausting. I agree that with effort it’s do-able, but it IS tiring :)
As the defacto I.T. support man for family and friends of varied skill levels… sometimes it’s really daunting trying to get them to do things that seem very intuitive to the technically experienced. I’m not saying we should just give up ok trying to show people new tools but I can empathize with the terror of even imagining handing a terminal off to some of these people, hah! A simple GUI goes a long way for people who don’t, for example, know how to write a file path or don’t know the difference between a forward slash and a backslash!
I keep trying to remind people that one of the real unsung advantages of a cli is how easy it is to tell others how to do something. If I never have to describe an icon to someone again, it will be too soon.
Isn’t https://wormhole.app/ the solution here? Note I haven’t used it, it’s just often brought up here as a good solution for this class of problem. Is it surprising that the author mentions a ton of solutions but not this one? I would think a deep dive of file sending applications would include this, it’s old enough and well known enough in circles that its exclusion in a comparison of file sending approaches does feel like a bit of an oversight
Here is a list of open source options. This isn't the first time I have shared this on here either. Perhaps this is another sign that web search is failing us.

SnapDrop

- Site: https://snapdrop.net/

- Source: https://github.com/RobinLinus/snapdrop

ShareDrop

- Site: https://www.sharedrop.io/

- Source: https://github.com/szimek/sharedrop

FilePizza

- Site: https://file.pizza/

- Source: https://github.com/kern/filepizza

Original Wormhole

- https://webwormhole.io/

- https://github.com/saljam/webwormhole

Nice thanks. I think the exclusion of some of these is especially egregious because the author identifies three criteria and then says that none of the solutions they explored fully meet all three. But at least from an early glance at least one or two of the solutions you mentioned do, as well as the solution I linked. Which kind of invalidates the entire point the article was trying to make, that there are not good solutions for this. There are, the author just didn’t consider them.
I have used all of these solutions, including the one you shared in the past.

Some of them used to work better than they do now, I imagine with browsers updating and the software going unmaintained, it hasn't left them in a great state. These are small open source projects without funding from what I can tell.

The fact that they work at all is amazing to me, and says a lot about what we can do with a few Web APIs. If only it was worth getting these individuals to collaborate on a web standard API around file transfers, maybe then we would finally see a long-standing solution.

I've tried using Wormhole and Filepizza from two devices on my network (a MacOS laptop and a Windows PC) and they just don't work for me. I assume the others use the same approach, and would probably also not work. I'm sure there's some setting I could change on my home network to make them work, but I think the point of the article is that we're looking for a way that a) just works, b) across platforms, c) even if you're a dummy like me.
I have used many of these to send files from windows to linux or mac to windows. My point isn't that one of the solutions above is perfect, but that the problem has been tackled in a user friendly way with existing web technologies in a variety of ways. These are very small, often one man projects, compared to something like airdrop for example, and they do 80% or more of what you need them to.

I spent less than a minute searching and found another WebRTC based project.

- Site: https://perguth.de/peertransfer/

- Source: https://github.com/perguth/peertransfer

Imagine what could be built with an actual investment? I don't think the money exists for this type of tech, otherwise we would've seen someone do it in the last 20 years.

Just a sanity check: Did you turn off WebRTC and forget that you did? If you're using Firefox, setting both of the about:config flags "media.peerconnection.enabled" and "media.navigator.enabled" to false disables WebRTC.

UBlock Origin's "Prevent WebRTC from leaking local IP addresses" setting also might interfere even though I don't think it turns WebRTC off. The same applies to Brave's "Disable non-proxied UDP" option for the "WebRTC IP handling policy" setting.

Don't do this is you ever use a VPN to hide your IP while browsing.
Don't disable WebRTC while using a VPN? I thought disabling WebRTC was the safe option.
a) Connection from one port of your external IP address to another port on your external IP address will not work if you are behind NAT that is not set up properly to enable hairpin connections.

b) Local IP addresses to connect to may not be provided by the browser to the Javascript code if there's a setting or extension that disables it.

c) Local router can be set up to prohibit traffic between clients (usually wireless devices). If hairpins don't work, you can't exchange any data between such devices without the help of external relay server, as there is no local network at all.

Other than that, WebRTC promises that two browsers can transfer data directly if they are able send UDP packets to each other somehow.

So the solution is to install another app and pray that it works on a PC.
Fortunately none of the options above require installation.

If properly invested in and maintained instead of being a toy open source project, they’d work seamlessly everywhere the web does.

None of them work like Airdrop or Nearby Share. You can't right click a file in the file explorer on PC or Mac and share it. Nor you can open a photo on your mobile photo app and chose share.
(comment deleted)
No way. The "solution" can't require internet access.
The tech to do this exists, since WebRTC works without internet. One just needs to run a local server for signaling purposes.

https://github.com/coturn/coturn

I don't think a browser is involved with the solution either. The protocol/transport definitely isn't the problem. It doesn't matter. The problem is integration, and solution, is integration.

The tricky bit that makes this hard is discovery. I think Apple does it right. UDP multicast discovery across local intranet, with bluetooth broadcast/NFC proximity for physically near devices that might be on separate networks/locked down. There's the possibility of internet based discovery, but that involves a central authority keeping track of your IP, constant polling, with a nice record of all your devices and transactions. In China, there are apps that use audio, for local discovery, which is neat.

I firmly believe we won't ever have a real solution for the next 30 years. It would require three enemies cooperating: Android, Microsoft, Apple. As is, Apple has this solved. Samsung is gettin there. Microsoft has nothing.

The downside of websites like that is that it travels over the internet, so you're throttled by every bottleneck along the way, which can be very painful if you're out and about and your hotspot is suffering 3G speeds. Meanwhile, Airdrop spawns an ad-hoc network giving you gigabit transfers in the middle of nowhere. Personally, if Airdrop isn't an option, I use TotalCommander to transfer over my hotspot network (no internet connection needed)
Not so for WebRTC. We use Snapdrop all the time to transfer between devices, and it just gets the two nodes talking, but the data xfer is peer to peer on our network. Works great.
I tried it many times, including when sending other people a file, but it fails for me about 60% of the time. Error or download just never completes.
KDE Connect?
It's ok but it won't let you copy multiple files at once on Windows
KDE Connect has lots of bugs with... connecting.

But when it works it's great. P2P over lan.

I never have connection issues; it's been one of those always-reliable tools for me. Can I ask what bugs you experience?
on every OS - windows, linux, android, iOS - it's like a 20% chance that it will connect or send the file if one of the clients has closed and reopened or disconnected momentarily. you have to close and reopen both clients.
Exactly my experience. And not exactly intuitive either.
Has a ridiculous number of bugs and is quite unreliable. Trying to talk to the devs usually goes nowhere.
Most people should run a static HTTP/1.1 webserver (after port forwarding 80) on their home PC so they can dump files into a directory to share them by sending the http://your.ip.address.here/directory/ link via email or whatever.

When you use directories and files your OS itself is the natural interface and everything just works.

Protip: if you have python installed you can just run

python3 -m http.server 8080

to launch a web server in the current directory on port 8080.

Sure, but you can't upload from a client device. You can only provide exisiting files on the host.
Most people with computers can right click and folder and hit share. SMB clients are built into any modern computer OS and various mobile devices (and apps are available for those devices that don't have it enabled by default).

HTTP is clunky, unintuitive, and requires typing in IP addresses. It's not a natural interface to file sharing at all.

I made my own site for this. https://filepush.kevincox.ca/

It uses WebPush notifications to set up a WebRTC data channel. So full E2EE with no website-run server in the middle (unless you need TURN). The actual domain is just a static site.

It is similar to a lot of the other WebRTC based solutions but it works better for me because the push notification means that I only have to navigate to the site on one device. Then on the other I can just click the notification. And other than initial setup there is no need to manage pairing codes or similar each time.

I mostly use it for between my phone and desktop. But has also come in useful for transfering files to and from my partner's Steam Deck and various other situations.

(Although last I checked it was having trouble on Chrome due to some weird interaction between the Chrome push server and the CORS proxy on Deno. It used to work and Firefox doesn't need a CORS proxy so that still works. I should probably get around to filing a bug against Chrome to enable CORS on their push server)

I understand why AirDrop doesn't get full ticks here, but I have to say it has saved me hundreds of hours over the last few years transferring literally anything from phone(s) <-> laptop(s) <-> laptop(s) <-> phones(s) at the drop of a hat.

I would not be happy if I had to give it up.

If you have an iPhone and a Mac signed into the same iCloud account you can literally just copy to the clipboard on one device and paste on the other.
Signal has a “Note To Self” feature which in a rush can be used to push files across devices.

I’ve sent PDFs between my Linux desktop and iPhone, but never anything bigger than a few Mb.

Yup, WhatsApp has this too.
Only between desktop and one mobile phone though. I find it mildly inconvenient not to have my messages synced between two mobile devices. It really breaks the magic of cross device usage.
https://pairdrop.net/ works well enough for me, but it still requires internet unlike airdrop... I wish these bluetooth transfer things were just magically cross-platform. Maybe someday.
I was forced to go digging for a solution that supported Mac, iOS, Android and Windows. Localsend is available through the app stores and on github. I haven't had much occasion to use it yet, but here's another to add to your lists: https://github.com/localsend/localsend
I use localsend almost everyday, mostly for copying images/PDFs between my Macbook Air and 3 Android devices.

So far works great, no issue.

This looks impressive. Much less clunky than the Syncthing's interface and doesn't look as buggy as KDE Connect on my first try. The real test would be moving my 95GB DCIM folder from Android to Windows. Let's see how that goes.
Localsend works really well so far, no issues with device discovery. I use it within our (heavily firewalled) intranet for offline file transfers between machines; particularly where you can't just scp something.
I'm also a big fan of LocalSend! I've tried several tools in the category of "easy cross-platform file/text sharing over LAN," and LocalSend really stood out as the most polished option.
This shows the joys of writing software for yourself (and your friends if you want).

I have an admin panel on my website for dumping files into S3 that I can then download later.

There are a million solutions out there, but simply hosting a file upload/download service that syncs to your own S3 bucket is for me my favorite solution. It's user friendly to me only, it's unusable for everyone else.

YMODEM or Kermit.
ZMODEM
It fails requirement 0. Solution should not be overengineered.
Indeed. It truly pisses me off that consumer devices and OSes have taken such an aggressive backward approach.
Been using KDE Connect for years and it can do exactly that, along with clipboard sharing, SMS, and device notifications.

https://kdeconnect.kde.org/

I really wish this was the One True Way, but unfortunately I couldn't get this working. Installed fine but then, nothing.
On windows I had to explicitly allow the executable in the windows firewall. I didn't get any popups or warnings that it got blocked. After that, it worked fine
On Linux I also needed to adapt the firewall rules to allow it.
That's the #1 solution for devices under my control. For the rare cases, where I need to transfer personal data to/from corporate devices, I just use https://webwormhole.io/
I recently started using KDE Connect because I was fed up with the way I had to send photos from my Android phone to my Ubuntu desktop. I usually did that by email, or in some rare cases I plugged a USB cable in to connect.

KDE works over Bluetooth, I guess, but it was super fast for transferring around 20 to 30 photos at the same (maybe more might also work, didn't try that).

But the most important thing was that I could look at the thumbnails of the photos before marking them for transfer. This process was always very slow with an USB connection, because it was always trying to 'thumbnailize' every photo in the folder (which were 100s or 1000s). Picking the right photos by obscure datetime-name is not fun.

I've been thinking about this problem a lot recently... Honestly, I wish we could apply a bit of political pressure to force major tech companies to implement basic device interop and file transfers.

In the year 2024 you should be able to seamlessly transfer files across devices wirelessly regardless of operating system or manufacturer.

AirDrop is pretty close to ideal, but it's limited to Apple's platform. I don't really care about any of the underlying details, I just want to have a simple way of sending files between devices without having to enable complex configurations (cough SMB, WebDAV, etc.) or tinker with anything. This could be achieved, it's not a pipe dream.

Why isn't anyone lobbying for such an essential feature that could make everyone's life slightly better?

There are no technical barriers to implementing this. There's just no political will.

Edit: I think the ideal solution would be to have some sort of spec that device and operating system vendors could implement, so that workaround stop being required at some point. Then for older devices you could build an application that implements the same functionality.

I have gotten a lot of use out of croc. https://github.com/schollz/croc

F-droid has an android app and the cli runs on Linux, Mac, and Windows. Super pain free. It's not a synchronization solution, but sends stuff pretty easily.

I like it too. Croc is easy to install/use in almost all network environments.
Came here to say this. It's as simple as:

(sending computer)

    computer-1$ croc file-i-want-to-send.txt
    Did you mean to send 'file-i-want-to-send.txt'? (Y/n) y
    Sending 'file-i-want-to-send.txt' (555 B)       
    Code is: 1234-some-diceware-passphrase
    On the other computer run

    croc 1234-some-diceware-passphrase
(receiving computer)

    computer-2$ croc 1234-some-diceware-passphrase
    Accept 'file-i-want-to-send.txt' (555 B)? (Y/n) y

    Receiving (<-127.0.0.1:44404)
    file-i-want-to-send.txt 100% || (555/555 B, 105 kB/s)
You can also just drag-and-drop a file onto the executable icon and it will pop up a GUI letting you do the same thing. Transfer is encrypted, no account needed.
This. croc is like a better magic-wormhole (available via python pip, apt, other package managers) I switched to croc after transferring large files over terrible wi-fi. No way to resume a failed magic-wormhole session, whereas croc does it automatically.
It’s a crappy electron app, but LocalSend is a great open source alternative to airdrop that supports all major platforms with the same ease of use.
I stand corrected! I've had so many problems with it (preventing PC from sleeping, problems minimizing at startup, etc) combined with the completely non-native look-and-feel that I've come to associate with Electron that I just went with it. Next time I'll double-check to be sure, thank you for the correction!
Yeah, it's great, but doesn't always work e.g. some corporate/academic networks.
The bigger issue is on Apple and iOS, the "regular user" doesn't often interact with individual files outside of the app. Even at my work (US airline), there have been recent restrictions added to the workstations so you can't just plug in a USB thumb drive and transfer some files (honestly a no-brainer). But for many people, much of their experience learning about using computers comes from work. If you don't regularly do it at work, how would they learn how to do it outside of work?
> For some of these services like WhatsApp or Apple’s Airdrop I’m not sure if there’s a storage provider in the middle.

Not for AirDrop, at least. You must be within RF range (~9 meters). https://en.wikipedia.org/wiki/AirDrop#:~:text=AirDrop%20uses....

> So, considering the solution needs to be cross-platform the easiest way to get something up and running would be through a web browser.

Yes, and Snapdrop seems to meet his 4 requirements: https://snapdrop.net/

Been using Blip between my devices: https://blip.net Checks all the boxes in the article except the first one, but I don't mind signing in
Just tried blip after reading this comment, works pretty well. Super fast and easy. Only 500dl in Android so far, wish them success.
Writing code is fun, but I can't find much of a downside with Bluetooth here. "You can accidentally turn it on" (fair, I guess?) "and it drains battery like crazy" (it shouldn't unless you have a very buggy device) don't seem like that bad compared to Yet Another File Sharing App.

I remember way back in the Android 4 era, my phone and my tablet both supported some "standard" form of WiFi Direct. It worked intuitively (just share a file), was blazingly fast (as fast as P2P WiFi can be), was low latency, and just worked. I used it to transfer media files and backups and it easily beat having to hook up a USB cable to two devices. I was sad to find out this was probably some kind of proprietary interface, because the feature seems to have vanished. It was the best local file sharing mechanism I'd ever used and it disappeared into thin air. Android Beam was nice, but computers and tablets don't have the required NFC hardware to make it work.

I don't expect Apple to play nice with anyone else, but it's time Microsoft, Google, and the various Android manufacturers got their shit together and developed some kind of open sharing system. Google and Samsung already joined forces, but Microsoft seems to have gone off to do their own thing again. We have P2P WiFi for display sharing and the like, why can't we decide on some kind of file sharing protocol here? I don't care if it's SMB or FTP or HTTP, it's really not that difficult a problem to solve. The only issue is that there are hundreds of apps, each with their own protocols and implementations, none of which come packaged with the OS.

I wrote a similar comment but so far have only received downvotes without any feedback as to why people seem to disagree with me. Admittedly, maybe my position is a bit more extreme, in that I think it would be pretty reasonable to consider applying political pressure or even legislating to improve file sharing and interoperabiliy between devices. I'd prefer it if big tech companies would just come together and implement support for full cross platform file transfers, but I don't see that happening.

My biggest frustration is that there doesn't seem to be anyone with a large platform willing to ask people in leadership at the big tech companies about such features.

In my ideal world: big tech would come together to write some spec, then devices and operating systems would slowly implement and roll it out. And on older devices you could just build a third-party app that implements the same functionality. The goal would be that ultimately you'd have seamless basic interoperability between devices without having to install third-party apps.

>I'd prefer it if big tech companies would just come together and implement support for full cross platform file transfers

How would this help them coerce people to stay within one vendor's ecosystem? It wouldn't.

>The goal would be that ultimately you'd have seamless basic interoperability between devices without having to install third-party apps.

Interoperability is the last thing that some big tech companies want.

No no, file sharing is privacy! Not allowed. Also both SMB implementations are "let's implement a protocol and add security later" nightmare.
> file sharing is privacy

I think the worse blocker is _piracy_. The copyright predators are terrified about people sharing files locally.

They probably meant piracy
> it's time Microsoft, Google, and the various Android manufacturers got their shit together and developed some kind of open sharing system

There is one: Quick Share/Nearby Share. It's supported on both Windows and Android.

Microsoft's Nearby Share isn't the same as Android's Quick Share (formerly Nearby Share). You can download an app to get Google's share feature working, though, but that doesn't fix the problem.
> Writing code is fun, but I can't find much of a downside with Bluetooth here.

Yesterday my son needed to transfer a video file from his Android phone to his school iPad. We tried Bluetooth, but it simply kept failing, no matter what we tried. The devices saw each other and could be paired, but file transfer didn't work at all. We tried sending the same video file to another Android phone, and it just worked on first try.

So, even basic Bluetooth doesn't work in all cases, unfortunately. He ended up recording a video of his phone playing the video... :)

> I don't expect Apple to play nice with anyone else...

This seems to be the problem in our case.

Tonight I'll setup a Nextcloud on our network, this should work properly.

> Yesterday my son needed to transfer a video file from his Android phone to his school iPad.

The iOS version of VLC has a built in webserver you can remotely connect to for file transfers.

You connect to the iPad's IP address with any web browser and then transfer files back and forth.

https://allthings.how/vlc-player-share-files-wifi-iphone-pc/

(comment deleted)
Yes, this is killing me. I have a colleague that told me "on iPhones I can super easily share files to someone else", and I'm like "20 years ago sharing files across devices was a non-issue, because we had STANDARDS (ok maybe 17-18 years ago rather). Sharing files wasn't considered a feature worth mentioning because every phone supported this out of the box (well not exactly, so the feature was having Bluetooth). Tech monopolies prefer to ignore standards (looking at who implements which parts of Matter is pretty hilarious in that regard), and killed a whole range of obvious things in the process.
Is bluetooth not usable anymore?
The average file's size largely increased, bluetooth speed didn't (maybe *=2 with EDR)
Bluetooth caps out at a few tens of KByte/s.

Not very nice when you're trying to transfer an image several MB in size.

KDE connect is my goto for sharing between phone and computer.
> KDE connect is my goto for sharing between phone and computer.

Ditto. KDE connect is flawless, one of the best features.

As much as I hate Apple for their repetitive NIH syndrome, Bluetooth has never worked flawlessly, and increasing filesizes made it increasingly maladapted.
The point was that before FAANGs, people were talking together and created interoperable standards. In 2006, Bluetooth for file transfer between phones was pretty nice. Standardizing file transfer in 2010 would have given us file transfer over WiFi P2P, and people would actually use it, and it wouldn't be shipping broken on most devices.
Bluetooth is really slow, that's the main drawback.

WiFi Direct is a really great technology but unfortunately it is as simple as its name implies: it's a peer-to-peer version of WiFi. It establishes a connection between two devices, but you need to do everything else (like figuring out how to send files over the socket) yourself.

There are plenty of cross-platform apps that implement WiFi Direct file sharing though.

What I find weird is how easy to use is (was?) Wi-Fi Direct between Android phones and how this isn't a common thing in Windows or other non-mobile OSs.

I have just Discovered Windows 10 have Wi-Fi Direct if you have both Wi-Fi and Bluetooth adapters, and it's as easy as enabling it and right clicking a file to share it. It's a shame this isn't common knowledge nowadays

KDE connect handles this pretty well.
I typically just run a

python3 -m http.server

command from a command line on whatever device I need to send from and then hit it on a webpage. You can run that on an iOS device even with something like Libterm

Amazing, what a lovely tip. Thanks!
In an ideal world any hosts have an IPv6 global and any human have at least a domain name, with relevant subdomains for hes/shes own devices, a simple thing also offered to non technical users by ISPs in the form of a homeserver-router like the real one they offer but not crap, without violation of GPL, without doing their development just to milk data from users etc.

So in an ideal world anyone can share files directly, can serve their own blog, participating in decentralized socials like Usenet, exchange messages in a decentralized manner like emails (not to be confused with WebMails frontends common today), having direct IP2IP (well, personal domain to personal domain) VoIP calls with or without video and so on.

Such ideal world is there technically, it's not utopia technically but it's utopia socially in a society who have mostly chosen ignorance for the many and abuse of their ignorance for few.

Unfortunately I think it would take governments to start waking up and treating internet access as a public utility. Even then they'd have to compete with ad companies to get the right people to do the job.
I think governments like the large availability of OSINT data from big tech, in a technically sound IT such giant collections would be far harder and limited... Similarly the effectiveness of modern propaganda would be far limited.

The power of IT is the power to store, analyze, craft, manipulate information, if you give it to the most than the most can be Citizen not just slaves...