Sign in

Ben Smith

@bensmith.sh
81 followers 471 following 17 posts

Full stack web developer at Thuma. Passionate about accessibility, neovim, and coffee. Site: bensmith.sh YouTube: youtube.com/@smithbm2316

PostsRepliesMedia
Reposted by Ben Smith
Aftermath @aftermath.site · 17/02/2026
The Xteink X4 is underpowered and lacks features but it's affordable, snaps to your phone and has a devout community making up for its failings. aftermath.site/xteink-x4-chea...
An Xteink X4 next to a quarter for scale, the Aftermath logo has been hacked on to the screen. It is on a flat wood backdrop.
717425
Reposted by Ben Smith
Aftermath @aftermath.site · 17/02/2026
A Digital Audio Player renewed my love of music: aftermath.site/digita-audio-p...
929941
Reposted by Ben Smith
mary🐇 @mary.my.id · 19/06/2025
I like that almost every UI interaction in GitHub's pull request page is broken when a new comment arrives, and I'd then have to reload the page for it to work again
3341
Reposted by Ben Smith
Filippo Valsorda @filippo.abyssdomain.expert · 16/05/2025
I implemented the proposed CSRF handler, if anyone wants to test it, or wants to migrate before it makes its way into the standard library. There are are no tokens or cookies, so migrating should be easy, but note that it applies strict same-origin checks. Feedback welcome! filippo.io/csrf
2243
Reposted by Ben Smith
Jorge (he/him) @motoridersd.pug.ninja · 14/05/2025
An article titled "How the Web Became Unreadable", posted on Medium. There is a soft paywall asking you to sign in, covering most of the article.

