verisimilidude
Joined 14 years ago
Joined 14 years ago
Opus 4.7 made this a practical approach. 4.8 improved it. Fable 5 has improved it more.
Unfortunately, I don’t have anything public to show at the moment. Maybe I’ll blog about the approach some day.
It's definitely possible to take it too far. When most tags in your HTML are custom elements, it creates new readability problems. You can't immediately guess what's inline, what's block, etc. And it's just a lot of overhead for new people to learn.
I've arrived at a more balanced approach. It goes something like this:
If there's a native tag, like <header> or <article>, always use that first.
If it's a component-like thing, like an <x-card> or <x-hero>, then go ahead and use the custom tag. Even if it's CSS only, without JS.
If the component-like thing has sub-components, declare the pieces using slot attributes. There will be a great temptation to use additional custom tags for this, like <x-hero-blurb> inside <x-hero>. In my experience, a <div slot="hero-blurb"> is a lot more readable. The nice thing about this pattern is that you can put slot attributes on any tag, custom or otherwise. And yes, I abuse the slot attribute even when I'm only using CSS, without JS.
Why bother with all of this? I like to limit my classes to alteration, customization. When I see a <div slot="card-content" class="extra-padding-for-xyz">, it's easy to see where it belongs and what makes it unique.
Some of you will likely barf. I accept it. But this has worked well for me.
But! There's still room for expertise. And this is where I disagree about swimming with the tide. There will be those who are uninterested in using the AI. They will struggle. They will hone their craft. They will have muscle memory for the tasks everyone else forgot how to do. And they will be able to perform work that the AI users cannot.
The future needs both types.
But consent is key. Maybe we need regulation that compels companies to disclose these manipulative techniques in digital services. Give people the chance to opt in or out.
But anyone who tries it without really understanding JS is eventually going to have a bad time. It’s important to know how to work with the event loop, how to properly use promises, etc. Server-side JS is a lot more unforgiving than front-end JS when it comes to these concepts.
The hard part is navigating the bureaucracy and building consensus toward a change. This management-craft is where the clever thinking and emergent solutions are found and deployed.
With that said, in my experience, many stand-up formats devolve into some version of "the two most talkative people have a conversation for 30 minutes while everyone else listens". I'd probably get more value out of doing a write-up than sitting through a meeting like that.
It really depends on the health of the stand-ups on the team.
For high-level strategic conversations, I use Fable.
For planning, I use Opus or Sol. Sol is generally preferred; it’s faster, cheaper, and less verbose. But I still find Opus more capable on the most nuanced or complex tasks.
For planned implementation, I use Sonnet.
For one-shot unplanned implementation, I’ll use whatever model seems best for the task. FWIW, I’m increasingly turning to Grok here.
I use Luna all over my workflow for reporting.