FISSION - BUILDING WEB NATIVE APPS
IPFS COMMUNITY CALL MARCH 2020
A presentation at IPFS Weekly Community Call in March 2020 in by Boris Mann
IPFS COMMUNITY CALL MARCH 2020
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
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
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
Like native apps for the web: self contained, user-controlled data, client-side compute, etc. + Compute Identity Storage
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
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
NEXT UP • Public/Private Key based accounts • Accounts can add Apps, Apps can have Domains — APP.fission.app • Encryption • Web Login • Fission File System
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)
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
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
FISSION DRIVE • Preview release works with any public IPFS files • Coming: • Private files • Password-less login
FISSION DRIVE
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
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
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
DISCOURSE • Discourse plugin: fission- suite/discourse-ipfs-filestore
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
G E T S WAG ! ! ! swag.fission.codes