Sign in

Matt Rossman

@mattrossman.com
97 followers 265 following 69 posts

AI Tooling @supabase.com Writing: mattrossman.com I build web applications with emerging tech. Geeked about @effect-ts.bsky.social

PostsRepliesMedia
Matt Rossman @mattrossman.com · 12/09/2025
Made me chuckle 😆 hope your throat recovers, I was nursing a cold with supasoup this week too
010
Matt Rossman @mattrossman.com · 11/09/2025
Supabase laptop looking fresh
A silver MacBook Pro with a black skin and green Supabase logo adhered, its lid lifted, positioned atop the original laptop box relabeled with masking tape as "SupaBook Pro".
130
Reposted by Matt Rossman
Supabase @supabase.com · 02/09/2025
Supabase Select brings together the top builders in the industry Join Guillermo Rauch, CEO and Founder of @vercel.com speaking in Track 1 Apply today: select.supabase.com
171
Matt Rossman @mattrossman.com · 13/08/2025
Delighted to share that I’ve joined @supabase.com to work on AI tools! Open source has taught me so much, so it’s a privilege to now contribute full-time in this space. Excited to help make this excellent developer platform even better!
Matt stands in front of a wall of greenery wearing a black hoodie with Supabase branding atop a green T-shirt, and a black ball cap with the Supabase logo.
050
Reposted by Matt Rossman
Eric Migicovsky @ericmigi.com · 13/08/2025
We're really proud to show off the final design for Pebble Time 2*! It's quite a bit sleeker and imo more awesome looking than the original design for Core Time 2 we showed off in March. I hope you like it!
5935447
Reposted by Matt Rossman
James Clifford Kane @jamesckane.bsky.social · 06/08/2025
My Voices of VR interview is out! I spoke to @kentbye.com at @awexr.com about my game, WebXR broadly, and publishing on @viverse.com. I'm a huge fan of this podcast b/c of Kent's journalistic objectivity and ethics, but also his genuine enthusiasm and deep experience voicesofvr.com/1615-viverse...
voicesofvr.com
#1615: Viverse’s WebXR Publishing Strategy with James C. Kane & “In Tirol” Game – Voices of VR Podcast
0126
Reposted by Matt Rossman
Rob Palmer @robpalmer.bsky.social · 30/07/2025
ECMAScript excitement 😉 Congrats to @bakkot.com on advancing UInt8Array ↔️ Base64/Hex to Stage 4 at TC39 this week 🎉 UInt8Array.prototype. toBase64 toHex UInt8Array. fromBase64 fromHex It lets you convert directly between binary data and Base64/Hex strings 👍
let arr = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);
console.log(arr.toBase64());
// 'SGVsbG8gV29ybGQ='
console.log(arr.toHex());
// '48656c6c6f20576f726c64'
let string = 'SGVsbG8gV29ybGQ=';
console.log(Uint8Array.fromBase64(string));
// Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100])