Screenshot found on Mastodon https://beige.party/@mayintoronto/114497234942335666
7174846314
Reposted by Ben Smith
Nic Barker @handle.invalid · 14/05/2025
A frustrating side effect of search becoming "smarter" in general is that we seem to have lost the capability to just match on a substring. Across the various search boxes I use daily (apple spotlight, google search, github search) they all now fail to find "bar" in "foobar"
1132
Reposted by Ben Smith
rob pike @robpike.io · 13/05/2025
Microsoft, laying off 3% of its global workforce: “We continue to implement organizational changes necessary to best position the company for success in a dynamic marketplace.” Do you need an MBA to learn to talk like this? To lose your empathy, your humanity? It seems so.
1026931
Reposted by Ben Smith
Anne van Kesteren @annevk.nl · 07/05/2025
🥳 We added new attributes to HTML to enhance <input type=color>: webkit.org/blog/16900/p...
webkit.org
Add wide gamut P3 and alpha transparency to your color picker in HTML
Now HTML lets you create a color picker for wide gamut P3 color and for alpha transparency with two new attributes: <input type="color" colorspace="display-p3" alpha>, available today in Safari 18.4.
49026
Reposted by Ben Smith
rich harris @rich-harris.dev · 21/03/2025
As of @svelte.dev 5.25 you can temporarily override a derived value, which is very handy for optimistic UI • demo svelte.dev/playground/3... • docs svelte.dev/docs/svelte/...
A screenshot of https://svelte.dev/playground/3de3a4446cd14bad884ea05fbd35363a?version=5.25.0 showing the new 'writable derived' feature
617216
Reposted by Ben Smith
Sarah™️ @ladybluenotes.dev · 30/04/2025
Another stellar resource from Corbin 😮‍💨 If you didn't know, Corbin puts out amazing (free!!) content about so many things with @playfulprogramming.com and you should definitely check it out
152
Reposted by Ben Smith
Corbin Crutchley @crutchcorn.dev · 30/04/2025
Announcing my new book about A11Y! ♿ When I first started as a web developer I didn't know anything about best practices for UX Only after guidance from many wonderful people have I improved; I want to share that ☺️ A11Y is a basic right and improves products for us all 🚀
46713
Reposted by Ben Smith
Playful Programming @playfulprogramming.com · 30/04/2025
🌐 Introducing: The Art of Accessibility! Our brand-new book teaches you everything to do with accessibility! With a vast array of technologies and methods of providing valuable experiences to all users, it's easier than ever to design better, more inclusive products.
An illustration of a street. There is a visually impaired person, walking with a white cane. A wheelchair user sits next to another person in a small shop. The shop's banner says "a11y.art", the URL for the book.
1165
Reposted by Ben Smith
CJ @w3cj.com · 13/03/2025
In my latest video over on @syntax.fm - I talk about how you should write the code you wish existed aka "Dream Code" I show how I created a @nitro.build / h3 utility for validating API requests with zod and full type safety. Watch 🍿: youtube.com/watch?v=FI4z...
youtube.com
Write The Code You Wish Existed | TypeScript + Nitro API Validation Example
YouTube video by Syntax
2297
Reposted by Ben Smith
Steven ⬢ @styfle.dev · 20/03/2025
How is anyone non-technical supposed to figure out if a website is legit or not? We should do better.
sa.www4.irs.gov/sso
391
Reposted by Ben Smith
Jim Nielsen @jim-nielsen.com · 29/04/2025
📝 I find it ironic that the web platform has such a strong ethos of "no breaking changes” but the tools we use to build on top of the web are like "BREAKING CHANGE ALL THE THINGS” blog.jim-nielsen.com/2025/backwar...
blog.jim-nielsen.com
Backwards Compatibility in the Web, but Not Its Tools
Writing about the big beautiful mess that is making things for the world wide web.
3196
Reposted by Ben Smith
Sébastien Chopin @atinux.com · 17/04/2025
Favicon color matches your primary color ✔️
4431
Reposted by Ben Smith
Josh W. Comeau @joshwcomeau.com · 24/04/2025
I always forget that this is a thing I made 😂 It’s a search engine for operators. So if you see something funky like “%=“ in a codebase, you can copy/paste it in for an explanation.
67912
Reposted by Ben Smith
Mayank @mayank.co · 29/10/2024
i made a thing recently: xkcd.fyi it's an alternative frontend to xkcd.com with some important differences: - title text shown in an accessible way - transcript included for every comic - link to explainxkcd.com/ (for when you don't get the joke) - dark mode!
xkcd.fyi
xkcd.fyi
65013
Reposted by Ben Smith
CJ @w3cj.com · 17/04/2025
Looking to get started with @nuxt.com / @vuejs.org ? In my latest video, I go over everything you need to know to start building with Nuxt today. Watch 🍿: www.youtube.com/watch?v=RhZZ...
youtube.com
Nuxt Crash Course 2025
YouTube video by Syntax
4576
Reposted by Ben Smith
Storybook @storybook.js.org · 24/04/2025
Storybook 9 is now in beta! It’s ready for you to try today. Let’s see what’s inside…
storybook.js.org
Storybook 9 is now in beta
Try the future of UI testing today
712625
Reposted by Ben Smith
Michael Shilman @shilman.net · 25/04/2025
Storybook 9 beta! So much blood/sweat/tears from @storybook.js.org and @vitest.dev teams to create the future of UI testing. Please kick the tires in your project to help us stabilize for GA. 🙏
14711
Reposted by Ben Smith
Una Kravets @una.im · 22/01/2025
Dang I'm excited about new semantic attr() capabilities in CSS! I wrote a post about why this feature is so powerful, how it could change the way you build components, and how I would use it. Advanced attr() is rolling out in Chrome 133 starting next week 🥰 una.im/advanced-attr/
una.im
una.im | New capabilities for attr()
Advanced attr() is landing in Chrome 133, and I'm really excited for this feature! Here's a bit about it and how you can use it.
417143
Reposted by Ben Smith
Yehuda Katz (he/him) @wycats.bsky.social · 03/01/2025
This means that front-end developers and architects should *be in the room* early on in the process, even if the feature is largely going to be implemented in terms of the backend.
293
Reposted by Ben Smith
Nic Barker @handle.invalid · 18/12/2024
Finished up the video properly introducing / giving an overview of Clay! #cprogramming youtu.be/DYWTw19_8r4
youtu.be
Introducing Clay - High Performance UI Layout in C
YouTube video by Nic Barker
6387
Reposted by Ben Smith
patak @patak.cat · 15/12/2024
If this is the first time you've heard about Yerba Mate, if you ever visit an Argentinian home, you'll see that the first thing they do is heat water to share some mates with you.
youtube.com
What is Yerba Mate? Yerba Mate Facts and More!
YouTube video by Nioteas TV
4312
Reposted by Ben Smith
Taylor Otwell @taylorotwell.bsky.social · 13/12/2024
Laravel VS Code extension ships Monday in public beta. ✨
2525335
Reposted by Ben Smith
Joe Tannenbaum @joe.codes · 13/12/2024
🧑‍💻
Screenshot of VS Code extension page
1713320
Reposted by Ben Smith
Academy of Interactive Arts & Sciences @official-aias.bsky.social · 09/12/2024
Watch the full episode with @playbalatro.com creator, @localthunk.bsky.social now on YouTube or listen on your favorite podcast app! Get all of our episodes early/ad-free on Apple Podcasts: www.interactive.org/Interviews/t...
2505
Reposted by Ben Smith
localthunk @localthunk.com · 09/12/2024
This was a really fun podcast, a deep dive into the creation Journey of Balatro Check it out!
858764
Reposted by Ben Smith
Joe Tannenbaum @joe.codes · 05/12/2024
I changed my font in Slack to a monospace font thanks to @tim.macdonald.au and phew what an upgrade
6201
Reposted by Ben Smith
Tim MacDonald @tim.macdonald.au · 09/12/2024
Wanna make Slack better? Settings: 1. Appearance > Font = Robot Mono 2. Messages > Theme =Compact 3. Messages > Names = Just display names 4. Messages > Additional options: uncheck “Display information about who is currently typing a message” Give it a week. I don’t even hate Slack anymore.
22801
Reposted by Ben Smith
Julia Evans @b0rk.jvns.ca · 04/11/2024
I feel like half of programming is remembering how weird stuff works and the other half is setting things up so that you do not have to remember the weird stuff
27984153
Reposted by Ben Smith
Wes Bos @wesbos.com · 22/11/2024
Can we please stop with the scroll-jacking carousels on websites? CSS Scroll Snap is a much better solution! Re-built the Uniqlo home page with 6 lines of CSS and 4 lines of JS Gotta link to the video, choose your poison in the next post
1216510
Reposted by Ben Smith
Wes Bos @wesbos.com · 22/11/2024
plz bluesky let me upload longer + better quality vids 🙏🏻 Square Vid: x.com/wesbos/statu... www.linkedin.com/feed/update/... www.threads.net/@wesbos/post... 9:16 Vid: www.tiktok.com/@wesbos/vide... www.instagram.com/p/DCrpAGlqPai/
x.com
x.com
3363
Reposted by Ben Smith
Funky Dynamite @sweavart.bsky.social · 02/04/2024
AI company: we trained this dog to talk. It doesn’t actually understand language, but it kinda sounds like it’s having a conversation by mimicking the sound of human speech. CEO: awesome, I’ve fired my entire staff, how quickly can it start diagnosing medical disorders
5381482983
Reposted by Ben Smith
Andy Young @anerdguy.now · 21/11/2024
HTML now has variables, scoping, and for-loops. Someone please stop me.
3821526
Reposted by Ben Smith
Nick Williams @wicky.nillia.ms · 21/11/2024
"Emulate a focused page" for debugging focus related issues. You won't get a blur/focusout event when moving focus to the Dev tools. Invaluable
6312
Reposted by Ben Smith
Will Oremus @willoremus.com · 20/11/2024
With a fully remote team of just 20 employees, Bluesky has surpassed 20 million users in its first year since opening to the public and is stealing thunder from rivals hundreds of times its size. At a time when conventional wisdom among bosses is that workers must be in-person to be productive.
442362415413
Reposted by Ben Smith
Andy Young @anerdguy.now · 21/11/2024
I've gone and done it again. jsfiddle.net/onsubmit/egu...
<ul>
  <for- (="item of [1, 2, '😅', 4, 5]")>
    <li>Item {item}</li>
    <console- log(="Logging {item}")></console->
  </for->
