Alex Feyerke: I have a Dreamcode: Build Apps, not Backend
Alex Feyerke (@espylaub) was speaking at Side View about no backend, these are my notes from his talk.
I had to then use PHP and MySQL and then it went down the drain and I haven't looked at it sinice.
Don't worry about the backend - at the moment we have to be a both ends developer. You can't be good at everything.
What do apps need from a backend?
- Sign up users
- Admin users
- Save & load data
- Share that data
- Send an email
- Let them pay for it
Web isn't rocket science - don't have to deal with the real world.
Why can't we sign up a user the same way we use jQuery? account.signUp('username', 'password')
We don't build our own version control, we get someone else to do it. Why can't the backend just be an API? It's still there but we don't have to build it.
Storing data should be as simple as passing in JSON. Send email from the browser should be possible, sending email isn't an interesting problem - it should just be an API. Abstract complex backend operations into a REST API.
Setup should be a simple installable package that is very quick to get going. Very little config, perfect for rapid prototyping with real data behaviour and data. Can work out if an idea is good before needing infrastructure.
Backends should be swappable - if the API is the same then it doesn't matter where or how it's hosted. Users can host their own data which scales very well and privacy is built it.
The web isn't doing too well, there's too much bullshit. Google, Facebook, Apple &c. are single points of failure. The web should be more distributed, decentralised. Everyone should have their own server, it should be like your phone - maybe even your phone.
With nobackend:
- Disribute data and services
- Enhance data security
- Infrastrucural independence
- Empowers people to own their own software
- Build and run your own software
decentralize.it - working on this issue. Has to compete with the likes of Facebook and Google and they spend lots of time and money on experience and design. We need to make it that easy. We need better tools that make it easier to use the web, the browser is the world's most widly distributed runtime.
We are used to the high barrier to entry. To most people the web is impossibly hard, they will take the path of least resistance which is Google or Facebook. The web is made by professionals, uploading things to the web isn't making it. One of the greatest feats in human history is being reduced to an interactive lifestyle magazine that spies on you.
Hypercard led to lots of small apps that would never have been made if professionals had bee making them. It empowered people but the hardware was limited - now everyone has the tools in the web browser. We need to make this more accessible and not look down on people who don't know what we know.
Dreamcode starts with writing the code you want to write and then build the API that matches that. The target is people who can cut and paste jQuery code. We need to be designers, not visual designers, but understanding principles of experience design. If you do something unintuitive then time gets wasted every time it is used. Trickle down technology doesn't work. Open is good but the barrier is too high.
It is our job and power to make the web more accessible to others. The more people that can make the web the better it is for our species.