Technology Stems from Humanity (Notes on Svelte Society: Frequently Asked Questions)
When researching a new library, I also research the person behind it (not all of them, of course, or a single npm install would take a lifetime to inspect). That’s because the creators of technology, libraries, and frameworks are human beings—flesh and blood, with real feelings.
Technology is ultimately built to serve humans, so understanding an author’s underlying motivations—or even their story—helps in understanding the framework itself.
Rich Harris, the creator of Svelte, was originally the author of Rollup, as well as an earlier, lesser-known project called Ractive.js. Looking at his GitHub repositories, you can tell he’s someone who loves building things from scratch. He works at The New York Times as a Graphics Editor; originally a journalist by trade, he taught himself programming to create interactive data visualizations, and eventually went on to build Rollup and Svelte.
Here are some notes on questions Rich Harris answered at Svelte Society. I highly recommend giving it a listen. The notes here might be a little different from what you’d typically expect, though.
The best way to learn a technology is just go ahead and build stuff with it and then as you get stuck, figure out how to ask good questions
The best way to learn a new technology is to build something with it, and when you get stuck, figure it out or ask good questions.
The examples on the official website are quite easy to understand, and there’s a REPL right beside them so you can get hands-on and try things out yourself.
I don’t use component library for the same reason that I don’t buy pasta sauce in jars I like making thing from scratch.
This response was in answer to: “Which component library do you use?”
Being the ultimate do-it-yourselfer, he naturally writes his own from scratch, using a humorous analogy: “I don’t use component library for the same reason that I don’t buy pasta sauce in jars I like making thing from scratch.” From this, it’s not hard to see where the handwritten parser in Svelte’s source code came from; if you compare it with early commits, it hasn’t really changed all that much.
Router: This makes people really unhappy which I understand. If I walk into the farm and see there’s 19 different kinds of shampoo I’m very unhappy. I want 2 kinds of it. Cheap and good. Ideally I want them to be the same kind.
Because Svelte doesn’t have an official router (unlike React with react-router or Vue with vue-router), Rich Harris’s response was that routers serve different scenarios, and everyone has different opinions.
There are actually many router implementations built on Svelte today. On this, he expressed: “I know this makes people unhappy. If I walk into a store and see 19 different kinds of shampoo, I’d be very unhappy too; I just want two kinds—cheap and good. Ideally, I want them to be the same kind XD.”
TypeScript support
Svelte’s TypeScript support isn’t great yet, but work is currently underway.
I’m just bad at delegating and letting other people take ownership of projects like Sapper.
Because he isn’t very good at delegating work to others, development on Sapper has been somewhat slow, and he seemed to want to step back and take a bit of a break from open source this year.
I started svelte for myself. It’s the framework I wanted to exist in the world. I get far more joy from discovering that someone who’s new to development has decided to pick up svelte and is building things that they didn’t think that would be able to build.
This response was to the question: “Is Svelte’s goal to reduce the complexity and myriad of abstract concepts people usually have to learn when dealing with frontend frameworks?”
He mentioned that while seeing Svelte adopted by companies like React and Vue are is great, he gets far more joy from discovering newcomers to development who picked up Svelte and are building things they didn’t think they’d ever be capable of building.
From this, it’s easy to see why Svelte’s syntax is so clean: it does as much as possible at compile time so you can develop freely at runtime. It avoids the abstraction of a Virtual DOM and keeps everything as simple as possible.
I love this philosophy. I also think welcoming more people from non-technical backgrounds into web development is truly exciting—it opens up a world of possibilities.
If you’re afraid that these newcomers will do better than you and take your job, it only proves that your edge was built on information asymmetry rather than genuine, accumulated expertise. It serves as a good reminder for professional engineers to keep learning and growing.
Can I give you money? It’s really heart-warming. But it’s always a difficult topic. None of us who work on the project do so for any reason other than that we want to. And there’s always a fear that getting money involved on open source could have a weird effect on our personal incentive and motivation on working on this project. In a way that you know maybe isn’t best for the community. Thank you for offering as money but we don’t really have a way to accept it.
This is a common dilemma in open source software. Bringing money into the picture can easily shift priorities. Svelte itself is built through the hard work of many unpaid contributors. While financial support is wonderful, under their current direction, they don’t really have a way to accept it.
I think this perspective is admirable—after watching this, I became a total Rich Harris fanboy.
At the same time, I want to emphasize that open source shouldn’t be taken for granted as free by default, nor does talking about money mean it ceases to be open source. You can make money from open source—Evan You, the creator of Vue, has done an incredible job with this. When resources are available, more people can afford to contribute and commit to creating better software that gives back to society; it’s all interconnected. It just feels like many people are shy about talking about money or afraid to ask for it. But often, if you don’t actively ask, the world won’t just hand it to you. Perhaps more developers will take the indie hacker/developer path in the future, and I’m really looking forward to seeing how that develops.
You presumably spent a considerable amount of time and energy on building svelte because you thought that there must be an alternative to virtual DOM Are there any other things in computer or in society where you think we are trapped in a local maximum for years or decades?
This is a fascinating question. The author created Svelte because he saw the Virtual DOM and wanted to challenge the status quo. The question also asked about his thoughts on other areas—are there specific technologies or societal paradigms trapped in a local maximum?
Rich Harris replied that HTML itself was originally designed to display hypertext; if we were to redesign the web from scratch in this era, we might come up with an entirely different language or design approach.
He also mentioned that in modern society, capitalism and Marxism might also represent forms of a local maximum.
If you get into the habit of thinking in terms of local maximum you start seeing everywhere.
Perhaps it’s time for us to pause and reflect: what things have reached a local maximum where we could be doing much better?
Related Posts
- Recreating My Room with Three.js Using React Three Fiber, I brought my real room into the browser—turning physical objects into an interactive table of contents, and using spatial memory to tell the story of my life and work over the past few years.
- Things to Keep in Mind When Using Images in Frontend Development Expanding on Jake Archibald's article, this post organizes how modern responsive images should be written: why width/height are still necessary, when to use CSS aspect-ratio, how to choose between AVIF and WebP, and using picture/source/srcset for art direction on mobile devices.
- CSS field-sizing — Auto-resize Form Elements with a Single Line of CSS Previously, auto-resizing a textarea required listening to scrollHeight in JavaScript. With CSS field-sizing: content, a single line replaces it all, supporting textarea, input, and select. This article covers the pain points of older approaches and how to use field-sizing.
- Make Your Link Underlines Look Better: text-underline-offset By default, underlines sit very close to the text. Some designers dislike this look, and personally, I don't think it looks great either.