</ul>class ForDash extends HTMLElement {
  static observedAttributes = ["("]

  _innerHtml = null

  connectedCallback() {
    this._innerHtml = this.innerHTML
    this._loop(this.getAttribute("("))
  }

  attributeChangedCallback(name, oldValue, newValue) {
    if (this._innerHtml === null) {
      return
    }

    if (name === "(") {
      if (oldValue !== newValue) {
        this._loop(newValue)
      }
    }
  }

  _loop(value) {
    this.innerHTML = ""
    const [varName, arr] = value.split(" of ");
    for (const item of eval(arr)) {
      this.innerHTML += this._innerHtml.replaceAll(`{${varName}}`, item)
    }
  }
}

customElements.define("for-", ForDash)
4205
Reposted by Ben Smith
Tony Ward @tonyward.dev · 21/11/2024
Wrote an article about leveraging Figma's API to generate CSS variables from Figma variables. This is super helpful with Design Systems to ensure design and engineering are in sync. Thanks to @darn.es for the "this should be a blog post!" suggestion 🙇 www.tonyward.dev/articles/fig...
tonyward.dev
Syncing Figma Variables to CSS Variables - Tony Ward
Keep your design tokens in sync by generating CSS variables from Figma variables.
7457
Reposted by Ben Smith
☔ Jim Schofield 🌼 @jschof.dev · 20/11/2024
Wow, upgrading to 11ty 3.0 was one of the most seamless, easy upgrades I've ever done... @11ty.dev nice work
272
Reposted by Ben Smith
Andy Young @anerdguy.now · 20/11/2024
With the power of web components, HTML really can be a programming language.
<if- (="2 + 2 === 4")>
  <console- log(="Hello World")></console->
