Fission - Building Web Native Apps

A presentation at IPFS Weekly Community Call in March 2020 in by Boris Mann

Slide 1

Slide 1

FISSION - BUILDING WEB NATIVE APPS

IPFS COMMUNITY CALL MARCH 2020

Slide 2

Slide 2

W H AT I F F R O N T E N D C O D E WA S A L L YO U NEEDED? • Front end is never going away • Browsers keep getting more powerful • New public infrastructure • Rise of edge computing

Slide 3

Slide 3

WEB APPS ARE HARD • Multiple specialities = big teams & more coordination • Front End • Back End • DevOps • Lots of boilerplate • Data security and access control are hard • Deployment in 2020 is super complex

Slide 4

Slide 4

WEB NATIVE APPS • Integrated framework for self-contained “web native” apps • Hosted services for a batteries included experience • Convenience, deployment pipelines, “it just works” • Features for Developers • User Accounts with Data Privacy • Passwordless Login & Authentication • Modern App hosting, DNS, CDN • Access Control & Encryption

Slide 5

Slide 5

Like native apps for the web: self contained, user-controlled data, client-side compute, etc. + Compute Identity Storage

Slide 6

Slide 6

W E B N AT I V E 🚀 build an entire app while offline on a plane, create the first user account locally, and have it be “deployed” by connecting to the Internet when you land • Should work in all browsers, including mobile, without plugins Global Storage Models/DB Packages PubSub Event Sourcing Deploy / Host DNS ID & DID Digital Scarcity • You should be able to ⚙λ 🔐 Payment Ownership Revokable ACLs Time Verifiability Portable Compute WEB NATIVE Static Assets 💻 Front End 🏢 FaaS Local Compute MPC

Slide 7

Slide 7

B U I LT S O FA R • Web API • RESTful API for IPFS • Heroku Add-on • DNS Automation • CLI • Devs install IPFS locally • Signup, login, can all be done in the CLI • fission up Go try it! guide.fission.codes

Slide 8

Slide 8

NEXT UP • Public/Private Key based accounts • Accounts can add Apps, Apps can have Domains — APP.fission.app • Encryption • Web Login • Fission File System

Slide 9

Slide 9

IDENTIT Y • Built on public-private key cryptography • WebAuthN now widely supported in browser (including mobile) means passwordless login • W3C is standardizing Decentralized IDs and Verifiable Credentials • JWT Auth and macaroons • More: whitepaper.fission.codes/identity (we probably shouldn’t call this identity, rather authorization + authentication)

Slide 10

Slide 10

FISSION FILE SYS TEM • Store the current DAG hash in DNS, eg. boris.fission.name • Default user file tree, encrypted except for Public folder • Docs • Images • Music • Apps • Shared • Public

Slide 11

Slide 11

FISSION DRIVE Go try it! drive.fission.codes • Our own app for end users: early adopters and developers • Documents: files, screenshots, photos, music, etc. — dotfiles? • App data: per-app storage under user control — add apps to your Drive, give them permission to access your files, all client-side

Slide 12

Slide 12

FISSION DRIVE • Preview release works with any public IPFS files • Coming: • Private files • Password-less login

Slide 13

Slide 13

FISSION DRIVE

Slide 14

Slide 14

CORE IPFS • fission-suite/get-ipfs: • npm package to load an IPFS instance into a web-page • Like ipfs-shipyard/ipfs-provider, but we use ES6 syntax (and built it around the same time!) • fission-suite/ipfs-haskell • Haskell package to work with local IPFS node or remote through http interface • go-ipfs feature: “ipfs ignore” • We currently manage this in the Fission CLI directly (e.g. .env, .ssh, .fission.yaml are default ignores) • PR in progress to hopefully get this added upstream

Slide 15

Slide 15

INTEGRATIONS • Work with existing Web2 apps • Provide many ways to “ingest” files into IPFS • Make IPFS files re-usable • Cached everywhere • Sync • Manage on desktop

Slide 16

Slide 16

HEROKU + GHOST + IPFS • One click Deploy to Heroku: fission- suite/heroku-ipfs-ghost • Ghost Storage Adapter: fission-suite/ ghost-storage-adapter-ipfs • Uses Fission’s Heroku add-on

Slide 17

Slide 17

DISCOURSE • Discourse plugin: fission- suite/discourse-ipfs-filestore

Slide 18

Slide 18

T H A N K YO U ! Github: fission-suite Discourse forum: talk.fission.codes Install Guide & Docs: guide.fission.codes Discord chat: fission.codes/discourse Technical Whitepaper: whitepaper.fission.codes 🚧 ‘✍ Twitter: @fissioncodes, @expede, @bmann, @icidasset, @dholms on Github

Slide 19

Slide 19

G E T S WAG ! ! ! swag.fission.codes