string = '48656c6c6f20576f726c64';
console.log(Uint8Array.fromHex(string));
// Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100])
1409
Matt Rossman @mattrossman.com · 08/07/2025
Note to self for the generated image
ray.so
Create beautiful images of your code
Turn your code into beautiful images. Choose from a range of syntax colors, hide or show the background, and toggle between a dark and light window.
000
Matt Rossman @mattrossman.com · 06/07/2025
Demo link from twitter for posterity
effect.kitlangton.com
Visual Effect - Interactive Effect Playground
An interactive visualization tool for the Effect library that demonstrates how Effect operations execute over time with animated visual representations and synchronized sound effects.
010
Matt Rossman @mattrossman.com · 06/07/2025
The sounds are excellent 🤌 @joshwcomeau.com would appreciate
110
Matt Rossman @mattrossman.com · 01/07/2025
Exporting video with correct colors from #DaVinciResolve is unexpectedly difficult... Something that looks great in editor looks maddeningly "off" in different viewers. I have a lot respect for creators who have mastered this! www.youtube.com/watch?v=1Qln...
youtube.com
Quicktime Color Management: why so many ISSUES?!
YouTube video by LE LABO DE JAY
010
Reposted by Matt Rossman
Eric Bailey @ericwbailey.website · 25/06/2025
I wrote about why I'm tired of reading about takes on quality. ericwbailey.website/published/qu...
ericwbailey.website
Quality is a trap
It is a proxy phrase, often born of an inability or unwillingness to articulate other concerns.
64914
Matt Rossman @mattrossman.com · 25/06/2025
github.com
GitHub - OlivierEstevez/astro-masonry: Zero-dependency responsive masonry layout component for Astro with minimal setup.
Zero-dependency responsive masonry layout component for Astro with minimal setup. - OlivierEstevez/astro-masonry
000
Matt Rossman @mattrossman.com · 25/06/2025
Updated my project template dashboard new.mattrossman.com to a more space-efficient masonry layout with the help of `astro-masonry`
100
Matt Rossman @mattrossman.com · 25/06/2025
Early builds of a rewritten SpotMenu (Spotify controls for Mac menu bar) are popping up in this thread, looking nice 👀 github.com/kmikiy/SpotM...
000
Matt Rossman @mattrossman.com · 24/06/2025
TIL about ::part() for letting web component consumers more easily style elements within the shadow DOM
developer.mozilla.org
::part() - CSS | MDN
The ::part CSS pseudo-element represents any element within a shadow tree that has a matching part attribute.
131
Reposted by Matt Rossman
mattbcool @mattcool.tech · 18/06/2025
On device voice assistant running on my Mac Mini w/Ollama and Home Assistant: mattcool.tech/posts/home-a...
Local Voice Assistant
021
Matt Rossman @mattrossman.com · 14/06/2025
An example to start from:
val.town
mattrossman/mcp-starter
000
Matt Rossman @mattrossman.com · 14/06/2025
The @vercel.com MCP adapter works with @val.town HTTP triggers (for streamable HTTP at least) meaning you can write and deploy MCP servers with TypeScript instantly, right in your browser!
151
Reposted by Matt Rossman
Deno @deno.land · 12/06/2025
Spotted on the changelog for Deno Deploy EA... Playgrounds! - Create and edit playgrounds - Multi-file playground support - Playground templates and settings docs.deno.com/deploy/early...
1296
Matt Rossman @mattrossman.com · 12/06/2025
I'd go a step further and say it should support a cleanup function too. State initializers can have side effects and solving this today adds re-renders. I want a hook that combines the strengths of useState (state management) and useEffect (dependencies, lifecycle management). x.com/the_ross_man...
x.com
Matt Rossman on X: "I can't shake the feeling that React is missing a primitive for managing resources that affect first paint. This `useResource` hook is impossible to write while respecting strict mode. https://t.co/Cv1KHBCuUc" / X
I can't shake the feeling that React is missing a primitive for managing resources that affect first paint. This `useResource` hook is impossible to write while respecting strict mode. https://t.co/Cv1KHBCuUc
110
Matt Rossman @mattrossman.com · 11/06/2025
When testing @pipecat.bsky.social examples with their prebuilt UI, you can manually submit user messages (or trigger other behavior of your choice) through the browser console via app messages by including a handler like this.
"""
Usage in browser console:

webRTCApp.smallWebRTCTransport.sendMessage({
  type: "user_content",
  content: "What's the weather in SF?"
})
"""

@transport.event_handler("on_app_message")
async def on_app_message(transport, message: dict):
    match message:
        case {"type": "user_content", "content": content}:
            await task.queue_frames(
                [
                    LLMMessagesAppendFrame([{"role": "user", "content": content}]),
                    context_aggregator.user().get_context_frame(),
                ]
            )
