Fission builds on top of the web browser as an operating system, and enables web native apps with additional features that run locally: user controlled files and identity.
Tom MacWright's article, A clean start for the web, introduced a useful distinction: the "document web" vs. the "application web":
Then there’s the “application web”. This started as server applications, built with things like Django and Ruby on Rails and before them a variety of technologies that will live forever in corporations, like Java Servlets.
Backbone.js demonstrated that a lot of these applications could be moved into the browser, and then React and its many SPA-style competitors established a new order for the web – highly-interactive, quite complex, client-side applications.
We don't necessarily agree with a lot of the changes that MacWright wishes for, but we do think that the documentic-centric web and the app-centric web is a useful way to think about the difference between websites that we access through our browsers.
Like an operating system, your desktop or mobile browser now provides common services for the many web sites – and increasingly web apps – that you access every day.
Web Native Apps
At Fission, we're both building on top of features that the browser provides, and adding additional features that can be used by Fission-powered apps.
We call these apps "web native" apps:
- Works in all browsers, including mobile
- Doesn't need browser plug-ins
- Makes use of advanced web APIs in the browser, including on mobile
- Has user owned data and storage
- Gives users control over app permissions
- Can function local-first, and in many cases, offline
Web native apps are designed to run on the web, taking advantage of all the capabilities your browser has to offer, as well as native, local capabilities like identity, storage, and computation.
We're also very inspired by Ink & Switch's research findings on local-first software, and continue to build on and implement the concepts they outline.
One of the things that smartphone apps do is ask permission: can I use your camera? Can I access your files? Can I see your photos? For security reasons, these same sort of permissions are making their way into modern desktop operating systems as well.
With a regular web app, we don't get any of that. Or, even worse, we're clicking through an agreement for trackers and cookies to be used!
As a user, signing up for a hosted web app means agreeing to some terms of service. You're using an app that is running on someone else's server, where your data is stored. At best, you've got an export function, and hopefully a lowest common denominator format that you can import somewhere else.
Want to work with a batch of your images? First step, upload them all to a server. And hope that you can get export them later. Or that the developer has backed up those files in case something goes wrong. And, that the developer hasn't made any mistakes around security and privacy.
On our smartphones, we feel more in control. Apps ask us for permission. We can attach three or four different apps to our photo library, and switch between them, all the while having all of our photos available to us.
That's how we've built Fission's web native apps. Each app asks for permission, gets its own space to write files to. Everything is encrypted, and neither Fission nor the app developer can see your files without permission.
I'll quote MacWright again:
There was a time when we could install applications, give some sort of explicit agreement that something would run on our computers and use our hardware.
Using a web native app is more like installing an app. It uses your local identity, your files, and in many cases can even run offline.
It is using your browser as an operating system.
Web Native Apps with Fission
Fission is building an app hosting marketplace for developers and users that supports web native apps.
For developers, they can design a user app using only front end and design skills. The web native app can be installed by 10 or 10,000 users, just like mobile or desktop software. Because the app is running on the user's computer, you can focus on finding new users and adding new features, rather than having to learn DevOps or server scaling. It's the fastest way to start sharing – and soon, selling – your app on the web.
Users create a secure identity in their browsers. Every Fission account is linked to a file system, available in any browser. Much like an open source iCloud, users give permissions to apps, and can access their files from anywhere. Users can browse their file system, both public and private, and mix and match which apps they use, just like they're used to with mobile and desktop apps.
Our code is open source. We're building on top of commons infrastructure, and we're aiming to be a federated constellation provider rather than a cloud provider.
Check out the latest Webnative App Template Demo for an all-in-one starter kit for testing and building your own Webnative powered app.