Sign in

rich harris

@rich-harris.dev
21K followers 749 following 2K posts

my life is derp and i do derp shit

PostsRepliesMedia
rich harris @rich-harris.dev · 16h
it seems we caught the orange wave, which took me by surprise a bit. i didn't think anyone really cared about frameworks any more! warms the cockles news.ycombinator.com/item?id=4992...
Hey everyone, Rich from the Svelte team here. Coordinating all the moving parts for yesterday's launch (last few PRs, doc updates and redirects, CLI release, launch blog post...) turned out to be a bit of a slog so I'll confess I turned off my laptop and went for a beer as soon as it was done instead of sticking around to engage in HN threads and Reddit and so on.

Honestly, I didn't expect the release to generate much conversation at all. There's a lot less focus/interest in front-end frameworks generally these days, for obvious reasons, so I figured the median reaction would be 'oh, the Svelte team are still shipping? good for them' and not much more. It's a joy to see the conversation here whether it's from happy users, or people who prefer different things, or people who have fully outsourced the writing-the-code bit to LLMs and straight up don't care about the underlying tools any more.

Which I totally understand! As framework authors we're very persnickety about the details of the code, so we've been on the slower end of the LLM adoption curve, but even we're starting to delegate more of the work to agents. If you're prompting an app into existence it's natural not to care that much about the particulars. But a question I've seen several times here, and in the zeitgeist more generally — 'in a world of agents why should I care about Svelte vs React vs whatever?' — deserves an answer.

And it's this: your app will be _better_ if you use Svelte. Your JavaScript bundle will use fewer bytes, your server-side rendering will take fewer milliseconds, and your users will reap the benefits: faster, more efficient apps. For all that the agentic revolution has created a huge _quantity_ of software, the _quality_ of the average app stubbornly refuses to budge. If anything, software is becoming less reliable. I think we've all felt that. Using a framework that treats things like accessibility ... [truncated due to alt text limits]
3355
rich harris @rich-harris.dev · 08/09/2026
tag yourself
An exhibit at the Designmuseum Danmark, with hundreds of bottles labeled 'bruised ego coping', 'fear of commitment dissolver' and so on
371
rich harris @rich-harris.dev · 12/08/2026
160
rich harris @rich-harris.dev · 15/07/2026
some personal news: i am now middle aged
A pamphlet issued to new members of the Park Slope Food Coop, containing 'rules and best practices'
51080
rich harris @rich-harris.dev · 11/07/2026
this is a great piece, and i'm not just saying that because i'm quoted in it
“Until very recently,” Rich Harris told me, “the idea that you would effectively pay rent to a Silicon Valley company for the privilege of being able to write software would have been considered completely absurd.”
414015
rich harris @rich-harris.dev · 09/07/2026
so we agree that react is not the best framework
the ITYSL 'oh my god he admit it' sketch
0210
rich harris @rich-harris.dev · 02/07/2026
lol it's so much simpler than that — the ALS error is happening in the browser. you need to opt in to remote functions. the only mystery here is why you're not seeing a warning in the terminal, I could have sworn we had that. Opened github.com/sveltejs/kit...
vite config with the `experimental.remoteFunctions` option enabled
210
rich harris @rich-harris.dev · 27/06/2026
how your email finds me
me and my buddy jeff climbing in the gunks
81851
rich harris @rich-harris.dev · 26/06/2026
huh britmonkey.com/2020s-politi...
result of https://britmonkey.com/2020s-political-compass/ showing i am most closely aligned with zohran mamdani
6230
rich harris @rich-harris.dev · 25/06/2026
I don't hate it here
Statue of liberty in front of a sunset, viewed from red hook
11052
rich harris @rich-harris.dev · 20/06/2026
The idea that Richard Harris, the MacArthur Park singer, was in the Inbetweeners movie has me cackling
Screenshot of extremely famous actor Richard Harris briefly appearing in model weights for a hallucinated appearance in the Inbetweeners
030
rich harris @rich-harris.dev · 18/06/2026
yeah, you can see it on MDN developer.mozilla.org/en-US/docs/W.... it looks like absolute garbage. amateur hour
a screenshot of the pseudo element that chrome now adds to any element with an `interestfor` attribute. it looks extremely silly
130
rich harris @rich-harris.dev · 02/06/2026
somehow got this on my first attempt, which is also my last attempt — not going to ruin this moment by trying again
https://eyeball.rory.codes with a perfect result
1110
rich harris @rich-harris.dev · 01/06/2026
it looks super cool! i wouldn't want to sacrifice the flexibility of using TypeScript to define stuff, but i can certainly imagine something like this
import { defineEnvVars } from '@varlock/sveltekit';

