today is a big day for
@sveltejs
: i've joined
@vercel
to work on it full time!
so happy about what this means for svelte's future. it'll be the same independent, pluralistic project as before, but with Vercel's backing we can get ✨ a m b i t i o u s ✨
Tens of thousands of celebrities, businesspeople, musicians, models, porn stars and 'influencers' bought millions of fake Twitter followers, some of which had stolen the identities of real people. This is the most fun I've had working on a story in a while
removing types from your own code is clownish, epically misguided behaviour, but whatever — to each their own. removing types from a library THAT OTHER PEOPLE HAVE TO USE, however, is just user-hostile dickwaddery
"So farewell, TypeScript. May you bring much rigor and satisfaction to your tribe while letting the rest of us enjoy JavaScript in the glorious spirit it was originally designed: Free of strong typing."
TIL Prettier is considering making tabs the default in 3.0. This is huge — it would make an entire set of programming languages more accessible (if you're somehow still pro-spaces, read this comment to instantly convert), and, more importantly, vindicate my personal preferences
every day, i have several dozen interactions with software that is completely broken. it's not usually quite as bad as this, but this also isn't an outlier. nothing in the digital world fucking works.
as an industry, we have completely and utterly failed. we're a joke.
i'm going to need to write a blog post on this topic, but this is a deeply under-appreciated fact about web dev, and one of the reasons native apps tend to feel more robust than web apps. as someone who frequently amtraks through connectivity dead zones, it resonates deeply.
Let's say your Pulitzer Prize-winning colleagues have unearthed new tax information about the president, and need you to make a bar chart to illustrate their findings. Bar charts are easy, right? But there's a catch.
what happens when
@trueadm
joins your team
(and the performance isn't even the most exciting part! svelte 5 is going to be radical and i can't wait to share more)
holy shit!
@sveltejs
is the number one framework in terms of both interest (as per last year) and satisfaction (overtaking React)
thank you so much to everyone who has helped us shake things up — contributors, educators, app developers, Open Collective supporters. you da best 🤗
JS lifehack: put common utilities in a node_modules directory *inside* src, so you can import w/o '../../'. Unlike faffy alias configs, this works consistently across bundlers, and you'll still get completion hints/typechecking etc. Just remember not to gitignore that directory
it's bananas to me that we're at a point where *Microsoft* will launch a major new service and on day one the docs include an example
@sveltejs
app alongside the three titans. our little made-by-friends-for-fun framework has game!
Could we have TypeScript with no build step? Could we have types in JavaScript? Maybe!
We're exploring bringing optional type syntax into the JavaScript language!
tried to tweet an image, it fails to render; try to load the tweet in a new tab to see if it worked there, it tells me twitter doesn't provide twitter access to twitter's API on twitter's current plan
this site is truly on its last legs
we built an elaborate system for tracking which hurdles got knocked over, so we could include them in the animation
none of the hurdles got knocked over
Here's how Sydney McLaughlin of the U.S. 🇺🇸 won the 400-meter hurdles at
#Tokyo2020
, breaking her own world record.
Dalilah Muhammad 🇺🇸, her teammate and the 2016 Olympic champion, won silver. Femke Bol of the Netherlands 🇳🇱 won bronze.
very surreal to be writing these words, but:
it's my last day at the NYT. it has been the honour of a lifetime to work alongside the giants of
@nytgraphics
and the investigations team, and i will miss my colleagues desperately, but it's time to move from one dream job to another
How Web Standards Work
1. design a flawed API (it's fine! APIs are hard)
2. ship it in the most-used browser, despite objections
3. get cross-browser working group to fix the API
4. oops, too late, that would break the web
i am begging
@twitter
to hire someone — anyone — who knows the first thing about video compression. it's, like, 20% of the experience of using this stupid app and you absolutely suck balls at it. just poach someone from youtube, or vine. or idk, read the ffmpeg manual
the difference between good and bad programmers isn't the ability to write code. it's the judgment to know what code should be written. LLMs are great (or rather 'not terrible') at following instructions, and utterly hopeless at saying 'i'm afraid i can't do that, dave'
sounds like clickbait but I 100% agree with him, just to be on the safe side. you have 5 years (let's say 7-10 max) to do something with your life before changing professions. please spend them on changing your terminal and tweaking your editor theme and arguing about vim 😘
Several people have asked me to make a
@sveltejs
version of this interesting demo that's doing the rounds, which purports to show how fast React can be with 'scheduling'. Let's take a look!
just learned a neat trick from the Three.js source code: if you want to remove an item from an array whose order doesn't matter, don't do this...
array.splice(index, 1); // slooooowwwww
...do this:
array[i] = array[array.length - 1];
array.pop(); // orders of magnitude faster!
i'm so embarrassed that there was ever a time i didn't think this man was a superlative-defying moron
just an avalanche of mind-meltingly stupid decisions. the platonic form of the Absolute Berk
To address extreme levels of data scraping & system manipulation, we’ve applied the following temporary limits:
- Verified accounts are limited to reading 6000 posts/day
- Unverified accounts to 600 posts/day
- New unverified accounts to 300/day
So, web components
• break a11y
• break progressive enhancement (no SSR, broken without JS)
• don't work with SVG
• share a global namespace instead of being modular
• ...
Imagine how much tedious moralising we'd see if JS frameworks shipped with similar limitations
PSA: There is currently no way for web components to be accessible if you use the isolation feature (called “shadow dom”).
Isolate the label from the input field, for example, & you break all the assistive technology - which requires they be tied together with ids.
i think this warrants a PSA, since vanishingly few people apparently know about it: google intends to remove alert/confirm/prompt from the web platform.
personally i think this is a mistake: these are useful features that don't have a replacement. many sites would break.
🌶️ IMHO 🌶️ — some loosely-connected thoughts on DSLs, progressive enhancement, MPAs (RIP), $OTHER_FRAMEWORK, the RPC renaissance, Lighthouse, interplanetary apps (IPFS), offline-first apps, AI doom, the economics of the web, and Kim Kardashian
As an OSS maintainer, you're hyper-aware of the myriad ways your project falls short of your ambitions. It eats at you. So learning that people love using the thing you help make is deeply gratifying. Thank you to everyone who contributes to
@sveltejs
🙏
@jutanium
nope, the article is correct. SvelteKit is written in JS and distributed as source code — no build step — and it's been miraculous for productivity. build steps make sense for apps, they make much less sense for libraries
get used to every learning experience feeling like this. wisps of knowledge with nothing to stick to; a waking dream of things you maybe wrote; pleading with black boxes to do the thing the same as before, like the time it somehow worked for a minute
When you buy fake followers, they leave fingerprints, as
@cocteau
discovered. We illustrated it by analysing celebrity chef Michael Symon, who bought at least 600,000 followers.
i recorded a talk for — — about whether you should build multi-page apps (MPAs) or single-page apps (SPAs). spoiler: the answer is 'neither'. or 'both', depending on your definitions.
here's the condensed tweet thread version:
i'm going to be doing a full day
@FrontendMasters
workshop on
@sveltejs
tomorrow. you should come! it's free to join the livestream. The plan is to go from complete novice to building a dynamic, personalisable, server-rendered, interactive (but JS optional!) PWA. should be fun
web developers: one of the most user-hostile things you can do is (accidentally?) prevent [middle|cmd]-clicking on an <a> from opening a new tab. Stop it.
@discord
you recently joined the long list of websites that get this wrong. please revert to the correct behaviour!
I see this claim a lot but I don't think I've ever actually witnessed this phenomenon. I see many programmers that don't _know_ how to avoid complexity, and programmers that _tolerate_ complexity in service of some goal, but actively seeking it? It's a myth that needs to die.
announcing 📦 Svelte Cubed 📦 — a
@sveltejs
component library for
@threejs
• website
• github
• starter app on
@stackblitz
usual caveat: every aspect of this is WIP! help us make it better!
so I know I just said on
#sveltesummit
that I open sourced Svelte Cubed today, but... I didn't get a chance yet, and my laptop is powering the video at the
@SvelteSociety
watch party... soon, I promise!
debugger freezes time, print freezes 'space'. sometimes you need to inspect the state of a system at a crucial moment, sometimes you need a birds-eye view. learn to wield both!
that said i am usually the guy on the left
I don't like this trend.
I know a lot of you are going to turn Reply Guy on me, but I don't think it's good for humanity for everyone to work from home. Thread:
on arrival in the UK i tested positive for the Stupid Variant, which is the one where you travel 3,000 miles to see your family for the first time in two years, then sit alone in a different part of the house, completely asymptomatic, listening to them eat dinner together.
By the mid-90s, the losses are large enough that to do them justice would take more vertical space than we can allow for the chart. So we decide to let the bars break out of the chart boundary and into the text.
had a couple of mini design breakthroughs on svelte today (no i'm not going to say what they were). i'm frequently amazed by the way obvious-in-hindsight ideas can take eons to reveal themselves. things i've learned:
yesssss
typescript for apps, JSDoc for libraries (which is another way of saying 'types with a build step for apps, types without a build step for libraries'. it's all typescript either way)
i feel a shift happening
This is sensationally clever. The web would be better if apps interacted with data you own, rather than storing it for you, but the incentives for that to happen don't exist.
Using email like this inverts control and makes those incentives irrelevant. It's... art.
Announcing 👇
is a recipe storage system built on top of email. Find a recipe you like, send an email to `save
@yums
.email` and you'll get an email back with the recipe nicely formatted.
See for more.
Using the + selector combinator, we can target the paragraph immediately after the embed. And using a ::before pseudo-element, we can insert a box that forces the text to flow around it. Throw in a media query for responsiveness, and voila! The text flows around the chart.
📺 baby's first self-published youtube video
i'm such a youtube noob i totally forgot to yell 'DON'T FORGET TO SMASH THAT LIKE BUTTON'
anyway, i wanted to clear up some common misconceptions about runes and getters/setters:
🎉 Svelte Kit is now open source:
`npm init svelte
@next
`
⚠️ it is still not officially in beta, but you can at least read the source code now and 🌟 the repo
🗣️ Save the date for Svelte Summit on 25 Apr 2021!
it only took seven and a half years, but you can now set the tab width on . pretty sure this means the last semi-defensible reason for using spaces is gone, and we can all finally recognise the inherent superiority of tabs
never ceases to amaze me, as i cycle past rows of barely-moving cars, how many of them (85%?) don't even have passengers. and the drivers all look so fucking miserable! the maintenance cost, the land use, the pollution, climate harm — it really is collective insanity. stop it.
finding it increasingly rare that ChatGPT gives me answers that are remotely useful. a lot of 'i apologize for the confusion' followed by a confirmation of whatever i just told it. bearish (on humanity's ability to find useful information)
i'll probably manage to offend someone with this tweet, but the dumbest part of the whole
@shitoberfest
controversy is people are doing it for a free t-shirt.
i do not understand why people want to wear cheaply made dork-ass tech logo clothes. you're an adult. dress like one
it's probably way too early to share this, but what the hell — i'm working on a way to build WebGL scenes directly inside
@sveltejs
apps. ridiculous amount of work to be done, but initial results are encouraging.
@sveltejs
On the left, we have the React version, running in prod mode. On the right, Svelte (in dev mode, because I forgot to build it. Oh well.) Notice the huge gap in the React version whenever you change the count. With Svelte? Honey badger don't care.
Moved some of my smaller libs to JSDoc TS; thoroughly recommend it. Among other things, the resulting code is generally smaller than transpiled code. Building, testing etc all become much less finicky. And .d.ts files are still generated from source code
Interesting counter-trend - maintainers of large open source projects like
@Sveltejs
and
@Deno_land
are moving *AWAY* from writing their internals in TypeScript
Just at the same time when the wider dev world is falling in love with TS.
Reasons: build times and code complexity.
friends, please don't do this sort of thing! it's cool to be excited about tech and to feel connected to a particular community, but not to get in people's faces about it (in IRL or on twitter etc).
it makes OSS authors wince when we hear stories like this
At a coffee shop working, just had someone notice I was reading a
@solid_js
article. The next 30 minutes involved him *emphatically* explaining why Svelte was the future and I was wasting my time with anything else…that Rich is a genius and now Dominic Gannaway joining…🤯🤯🤯
zig when others zag
we're experimenting with moving the nav bar on *.svelte.dev to the bottom on mobile so that it's easier to use the site one-handed. feels more accessible, if a little unconventional. thoughts?
This print graphic was made with WebGL. We customised the fragment shader from the online version () to output 100% cyan, to avoid colour separation in case the printer plates were misaligned
@icarusgkx
Thank you. My language was unnecessarily harsh and I apologise.
While I do feel we owe it to our followers to post accurate information and remove things that are misleading, it's no excuse. I was frustrated about a larger trend and lashed out. I'm going to delete my reply.
apparently we suck at 'marketing' — sveltekit is stuffed to the brim with neato features like this and a lot of them are almost totally unknown
we need to get better at tooting our own horn 🎺
My talk from
@jscamp
, "The Return of 'Write Less, Do More'" is up on YouTube:
It's a 30 min talk on
@sveltejs
, and why less code = fewer bugs — kind of a sequel to "Rethinking Reactivity" () Here's a summary thread:
My talk from
@YGLF_IL
, 'Rethinking Reactivity', went online yesterday — . You probably don't have time to watch a 35 minute video though, so I'm going to pull out a few key slides into a quick tweet thread:
The more I use HEY, the more I think it makes the case for 'modern' SSR'd SPA-ish development, rather than the Rails+Turbolinks+Stimulus model. I realise it's v1, but there are some rough edges that will be hard to fix, that you just don't expect to see in an app in 2020.
heads up if you're a SvelteKit user: we're planning a significant design upgrade in the coming days. it's going to be a breaking change that involves some migration work (sorry) but it's going to be so, so worth it, i promise. details here:
Want to use view transitions in your SvelteKit app?
v1.24 unlocks view transitions with a new lifecycle method. We’ve already added them to the Svelte site - watch the blog titles slide into place!
Read all about it in my latest on the Svelte blog:
With the caveat that the
#StateOfJS
survey is probably wildly unrepresentative of developers at large, and with an acknowledgment that
@sveltejs
still has a long way to go, I'm pretty encouraged with these results. Proud of our small but mighty community
It's been a minute, but
@mikeyk
and I are back at it with Artifact - a personalized news feed using the latest ai tech. Visit to sign up and join the community.
the svelte team designs things with a focus on practical outcomes rather than ideological goals. 'static all the things' or 'SSR all the things' or '0kb JS all the things' result in cool demos, but real apps are complex and messy and evolving and our tools should accommodate them
I think this is a really underappreciated fact. Prerender your landing page for maximum performance, SSR your dynamic pages, and make your admin dashboard behind a login an SPA? All possible with
#SvelteKit
in the same app!