Owen Campbell-Moore, one of Chrome's PM's for Progressive Web Apps and new APIs asked the following question, and instantly Surma (that is the only name we know for him) said "Sockets"
@owencm Network connections. Like writing an SSH client as a PWA.
— Surma (@DasSurma) August 12, 2016
I also threw in my two pennies, and Marcos Ceres asked for use-cases.
@annevk @Paul_Kinlan @DasSurma @owencm I'd still be interested in a good list of fun things that people want to build but can't.
— Marcos Caceres (@marcosc) August 12, 2016
So here is a list of Apps that people have told me they want to build to host inside a browser. It includes client apps but also Services and Servers.
Outgoing connections
The TL;DR is anything normally has to proxy and convert web requests via a web server to another host.
- E-mail client connecting directly to IMAP server, POP3, SMTP without a HTTP/WebSocket bridge
- SSH client - to connect to a server without relay
- RDP client
- IRC client - again to connect directly
- FTP client (and other file transfer clients)
- Video Streaming client - connect directly to RTMP server.
- BitTorrent client (needs incoming data too)
- XMPP Client
- Connect to Bitcoin/Blockchain server
- Multicast client (and server) to stream video to everyone on the Network
- MDNS Discovery service to discover local devices
- Connect to discovered device (such as wifi speakers) and configure (via @annevk)
- Connect to a time server
- Direct connect to MQTT server.
- ADB over Wifi - Someone wanted to use Cyanogen's way of debugging their Android device and connecting to it
- Connect to DNS service and query it, was to be used for verifying that a record had been set to prove ownership
- Many games that have multiplayer.
Incoming connections
Mostly the TL;DR here is, a server for everything in the above list.
- IRC server
- BitTorrent client
- HTTP Server for simple local testing.
- HTTP Server to host electron style apps (where the server and client are distinct)
- SMTP service (yes - people have asked me that they want to host this in the browser)
If you have any other examples let me know and I can include them here.
I lead the Chrome Developer Relations team at Google.
We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.
Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.
I love to learn about what you are building, and how I can help with Chrome or Web development in general, so if you want to chat with me directly, please feel free to book a consultation.
I'm trialing a newsletter, you can subscribe below (thank you!)