export const variables = defineEnvVars();
140
rich harris @rich-harris.dev · 30/05/2026
the single biggest criticism svelte has received over the years is 'you can't have multiple components in a file'. so we fixed it! by making them unnecessary. with declaration tags (svelte.dev/docs/svelte/...), snippets/each blocks/etc can have their own state: svelte.dev/playground/a...
a screenshot of https://svelte.dev/playground/aaac159f0f73466bb3859dfed6792cab?version=latest, demonstrating state-in-snippets
1120118
rich harris @rich-harris.dev · 28/05/2026
my alter ego, Ripped Chard
AI-generated image of a chard plant with a physique almost as good as my own
1120
rich harris @rich-harris.dev · 28/05/2026
what
Google answering "how many ps are in Richard" with "There is exactly 1 "p" in the name Richard (Ripchard is not a word)."
151224
rich harris @rich-harris.dev · 23/05/2026
not _exactly_ — we actually warn for a closing solidus on a non-void element, because that's where the ambiguity lies
the Svelte playground, showing a compiler warning for a <div /> because the closing solidus is ambiguous
030
rich harris @rich-harris.dev · 19/05/2026
well played, @wired.com www.wired.com/story/everyt...
on the left, from wired: "When you ask the search box questions like, “What is a black hole?” or “Are Google AI Overviews devastating the journalism industry,” it will respond with more contextual answers or use generative AI to create images or short video clips that help explain the concept."

on the right, google: "Google AI Overviews are devastating the journalism industry by aggressively siphoning off traffic and ad revenue. By summarizing news directly at the top of search results, AI features cause click-through rates to plummet."
0856
rich harris @rich-harris.dev · 16/05/2026
ran the Brooklyn Half today. little slower than two years ago, but to be fair the benchmark was running on older hardware this time. now to eat something really stupid
Brooklyn half results - finished in 1:57:23Hammock time
81130
rich harris @rich-harris.dev · 07/05/2026
The post you linked above suggests that a data center uses less than 0.1% of the existing deficit. You could destroy every data center in the state and I'm not sure it would change a thing (except presumably make the state poorer, which probably _would_ reduce water usage)
Water for the data centre will come from the Valle de San Juan del Río aquifer, which already has a deficit of 56.8 billion litres, a water commission analysis showed. 

Asked about how much water was being allocated to the 20 data centres in the state, Del Prete said he does not "have the data because it is not in my power to request it", but equated their water consumption to what a restaurant uses in a month.
100
rich harris @rich-harris.dev · 07/05/2026
He claims that the evidence we have to date, while spotty, suggests that data centers do _not_ devalue nearby properties
Data center effects on nearby land is really understudied. The few studies that have been done seem inconclusive, and have only focused on the effects of home prices specifically. The most thorough study looked at home sales in Fairfax, Loudoun, and Prince William counties near data center alley in 2023. The found that homes closer to data centers sold for higher prices, and their model (controlling for 13 factors that usually push up home prices) explained about 87% of price variance. The authors guessed that maybe this was because data centers cluster near the same infrastructure that makes housing valuable, and that a lot of data centers are tucked into places residents don’t even notice. The authors warned against generalizing too much from this study, especially in looser housing markets.
100
rich harris @rich-harris.dev · 06/05/2026
It's not just standards of course. Recent example: Chrome shipped an 'automatic workspaces' feature that no-one wanted, without outreach, that causes considerable (avoidable) inconvenience and confusion. The Vite plugin by which you use (or silence) this feature? Abandoned.
github issue in which I modestly propose that maybe this feature could have been implemented in a less stupid wayAn unmerged PR that makes vite-plugin-devtools-json usable with modern Vite. Google to developers: go fuck yourself
1231
rich harris @rich-harris.dev · 06/05/2026
I personally more or less gave up on trying to engage with standards processes after this interaction, in which the quiet part was said out loud: Chrome is not beholden to other implementers, and no-one _other_ than implementers has any influence at all. So why bother?
a screenshot of a tiresome github thread in which a googler falsely claims to have taken part in a discussion, then locks the discussion they didn't take part in because they weren't personally swayed by it
4437
rich harris @rich-harris.dev · 29/04/2026
archive. criminally underrated band
Archive playing at the music hall of WilliamsburgArchive playing at the music hall of WilliamsburgArchive playing at the music hall of WilliamsburgArchive playing at the music hall of Williamsburg
2280
rich harris @rich-harris.dev · 23/04/2026
actively incentivising larger dependency graphs is bad for the ecosystem
Norman Rockwell free speech meme
2792
rich harris @rich-harris.dev · 17/04/2026
svelte is officially Enterprise Ready™. tell your CTO on linkedin www.thoughtworks.com/radar/langua...
ha ha! svelte!
919417
rich harris @rich-harris.dev · 13/04/2026
me and the other non-car-perverts in the neighborhood group chat are doing our bit! unclear so far if we're outnumbered
People in a whatsapp chat debating the merits of the grand army plaza redesign
100
rich harris @rich-harris.dev · 13/04/2026
sure is!
a screenshot of two Svelte components, showing that exports from a component instance are typed on the other side
1180
rich harris @rich-harris.dev · 13/04/2026
IT BEGINS
greggs sausage rolls. undefeated
130
rich harris @rich-harris.dev · 12/04/2026
about to fly to london for @cityjsconf.bsky.social. you should come! unless you don't write javascript for a living in which case you probably shouldn't anyway here's a 20% off link ti.to/cityjsconf-l...
promo card for cityjs with discount ticket link — https://ti.to/cityjsconf-london/cityjs-london-2026/discount/JSMONTHLY2026
3506
rich harris @rich-harris.dev · 10/04/2026
yo dawg
080
rich harris @rich-harris.dev · 06/04/2026
oh my god wouldn't normally dunk on someone for technical illiteracy but this moron just KEEPS DOUBLING DOWN
that's not how any of this works
0180
rich harris @rich-harris.dev · 01/04/2026
huh! this is the translation I get when I read in Firefox — much clunkier prose, but at least no howling inaccuracies. I wonder what underpowered model Chrome is using for this
a screenshot of the article translated by Firefox
020
rich harris @rich-harris.dev · 01/04/2026
Beautiful work! I spotted one small thing - it says they will walk on the moon?
Screenshot of the Artemis 2 story linked above
120
rich harris @rich-harris.dev · 19/03/2026
gah firefox :(
180
rich harris @rich-harris.dev · 17/03/2026
wanted to just reply with this meme but it actually looks pretty neat
the mean girls meme except instead of fetch it's nostr because kevin will not shut up about nostr
160
rich harris @rich-harris.dev · 14/03/2026
Yeah it's arguably just a question of preference. I just know that if I saw this code my first instinct would be to remove the loading UI — given the types, how could {props.data} trigger the fallback? — and it would annoy me to realise that I had to look at every callsite to know if it was needed
function Inner(props: { data: string }) {
  return <Loading fallback={<div>Loading inner...</div>}>
    <div>{props.data}</div>
  </Loading>
}
230
rich harris @rich-harris.dev · 14/03/2026
Interesting post! I disagree :) You say "if async is only discovered during side effects, it’s already too late", which is true. The solution is to update async stuff first, _then_ run side effects once resolved. Repeat until settled. So if I have something like this, and `slug` changes...
let { slug } = $props();

