The Big Web is the web of the Googles, the Facebooks, and the Twitters.
It is a world owned, controlled, and beholden to Silicon Valley billionaires and their trillion-dollar corporations.
On the Big Web, you do not own your own place, you rent it (usually in exchange for “consenting” to the violation of your privacy and other human rights).
Now image the exact opposite: A Small Web where you own and control your own place on the Internet.
Imagine a web site designed and built to serve just one person: you.
(As opposed to sites and apps that serve you to Silicon Valley corporations.)
Imagine, furthermore, that these sites (which we call “Small Web places”) make it as easy for you to be private as it is to be public. Image being able to follow the public posts of your friends and communicate with them privately using end-to-end encrypted messaging.
Finally, imagine that setting up such a Small Web place can be done by everyday people who use technology as an everyday thing without requiring any specialist technical knowledge to set up or maintain. (And that those who want to tinker a bit more can easily run their own Small Web place on a tiny single-board computer attached to their home router.)
To build such a fundamentally different web, we cannot use the servers and frameworks of the Big Web. They have the wrong success criteria (manipulating people for profit) and that’s reflected in their core assumptions (that servers will have thousands of “users”, for example) and in the resulting complexity. Servers and frameworks that Big Web companies make available are designed to perpetuate the Silicon Valley model.
That said, we also cannot (and don‘t need to) rebuild the entire stack from scratch.
What we need are tools designed with needs of the Small Web in mind while taking advantage of the fundamental building blocks of the Web that existed prior to – and apart from – Silicon Valley’s venture-capital-funded corruption of its early ideals.
Kitten is the one such tool that’s under development.
Kitten is a Small Web server and platform for creating Small Web places using plain old HTML, CSS, and JavaScript that you can progressively enhance using htmx and alpine.js. (You can also use any other JavaScript library you like, those are just the two that Kitten supports natively and streamlines the developer experience for.)
Kitten installs with a single command on Linux and macOS (and soon on Windows), has no build step, has live reload, automatically provisions TLS certificates for localhost and deployment (the latter using Let’s Encrypt), features a built-in in-process JavaScript database (JSDB) and has support for public-key encryption and authentication baked in to make it trivial to implement private features and end-to-end encrypted messaging.
(Internally, Kitten’s runtime engine is Node.js so you can use all Node.js features and npm features but you don’t need to have Node.js installed on your system for it to work. It downloads its own Node.js binary at install time.)
In addition to being purpose-built for creating Small Web places, Kitten can also be an excellent tool for education to teach the basics of web development (HTML, CSS, and JavaScript) without getting caught up in complicated build systems and complex frameworks.
Finally, Kitten is free and open source and being developed at Small Technology Foundation, a tiny two-person not-for-profit based in Ireland building everyday tools for everyday people designed to increase human welfare, not corporate profits.
In this talk, Aral will introduce the Small Web and show you how to create a basic Small Web site from scratch. If you have your laptop with you, feel free to follow along with the live coding demonstration.
Let’s roll up our sleeves and build a different kind of web: one that’s owned and controlled by people, not corporations; by you and me, not a handful of billionaires in Silicon Valley.
Links:
What is the Small Web? (https://ar.al/2020/08/07/what-is-the-small-web/)
Small Technology Foundation (https://small-tech.org)
Kitten: https://codeberg.org/kitten/app
JSDB: https://codeberg.org/small-tech/jsdb
htmx: https://htmx.org/
Alpine.js: https://alpinejs.dev/