Sign in

Joe Pea

@joe.trusktr.io
954 followers 323 following 1.7K posts

⚒️ User interactivity at Google. Building 3D HTML Elements ✨ lume.io Solid.js contributor. solidjs.com Custom Elements advocate. Previously Meta, SpaceX, NASA, IMVU, Fed Reserve, Chipotle.

PostsRepliesMedia
Joe Pea @joe.trusktr.io · 28/09/2026
Would love to live in a place like this with other creatives, and enough room somewhere for a skatepark haha. Here's an AI recreation, at dawn.
100
Joe Pea @joe.trusktr.io · 23/09/2026
I still see the same logo?
000
Joe Pea @joe.trusktr.io · 09/09/2026
Undefined elements are defined according to web spec! 🥲 > document.createElement('doesnotexist').matches(':defined') < true
541
Joe Pea @joe.trusktr.io · 08/09/2026
It's still a little rough around the edges, for example in that demo I tried to drag sliders but it was tricky to get the pointer onto them, because the app itself has to manually transform from custom graphics coordinates to the actual DOM coordinates to trigger the DOM interaction:
100
Joe Pea @joe.trusktr.io · 02/09/2026
and paste it into a pen or HTML file, along with a <base> element specifying where its URLs should be relative to so it will know how to get any other dependencies, and it works as-is without further modification: codepen.io/trusktr/pen/... This assumes there's nothing interfering with the code.
110
Joe Pea @joe.trusktr.io · 01/09/2026
Works in iPhone Safari. Sanity checking mobile.
000
Joe Pea @joe.trusktr.io · 01/09/2026
@bitmae.bsky.social Here's what I was imagining about this, <bit-mae> <particle-explode slot="alter-ego"> </particle-explode> </bit-mae> The <particle-explode> is slotted into the ShadowRoot of <bit-mae>, *shadow* exploding your alter-ego. 😄 Live demo: rawcdn.githack.com/lume/lume/0b...
230
Joe Pea @joe.trusktr.io · 01/09/2026
Just FYI, @railway.com had an outage and their bot denied giving a prorated refund.
000
Joe Pea @joe.trusktr.io · 01/09/2026
The simplest declarative-reactive custom elements! You don't need a library, just copy/paste/adapt these small files: github.com/lume/nimble-... github.com/lume/nimble-... Then write elements like this: github.com/lume/nimble-...
050
Joe Pea @joe.trusktr.io · 31/08/2026
They have been catching up: support.ekioh.com/download/cha...
A screenshot of release notes, readable at https://support.ekioh.com/download/changelog.php
200
Joe Pea @joe.trusktr.io · 20/08/2026
I got confused by misremembering this from back in July: "Almost everything under-the-hood in `edge://settings` is using our FAST-based design system and components. [...] they're seeing ~40% improvements on React vs. Web Components and even more when factoring in SSR." discord.com/channels/767...
210
Joe Pea @joe.trusktr.io · 20/08/2026
Haha. Yeah, I like simplicity.
000
Joe Pea @joe.trusktr.io · 19/08/2026
Looks like that will soon be a thing of the past. RCS now has end to end encryption across platforms (iOS to Android, vice versa), and all phones default to iMessage or RCS now. Might be some time for all SMS code services to update to RCS, but it's happening.
Screenshot of Apple News release May 2026 saying "End-to-end encrypted RCS messaging begins rolling out today in beta"
010
Joe Pea @joe.trusktr.io · 18/08/2026
These custom elements are delightfully squishy!
160
Joe Pea @joe.trusktr.io · 13/08/2026
@codepen.io 2.0 not working in iPhone Safari. Consistently has a CORS issue and won't run script.
100
Joe Pea @joe.trusktr.io · 23/07/2026
@nomster.bsky.social's Two-Phase View Transitions example here shows an MPA (multi-page application) navigating between to separate pages (two full page loads), with a smooth skeletal loader animation between them. noamr.github.io/two-phase-vt...
1123
Joe Pea @joe.trusktr.io · 02/07/2026
Browser-based voxel planets, let's go!
290
Joe Pea @joe.trusktr.io · 27/04/2026
@solidjs.com has a new `sld` tagged template function coming out to replace its `html` template function. `sld` is renamed from `html` because it not HTML-syntax-compatible, with JSX-like case-sensitive <Component> syntax. No more pesky <${Component}> syntax!
3151
Joe Pea @joe.trusktr.io · 14/02/2026
I really appreciate where macOS 26 Liquid Glass UX will land, but it is still being worked on, and feels a little rushed. This is hard to read at the moment due to a bug where the underlying shadow shrinks and the contrast is lost (note the shadow is at the top, not tall enough):
000
Joe Pea @joe.trusktr.io · 29/01/2026
Thought I'd make it just a little more specific.
010
Joe Pea @joe.trusktr.io · 29/01/2026
Yoooo! This accidental wiggle in the @bsky.app UI is very cute. I love it. Can we keep it?
030
Joe Pea @joe.trusktr.io · 29/01/2026
I moved. Updated my location on GitHub.
110
Joe Pea @joe.trusktr.io · 28/01/2026
The Pulsar text editor recently upgraded from Electron 12 to Electron 30 (from Node 14 to Node 20)! With performance improvements. Pulsar is a living fork of the dead Atom editor. I'm keeping an eye on Pulsar due to very bad perf issues VS Code has with extensions, unfixed for years.
130
Joe Pea @joe.trusktr.io · 13/01/2026
I've released `@​lume/element` v0.17.0, "effective elements", adding support for @solid_js memos and effects for Custom Elements via decorator syntax. Concisely write custom HTML elements, type checked in React, Vue, Svelte, Solid.js, Stencil, and more. github.com/lume/element/releases/tag/v0.17.0
A screenshot of code using the @lume/element and classy-solid libraries to add signals, memos, and effects to a "FurryDog" custom element definition class by decorating a "years" class field with @numberAttribute to make it a reactive value that has values from DOM attributes coerced into numbers and assigned to it, decorating a readonly "dogYears" class getter with @memo and having it return a derived value being the "years" field multiplied by 7, and decorating a "#log" private method with @effect and having it read and log to console the "dogYears" property which in turn causes the method to automatically rerun any time that the "dogYears" property value changes. The class also shows a `template` with markup that renders the dogYears in a div, and a `css` property with scoped styling for the elements in the template.A screenshot of a snippet of HTML code that shows usage of the defined `<furry-dog>` HTML element, giving it a years="10" attribute, which causes the element's private effect to log the dogYears as 70.
341
Joe Pea @joe.trusktr.io · 13/01/2026
`classy-solid` 0.5.2 is released, adding the ability to control whether effects start upon instance construction via a `static autoStartEffects` class field. Add @solid_js signals and effects to your JavaScript classes with concise decorator syntax: github.com/lume/classy-...
A screenshot of code using the classy-solid library to add signals, memos, and effects to a "Dog" class definition by decorating a "years" class field with @signal to make it a reactive value, decorating a readonly "dogYears" class getter with @memo and having it return a derived value being the "years" field multiplied by 7, and decorating a "log" method with @effect and having it read and log to console the "dogYears" property which in turn causes the method to automatically rerun any time that the "dogYears" property value changes.
000
Joe Pea @joe.trusktr.io · 01/01/2026
I've published classy-solid v0.5.1 "keep your privates private!", supporting #​private @​memo and @​effect decorated members. Add @solidjs.com-powered signals and effects to JavaScript classes. Notes: github.com/lume/classy-... Example declarative class with @​signal, @​memo, and @​effect members:
2110
Joe Pea @joe.trusktr.io · 17/12/2025
React is one of the worst options these days, despite how much it continues to outpace everyone else. Here's a chart showing it exponentially snowballing non-standards-aligned (non-custom-elements) libraries too, all of which are basically a better choice today:
200
Joe Pea @joe.trusktr.io · 17/12/2025
React continues to snowball exponentially, unfortunately. Outpacing newer, better, standards-aligned techs (chart from npm stat). Probably due to herd mentality and picking a library merely beacuse the usage count is higher. Imagine if people rebalanced their picks based on technical merits.
291
Joe Pea @joe.trusktr.io · 17/12/2025
I think Custom Elements are perfect for this too. Unfortunately React is still snowballing exponentially and leaving CE libs behind. Plot from npm stat:
120
Joe Pea @joe.trusktr.io · 10/12/2025
I often hit this text editing bug in Apple iPhone on Bluesky, making it impossible to edit what I'm posting. Looks like a iOS Safari bug I've only seen triggered on Bluesky. The caret and text selection drawings are rendered in the wrong visual location.
010
Joe Pea @joe.trusktr.io · 08/11/2025
Yet another AI fullstack app maker using a standards-shunning framework that I will never use for new apps, making this GitHub product unusable for people who prefer modern standards-aligned innovative tech. A real **good** app maker would give people custom elements compatible with all frameworks.
290
Joe Pea @joe.trusktr.io · 07/11/2025
@jay.bsky.team @pfrazee.com @emilyliu.me longstanding bug in mobile web browsers: the buttons in the post form stop doing anything after interacting with the text area in certain ways. Not sure how to reproduce, but to get out of broken state always requires a full refresh. See video (iOS):
120
Joe Pea @joe.trusktr.io · 07/11/2025
React is shamefully still shipped as CommonJS modules more than TEN YEARS after JavaScript modules have been standardized.
4151
Joe Pea @joe.trusktr.io · 27/10/2025
Anyone use this trick to get a boxed Symbol (an actual Symbol object in JavaScript)? If so, what for?
040
Joe Pea @joe.trusktr.io · 27/09/2025
Copilot being funny? Copilot code completion to the right of my cursor when I typed `@` says "@Copilotyright Microsoft Corporation. All rights reserved."
040
Joe Pea @joe.trusktr.io · 11/08/2025
000
Joe Pea @joe.trusktr.io · 11/08/2025
I need someone who can create physical PBR materials for a paid project. Please DM if you have time available to discuss scope and quote the cost. Preview of the project below, on which materials are needed. #blender #blender3d #3dart #c4d #cinema4d #substance
120
Joe Pea @joe.trusktr.io · 16/03/2025
When you have a forum and then get spam walled by bots with Google accounts probably says more about Google than the forum!
000
Joe Pea @joe.trusktr.io · 11/03/2025
I can't do any dragging on my phone. I recommend pointerevents and always testing with responsive mode in devtools to make sure it works on mobile; it's easy to do up front. Also the text is clipped and I can't see it even when editing.
100
Joe Pea @joe.trusktr.io · 06/03/2025
I revised this custom elements everywhere test proposal. Svelte and React do have explicit on*= syntax for events, which is worth something. There's still ambiguity, for example if an element has a onset property that is not an event, we don't want to listen for "set" events.
110
Joe Pea @joe.trusktr.io · 05/03/2025
Some frameworks (Stencil.js, @react.dev, @svelte.dev) are 0% passing a new Custom Elements Everywhere test in the works. Fingers crossed for updates! Other frameworks (@lit.dev, @solidjs.com, Lume, Pota) are fully passing, with @vuejs.org and @angular.dev almost there. github.com/webcomponent...
3143
Joe Pea @joe.trusktr.io · 04/03/2025
Behind the scenes lume.io Setup: - Pixel 6 Pro (Android) - Termux with Neovim - Unexpected Keyboard (the best Android developer keyboard) - Toilet seat - Bathroom rug
5100
Joe Pea @joe.trusktr.io · 19/02/2025
I'll definitely be turning on erasableSyntaxOnly:true in TypeScript 5.8! Very nice! It enforces that all type definitions are annotations only, so when you strip the annotations, you end up with exactly the JavaScript you would have written without annotations (no enum, no namespace, etc)!
0174
Joe Pea @joe.trusktr.io · 18/02/2025
Look at how good Google Chrome's CSS 3D rendering engine is in this video! Because it is that good, no one uses it. Why would they? Millions of dollars spent since at least 2011 making a junk CSS 3D engine that hardly anyone does anything meaningful with.
110
Joe Pea @joe.trusktr.io · 18/02/2025
Have you ever wondered why no one uses Google Chrome's built-in CSS 3D engine? Because it constantly glitches the fuck out like in the following video. Just imagine if Unity, Unreal, or Source engines constantly glitched the shit out of your games. You would not use those engines! It's garbage.
130
Joe Pea @joe.trusktr.io · 12/02/2025
Here's a small sample idea, the API surface is not totally ironed out, but roughly something like this to paint a small picture:
<element name="my-el" export>
  <attribute name="foo-bar" prop="fooBar" />

  <h1>Value: ${this.fooBar}</h1>

  <style> h1 { color: red; } </style>