let url = $derived(`/api/posts/${slug}`);
let post = $derived(await fetch(url).then((r) => r.json()));

$effect(() => {
	console.log(slug, post);
});
1130
rich harris @rich-harris.dev · 13/03/2026
many such cases! Though this one wasn't quite as bad as the other day when I asked an agent to 'make the tests pass' and it did this
A diff that wraps a test assertion in an if block whose condition is identical to the assertion
81083
rich harris @rich-harris.dev · 26/02/2026
kylo ren yelling MORE
0110
rich harris @rich-harris.dev · 30/01/2026
People on bsky talking about the Melania 'documentary'
110
rich harris @rich-harris.dev · 24/01/2026
I just want to know which PM at google thought 'you know what people want when they've been at a restaurant for the last 45 minutes? An out of date photo of the menu that's directly in front of them, from which they've already ordered'
A notification inviting me to view the menu of the restaurant I just had breakfast at
5772
rich harris @rich-harris.dev · 22/01/2026
I imagine I would agree with this, but guess I'll never know... Gruber doesn't get to have an opinion on design as long as his site looks like this with no ability to zoom in
A column of unreadably small text on daring fireball
370
rich harris @rich-harris.dev · 15/01/2026
anakin/padme meme

anakin: we're on the front of hacker news
padme: because we shipped something good?
anakin:
padme: something good, right?
51756
rich harris @rich-harris.dev · 13/12/2025
9th race done. Guess I'm running a marathon next year 😬
me at the NYRR Frosty 5K, ringing the 9+1 qualifiers bellRace results - 5K in 23:05
7960
rich harris @rich-harris.dev · 25/11/2025
the AbortSignal approach feels correct. you can make it simpler with `getAbortSignal` (svelte.dev/docs/svelte/...):
<script lang="ts">
  import {getAbortSignal} from 'svelte';
  import type {PageProps} from './$types';

  const {data}: PageProps = $props();

  $effect(() => {
    const signal = getAbortSignal();
    data.email.then((email) => {
      if (signal.aborted) return;
      localStorage.setItem(email.id, "read");
    });
  });
</script>
0110
rich harris @rich-harris.dev · 21/11/2025
you might think 'i'll just use a multipart parser'. the remix boys have a good one (github.com/mjackson/rem...). but it's not really a solution, because you can't validate inputs until you've got all the parts, which defeats the object. and it still buffers each file — no incremental processing
README from https://github.com/mjackson/remix-the-web/tree/main/packages/multipart-parser
4100
rich harris @rich-harris.dev · 05/11/2025
blinking man meme
0120
rich harris @rich-harris.dev · 05/11/2025
on behalf of those of us who can't vote here: thanks, nyc
People celebrating zohran's win at an election night watch party
71954