100
Matt Rossman @mattrossman.com · 10/06/2025
I use a $35 HP T620 Thin Client as my home server. I measured its energy usage over the past couple of months to assess how much it costs me to run a lightweight always-on server with #HomeAssistant and media management software (around $0.08/day).
mattrossman.com
Cost of running a thin client home server
000
Matt Rossman @mattrossman.com · 09/06/2025
Sometimes I want to interrupt an async function that doesn't support abort signals. In situations without side-effects, here's a wrapper to abort a promise and lazily discard its result. I generally prefer safer interruption patterns (as in #Effect-TS) but it's handy in a pinch.
mattrossman.com
Naive promise interruption
000
Matt Rossman @mattrossman.com · 01/06/2025
A helpful calculator for learning optimal synergies in #Balatro efhiii.github.io/balatro-calc...
efhiii.github.io
Balatro Calculator
Calculate the score of any Balatro hand
000
Matt Rossman @mattrossman.com · 31/05/2025
What camera / lens have you been using for these cat pics? They're so creamy!
100
Matt Rossman @mattrossman.com · 20/05/2025
I like to put `ignore/` in .gitignore for most projects I work on. When I want to create an untracked file (e.g. private notes, large static asset for dev) I can toss it in an `ignore/` folder anywhere. Wish something like this came in more starter templates! #git
010
Matt Rossman @mattrossman.com · 17/05/2025
I was going nuts trying to figure out why Cloudflare logs for my MCP server were showing requests every 5 minutes from my location. Turns out Claude Desktop was the culprit, even though I closed the app and removed the MCP server config it left an `mcp-remote` process running in the background 🙃
020
Matt Rossman @mattrossman.com · 12/05/2025
Coincidentally I was just fighting some height calculations this morning. Great article as always.
020
Matt Rossman @mattrossman.com · 08/05/2025
Mostly interested because this Pebble app gives access to a ton of HomeAssistant features (including Assist). It would be awesome to interact w/ arbitrary MCP servers from my wrist! github.com/skylord123/p...
github.com
GitHub - skylord123/pebble-home-assistant-ws: Control Home Assistant smart home directly from your Pebble smartwatch! This app uses WebSockets for real-time updates and control of your Home Assistant ...
Control Home Assistant smart home directly from your Pebble smartwatch! This app uses WebSockets for real-time updates and control of your Home Assistant devices and entities. - skylord123/pebble-h...
010
Matt Rossman @mattrossman.com · 08/05/2025
I want to upgrade my @home-assistant.io install soon to play around with their latest assistant features and MCP integration. www.home-assistant.io/integrations...
home-assistant.io
Model Context Protocol
Instructions on how to use the Model Context Protocol with Home Assistant.
110
Matt Rossman @mattrossman.com · 07/05/2025
If you use moonrepo.dev/proto to manage Node versions and face `EOENT` / `EPIPE` errors when configuring local MCP servers in Claude desktop, here's a solution that worked for me: github.com/modelcontext...
000
Matt Rossman @mattrossman.com · 06/05/2025
For people on Free/Pro plans that falls in the "editing config files" category and requires running a local wrapper process to interact with remote MCP servers. The recently announced "integrations" feature adds remote MCP but only on Max / Enterprise plans. www.anthropic.com/news/integra...
010
Matt Rossman @mattrossman.com · 06/05/2025
I'm glad remote MCP servers are becoming more of a thing, it feels more streamlined than the fragmented tooling for running servers locally. Wish there were better clients though, we're still stuck using IDEs and/or editing config files to chat with these things.
100
Matt Rossman @mattrossman.com · 06/05/2025
Building an MCP server with @cloudflare-dev.bsky.social agents SDK. It's an interesting mental shift writing an API where do you don't have to worry so much about the shape of your response. E.g. for a Bluesky tool I can neatly format feed data or dump it as-is, the model makes sense of it.
100
Reposted by Matt Rossman
VIVERSE Official @viverse.com · 21/04/2025
🚀 All week, we’re sharing powerful voices from the VIVERSE stage at GDC 2025. Today, meet @jamesckane.bsky.social — a game dev pushing boundaries and redefining XR design with #VIVERSE. 🎥 Watch now: www.youtube.com/watch?v=un5ZZKupV-E #WebXR #JamesKane #VIVERSE #PlayCanvas
youtube.com
How James Kane Is Building XR Games Without Limits | VIVERSE @ GDC 2025
🎮 Don't just build games, build new realities. James Kane shares his journey into VIVERSE and WebXR, developing immersive games with PlayCanvas and pushing creative boundaries in digital space. Learn how experimentation, freedom, and powerful tools enable new storytelling inside XR.
063
Reposted by Matt Rossman
Seb ⚛️ ThisWeekInReact.com @sebastienlorber.com · 21/04/2025
😘 react.dev/blog/2025/04...
react.dev
React Compiler RC – React
The library for web and native user interfaces
0414
Matt Rossman @mattrossman.com · 21/04/2025
For comparison bobby.rebble.io, a relatively modest assistant built on Gemini, detects tool hallucinations and can set reminders, among other useful assistant features. I'm surprised this new android assistant was seen as a viable default for everyday users.
010
Matt Rossman @mattrossman.com · 21/04/2025
Phone auto switched to Gemini Assistant. Not only was it incapable of basic things like setting reminders, it confidently told me it set a reminder when it in fact did nothing. The lack of hallucination prevention is strange... Glad I had the option to switch back.
110
Reposted by Matt Rossman
Kevin Deng @sxzz.dev · 20/04/2025
The tsdown documentation site is now live! Check it out here: tsdown.dev
tsdown.dev
tsdown | The Elegant Bundler for Libraries
The Elegant Bundler for Libraries
511118
Reposted by Matt Rossman
frog @frogge.kernelangels.xyz · 17/04/2025
bsky.app/profile/jtsk...
2332531291
Reposted by Matt Rossman
Effect | TypeScript for the AI Era @effect-ts.bsky.social · 15/04/2025
"It makes doing the hard, tedious, and error-prone tasks that require discipline – easy, natural, first-class." – Dillon Mulroy @dillonis.online on why the Domains team at @vercel.com is betting on Effect. Watch Dillon’s full talk from Effect Days 2025 ⤵️ youtu.be/VZpr91dU03c
youtu.be
Effect for Domains at Vercel | Dillon Mulroy (Effect Days 2025)
YouTube video by Effect | TypeScript at Scale
072
Reposted by Matt Rossman
Bruce Lawson @brucel.bsky.social · 11/04/2025
Why do AI company logos look like buttholes? velvetshark.com/ai-company-l...
velvetshark.com
Why do AI company logos look like buttholes?
A humorous exploration of the uncanny resemblance between AI company logos and human anatomy. Discover why circular, gradient-based designs dominate the AI industry, and what this design convergence t...
57423
Reposted by Matt Rossman
Colin McDonnell 💎 Zod @colinhacks.com · 10/04/2025
Zod 4 is now in beta! 💎 7x faster object parsing 💎 20x reduction in tsc instantiations 💎 57% smaller core bundle size 💎 metadata via .meta() 💎 z.toJSONSchema() 💎 z.templateLiteral() 💎 z.stringbool() 💎 z.int32(), z.float32(), etc 💎 z.file() 💎 new logo 😇
v4.zod.dev
Introducing Zod 4 beta | Zod Docs
2130144
Reposted by Matt Rossman
Effect | TypeScript for the AI Era @effect-ts.bsky.social · 08/04/2025
Effect 4.0 is on the way – smaller, faster, and more refined. In his closing remarks, Michael Arnaldi, creator of Effect, shared what’s coming: ▸ ~20× faster streams & batching ▸ Smaller bundles ▸ STM integrated into core Big changes, same focus. www.youtube.com/watch?v=nyvB...
youtube.com
Building Effect 4.0 | Michael Arnaldi (Effect Days 2025)
YouTube video by Effect | TypeScript at Scale
0145
Reposted by Matt Rossman
Arielle Duhaime-Ross @adrs.bsky.social · 09/04/2025
Gross. www.nytimes.com/2025/04/08/b...
nytimes.com
Trump White House Won’t Respond to Some Journalists Who Display Their Pronouns
Some Trump administration officials have declined to answer questions from several journalists on the basis of their email signatures.
1322342
Matt Rossman @mattrossman.com · 03/04/2025
This convinced me to get a Rebble subscription! Gemini on my wrist is a convenient interface for complex interactions.
010
Matt Rossman @mattrossman.com · 03/04/2025
Previously I wrote about building these sorts of iCalendar generators on val.town, but cookies and JS requirements made programmatically fetching this data complicated. Instead I build/publish the feed via GitHub Actions so I can run a full headless browser. mattrossman.com/2025/01/06/t...
mattrossman.com
Turning data into calendar feeds
120