Sign in

Sandro

@sandroroth.com
36 followers 31 following 40 posts

Software Developer based in Switzerland 🇨🇭 🔗 sandroroth.com 🔗 tinytip.co

PostsRepliesMedia
Sandro @sandroroth.com · 08/07/2026
I built #Wordle in pure #TypeScript types. No runtime - the type checker runs the whole game 🟩🟨 ➡️ sandroroth.com/blog/wordle-...
010
Reposted by Sandro
Josh Collinsworth @collinsworth.dev · 11/06/2026
I've been working on this post for a while now. It's about why I think the productivity boost LLMs offer for developers is regularly and severely overestimated. joshcollinsworth.com/blog/product...
joshcollinsworth.com
LLMs and performative productivity
It's worth asking whether LLMs are actually making us more productive at all—and if so, what we might be sacrificing in return.
6418
Sandro @sandroroth.com · 07/02/2026
Eleventy Notes turns 3 today 🎂 🥳 The first version shipped on February 7th, 2023 and it's come a long way since then, lots of new features and improvements over the years. Thanks to everyone using it and helping make it better 🙌
eleventy-notes.sandroroth.com
Eleventy Notes
A simple, lightweight, and flexible note-taking template for Eleventy.
010
Sandro @sandroroth.com · 24/01/2026
> I made a serious mistake. The regex failed to capture the numbers and titles, and all 24 files were renamed to the same filename, causing 23 files to be overwritten. I'm very sorry - this data loss cannot be undone through normal means Thanks Claude Code for deleting my files 🤦‍♂️
12333
Reposted by Sandro
Sandro @sandroroth.com · 04/01/2026
Just launched Unfortunate Transitions 👻 A little puzzle game where you're a poltergeist eliminating your cheerful housemate through indirect means. Built with #XState, with actor code visible in-game. ➡️ unfortunate-transitions.sandroroth.com
011
Sandro @sandroroth.com · 04/01/2026
Just launched Unfortunate Transitions 👻 A little puzzle game where you're a poltergeist eliminating your cheerful housemate through indirect means. Built with #XState, with actor code visible in-game. ➡️ unfortunate-transitions.sandroroth.com
011
Sandro @sandroroth.com · 21/12/2025
Rebuilt my website sandroroth.com from scratch with @astro.build 🚀
180
Reposted by Sandro
Erik Rasmussen @erikras.com · 31/10/2024
👻 HAPPY HALLOWEEN!! 👻
133
Sandro @sandroroth.com · 02/10/2025
🧩 Code Puzzle, a little side project I made. Each level gives you a JS snippet split into pieces. Arrange them in the right order with drag and drop to solve the puzzle. ➡️ code-puzzle.sandroroth.com Built with #React and #XState
061
Reposted by Sandro
Axel Rauschmayer (also on 🦣) @dr-axel.de · 25/09/2025
Neat CSS game by @sandroroth.com: “CSS Selectors Playground” selectors.sandroroth.com
selectors.sandroroth.com
CSS Selectors Playground
041
Reposted by Sandro
TypeScript.fm @typescript.fm · 26/08/2025
Today on the pod, major TS ecosystem updates: TypeScript Go gets biggest nightly update yet, Rspack announces new Rslint linter, Bun 1.2.21 features 500x faster postMessage, plus Next.js 15.5 has typed routing! share.transistor.fm/s/0304855f #typescript
share.transistor.fm
TypeScript Go Nightly Improvements, Rslint Announced, and Big Bun Updates | News | Ep 32 | TypeScript.fm - The Friendly Show for TypeScript Developers | Episode 32
News of the week of August 18, 2025: one of the biggest nightly updates for TS Go, Rspack team announces a new linter, the new minor Bun release is pretty major, and Next.js 15.5 features typed routing...
284
Sandro @sandroroth.com · 23/08/2025
☠️-Hangman in pure #TypeScript types 😎
140
Sandro @sandroroth.com · 27/04/2025
Model-based testing with XState helps you test your app more thoroughly without writing every test by hand. You define the model, add test code for states and events, and XState generates the rest. Here, I’m running over 60 tests from just one model. 🚀 #testing #xstate #statemachine
100
Sandro @sandroroth.com · 16/03/2025
My interactive playground for CSS selectors now uses @tanstack.com Start + Router. I also redesigned the homepage and added a few more selectors. Do you miss a selector? #css #react #tanstack
selectors.sandroroth.com
CSS Selectors Playground
162
Sandro @sandroroth.com · 01/12/2024
Using string union types for handling translations not only autocompletes the keys but also provides their default English translations. This helps you understand what to translate and identifies available dynamic values. TypeScript is incredibly powerful! 🚀 #TypeScript #i18n
A Visual Studio Code screenshot showing a TypeScript code snippet for defining German translations. The cursor is positioned at the value of the translation key "sidebar.navItemToggle.label," and an autocomplete popover suggests the default English translation "Toggle {{ title }}" as a possible value.
010
Sandro @sandroroth.com · 17/11/2024
React Component Composition with polymorphism is quite tricky. You loose type-safety and it's easy to break a11y. The `as` prop is probably the worst (slow type checking + ambiguous props). `asChild` hurts readability and introduces additional nesting. Is @ariakit.org's `render` approach the best?
```tsx
<!-- Approach 1: as prop -->
<Dialog.Close as={MyButton} variant="outlined">
  <Icon />
  <span>Close</span>
</Dialog.Close>


<!-- Approach 2: asChild prop (Radix UI) -->
<Dialog.Close asChild>
  <MyButton variant="outlined">
    <Icon />
    <span>Close</span>
  </MyButton>
</Dialog.Close>


<!-- Approach 3: render prop (Ariakit) -->
<Dialog.Close render={<MyButton variant="outlined" />}>
  <Icon />
  <span>Close</span>
</Dialog.Close>
```
0111