A mobile browser for desktop

I made a compact power-saving browser. But that's not how it started.

A mobile browser for desktop

I was standing in front of an elevator at work when I first thought of this bizarre question, or maybe more like a riddle:

How can I make an app that doesn't know which app it is at compile time, doesn't rely on local storage, doesn't need an internet connection, but knows exactly which app it should become at launch time, on the user's computer?

Let's backtrack. This question was a semi-answer to another question I had ben asking myself for years

Most apps are web apps. Web apps live in browser tabs. I have one million open browser tabs at any given point in time—most of them 2 or 3 or 5 times! That seems wrong. Why isn't every web app a native app, too? I don't care how it's built. I just want to use macOS the way the macOS designers intended.

The elevator bounced as I stepped in and smashed the 2nd floor button. That's when it hit me.

The app's name is the app's identity. But the name doesn't do anything. What if you made the world's simplest browser by using the app's name as the URL bar. Rename the app "wired.com", and it's a WIRED app. Rename it "Youtube", and now you're good on conspiracies and cats.

Of course this exists. Right? ... right?

At the time, it seemed so obvious that I was dead sure that if I googled it, I'd find page after page of blue links to apps that do exactly this. The only thing was, I didn't know what to google. "Rename app to launch the web site?", "Rename-able app"?

Over the years I've learned that great ideas come with confusion. Why on earth does this not exist? I mean, there are so many smart people out there. What am I missing?

It was a fast prototype to build. In fact, here's a fully functional version of Flotato in 11 lines of SwiftUI:

import SwiftUI
import WebKit

struct ContentView: View {
    @State var url:URL?
    var body: some View {
        Group {
            if let url = url {
                WebView(url: url)
            }
            else {
                EmptyView()
            }
        }
        .onAppear {
            let cleaned = Bundle.main.bundleURL.deletingPathExtension().lastPathComponent
            url = URL(string: "https://\(cleaned)")!
            print()
        }
        .edgesIgnoringSafeArea(.all)
    }
}

Name the app nytimes.com, launch it, and you get this little perfect NYTimes native-like app:

The first wave: What is is this sorcery

The rest was details; grab the favicon and use it as the macOS icon. Allow the user to use the mobile version, and so on. I finished up my prototype, made a quick video and posted it on Twitter, relieved that I was now done with this idea and could move on.

Here's the video from the tweet

And it kind of blew up. My theory is that the video is so weird that people had to watch it, and the Twitter algorithm understood that this must be delivered to more than one million people, asap.

The second wave: We don't care about the naming

Flotato was now on fast track to existence. People were literally ordering me to release this app. Dieter on The Verge wrote up an early review, deeming it "devilry."

I released it. People didn't get it. "How do I open a web page?"

I had to make it easy to create the most common apps. I needed an app store. And it's not the first time I reluctantly played a small part in creating yet another app store that shouldn't have been there in the first place.

To this date I don't know how many actually know they can just rename the app to magically turn it into a new one. Or how many actually distribute the renamed app. And maybe that's fine, the whole thing that started the app is now an Easter egg.

These days, most people use Flotato because it is extremely light (I mean, 11 lines of core code, right?), increases battery life, saves memory and doesn't hog processor time.

I guess that's nice too.

Live on flotato.com