</element>
100
Joe Pea @joe.trusktr.io · 12/02/2025
Literally a "profile pic" haha.
A profile shot of my head from the right side, in dark light, with a bright light reflecting off the profile of my face so that only the outline of the front of my face is visibly lit, with colorful light bokehs scattered across the photo in front of the profile.
000
Joe Pea @joe.trusktr.io · 02/02/2025
Finally got to circle back. With a sprinkle of HTML the model and env map is viewable in a browser. Next we'll start tweaking to get it closer to the original (green background, lines, etc).
110
Joe Pea @joe.trusktr.io · 30/01/2025
7 days earlier "Trump Guts Key Aviation Safety Committee, Fires Heads Of TSA, Coast Guard" www.latimes.com/world-nation...
Screenshot showing a news outlet headline "Trump Guts Key Aviation Safety Committee, Fires Heads Of TSA, Coast
Guard", followed by the words "7 Day Later", followed by screenshot of a news anchor on CNN Live video with the headline "60 Passengers, 4 crew on board in plane collision with Blackhawk".
000
Joe Pea @joe.trusktr.io · 29/01/2025
Making an html tagged template string function that accepts a limited HTML syntax that can be fully parsed with regexes is completely valid. Entire successful production applications are written this way, in fact. No one wants random gibberish in their human-written HTML.
The statement in this answer about "using regexes for parsing a limited, known set of HTML" is very valid. Example use case: making an html tagged template string function that accepts a limited HTML syntax that can be fully parsed with regexes is completely valid. Entire successful production applications are written this way, in fact. No one wants random gibberish in their human-written HTML.
110