</if->class IfDash extends HTMLElement {
  static observedAttributes = ["("]

  _innerHtml = null

  connectedCallback() {
    this._innerHtml = this.innerHTML

    const condition = this.getAttribute("(")
    this._setCondition(eval(condition))
  }

  attributeChangedCallback(name, oldValue, newValue) {
    if (this._innerHtml === null) {
      return
    }

    if (name === "(") {
      const a = !!eval(oldValue)
      const b = !!eval(newValue)
      if (a !== b) {
        this._setCondition(b)
      }
    }
  }

  _setCondition(value) {
    this.innerHTML = value ? this._innerHtml : ""
  }
}

class ConsoleDash extends HTMLElement {
  connectedCallback() {
    const log = this.getAttribute("log(")
    console.log(log)
  }
}

customElements.define("if-", IfDash)
customElements.define("console-", ConsoleDash)
2319738
Reposted by Ben Smith
Burton Smith @stuffbreaker.bsky.social · 19/11/2024
I recently worked with a team that told me they couldn't use our web component library because #webcomponents don't work with SSR. There are a lot of misconceptions around this and it is only partially true, so I whipped up this article to help clarify things a little. dev.to/stuffbreaker...
dev.to
Web Components and SSR - 2024 Edition
Web components work in SSR, depending on which SSR you're talking about.
4338
Reposted by Ben Smith
Alejandro AR @kinduff.com · 17/11/2024
This is a quality article by @samwho.dev, very nice reading and the interactive examples are a gem, check it out! encore.dev/blog/queueing
encore.dev
Queueing – An interactive study of queueing strategies – Encore Blog
In this blog, we go on an interactive journey to understand common queueing strategies for handling HTTP requests.
517734
Reposted by Ben Smith
Andrico Karoulla @andrico.bsky.social · 18/11/2024
I've always found that the free resources for learning web component resources to be super fragmented, even if some of it is high quality. A few months back I created Learn WCs which pulls all of the best resources into an interactive roadmap. I hope y'all have fun with it! learn-wcs.com
learn-wcs.com
Learn Web Components | Free Roadmap
Learn all about web components with this free roadmap, including Custom Elements, HTML Templates, Shadow DOM, and more!
033
Reposted by Ben Smith
Hawk Ticehurst @hawkticehurst.com · 18/11/2024
New platform means we get to reshare old blog posts right? Well here’s a somewhat spicy take from the vault: You can build web components that last a lifetime, you just need to make them dependency-free. Doing that isn’t as hard as you might think. hawkticehurst.com/2024/05/brin...
hawkticehurst.com
Bring your own base class
Dependency free web components that last a life time does not have to mean a bad developer experience.
271
Reposted by Ben Smith
Bluesky @bsky.app · 15/11/2024
💡 Tip: You can set your website as your username on Bluesky! This is one form of self-verification, and we especially encourage official organizations and brands to do this! Examples include @npr.org @react.dev @duolingobrasil.com.br. Here's our guide for how to do this:
bsky.social
How to set your domain as your handle - Bluesky
Using a domain as your handle helps with account identity, verification, and portability. Here's how to set your domain as your handle.
1445366506772
Reposted by Ben Smith
Brian LeRoux @brianleroux.bsky.social · 12/11/2024
ICYMI. It's possible to SSR a web component. Today. In production. Without transpiling. From just about any backend runtime with the same definition. enhance.dev/wasm
enhance.dev
Enhance WASM — Enhance
The HTML first full stack web framework
2234
Reposted by Ben Smith
Scott Jehl @scottjehl.com · 15/11/2024
HEY. I had the great opportunity to go on the @syntax.fm podcast and talk about web performance, web components, & a lot more. That episode is live with an absolute linkbait title wherever you get your podcasts! 🎉 syntax.fm/show/848/web... open.spotify.com/episode/0YgS...
syntax.fm
Web Components Can’t Save Us with Scott Jehl - Syntax #848
Scott Jehl discusses his background in web development and responsive design at Filament Group agency, opinions on web components for UI patterns, styling complexities, design systems, and how they ar...
511415
Reposted by Ben Smith
Mayank @mayank.co · 16/11/2024
i didn't want to "lose" this particular tweet, because it has sentimental meaning to me and it resonated with so many other people. it was shown by @una.im at CSS Day. youtu.be/dkBeBxs48os
Una talking at CSS Day, displaying my "CSS ten years ago" tweet on the slide. The tweet contents are displayed in full, along with my name at the bottom. The slide is stylized with a fun geometrical theme, instead of displaying a boring tweet embed.
161