AMA about indie web dev (November 2025 edition)
submitted by
💻
I’ll start answering questions at 12pm Pacific Time, so AMA! Topics for discussion:
- “Vanilla” frontend techniques
- Web components
- CSS architecture/design systems/etc.
- AI-free coding practices
- Frameworks / site generators
- Hosting
- Ruby (keepin’ it weird 😉)
- Web platform news
- Fediverse
- What I had for breakfast
- “Wick Is Pain”
- anything else I’m forgetting?
I look forward to your questions and comments, and thanks for using Human Web Collective!
Human Web Collective
What are you looking for in design handoff? Do you prefer Figma and Penpot, etc. files or working with a designer who is adept at HTML and CSS prototypes, even if it isn’t always production ready?
I’m trying to learn to be a better designer.
That is a fabulous question.
The biggest dilemma by a long mile working with designers on a handoff is when real-world content needs clash with the pristine beauty of design mockups. And as someone who has worked on the design side myself over the years, I can totally screw this up as well.
A few examples:
I could go on and on. The solution to a lot of this stuff is to recognize there will need to be some trial-and-error between work on content/UX and design, and the more you can anticipate these problems ahead of time, the more likely you can avoid the obvious footguns.
Edit: I realized I didn’t actually answer your main question. A little HTML/CSS knowledge is good, but I don’t mind working with Figma or any other design tool really. I worked on a big design system project a while back and all the component design work was done in Figma. But it helped a ton that the design tokens for colors/fonts/spacing/etc. in Figma matched up with tokens we implemented in the CSS as variables. As long as those sync up reasonably well, it makes the process go smoothly.
As a Fediverse/ActivityPub enthusiast, what do you make of ATProto and the various projects going on over there?
I’m not shy about saying I’m not a big fan of Bluesky, and I think ATProto has made lots of big promises it has been very slow to deliver. But given a choice between Bluesky/ATP and proprietary corporate silos, obviously the more open systems are preferable.
I’m bullish on fedi long-term, because I think the incentives between operators of instances (many of them not large) and the people using them are far better aligned. I honestly have no clue how Bluesky will make enough money over the next few years. Enshittification seems almost inevitable. 🤷🏻♂️
What is a good place to learn about how to make things reactive in vanilla JS and web components (with no prior background)
I think the first place to start would be to learn about some of the Signals implementations which are available. Preact Signals (by the Preact team, you don’t need to use it with Preact) is arguably the OG of standalone implementations which got a lot of buzz, but Alien Signals is also a good one. Here’s one of their code examples:
From there, the reactivity in web components piece would come from writing a
render()method of some kind in yourHTMLElementsubclass which references signals you’ve set up and modifies component elements in the DOM. While this is certainly doable in pure JS, you can end up with a degree of boilerplate. To make that easier, I wrote a small library which provides some connective tissue between signals implementations and web components: ReciprocateThank you. I think what I am moreso wondering is if you have any resources on the foundations of reactivity - how to think about it, how to write your code around it.
I’m not quite sure exactly what you’re asking for, but I think Ryan Carniato’s explanation here around what signals are is helpful. The thing they enable you to do is construct a data graph with dependencies, without having to put much thought into the mechanics of all the tracking (because your effect or computed functions autosubscribe to any signals you use). This is really nice as a parallel to web components/DOM because that’s an object graph (which is a kind of data graph all its own).
So you your object graph can participate in a data graph. Each component can manage its own “internal” signals as part of its internal lifecycle, but you can also create signals external to any one component and now you have shared state which can live at the “page” level or some subsection of your page. This is sort of like “contexts” in React, etc., but way easier to reason about.
Ryan’s quick summary:
https://www.youtube.com/watch?v=l-0fKa0w4ps
👋Anything planned for upcoming courses? Loved CSS Nouveau.
Thank you, I appreciate hearing that! CSS Nouveau was a labor of love for sure, and while I did get a little return on investment, I know that another course would also be mostly a labor of love. I don’t think course writing is my strong suit, it feels more worthwhile in the long run to keep working on OSS projects. But it’s definitely a priority for me to continue writing mini-tutorials for That HTML Blog, whether that’s for projects I work on or other libraries/frameworks/web APIs.
The last few months’ posts on That HTML Blog have been very enlightening to me, almost like a crash course in vanilla web techniques. I love the mini-tutorial format.
Thanks, good to hear!
C’mon, don’t be shy! AMA 😊 …or just say hi! 👋
How do you cope with the flood of AI-generated content that we find ourselves in? It’s tough when on some days I’m reviewing AI-generated PRs, sifting through AI-generated documentation, cringing at AI-generated images, and even getting AI-generated replies from co-workers. How do you nourish your spirit in the face of this? Whether at work or away from work—open-ended question.
That’s a hard question…I don’t really have a precise answer, but the stuff that’s just content static that crosses my path I try to ignore as much as possible. In the cases where it’s direct “communication” from people you know, I would gently push back via asking as many questions as possible where they need to actually answer you. Like “I’m wondering about this part of the code, why did you use that particular structure/style/naming/etc.?” or “I didn’t quite get the point of your message, can we hop on a chat for a few minutes to go over it?” Just try hard not to sign off on anything which feels merely generated.
For inspiration I’m enjoying listening to music or watching TV where the creators specifically point out that it’s AI-free. Seeing that more and more now, which is awesome!
Yeah, I do my best to ignore or push back asking for clarification as appropriate, but it is fatiguing. It doesn’t help that the pace of work seems to have increased over the past couple of years, adding to the sense of fatigue.