Made me chuckle π hope your throat recovers, I was nursing a cold with supasoup this week too
12.09.2025 02:26 β π 1 π 0 π¬ 0 π 0@mattrossman.com.bsky.social
AI Tooling @supabase.com Writing: mattrossman.com I build web applications with emerging tech. Geeked about @effect-ts.bsky.social
Made me chuckle π hope your throat recovers, I was nursing a cold with supasoup this week too
12.09.2025 02:26 β π 1 π 0 π¬ 0 π 0A 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".
Supabase laptop looking fresh
11.09.2025 21:29 β π 2 π 0 π¬ 1 π 0Supabase 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
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.
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!
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!
13.08.2025 12:57 β π 361 π 48 π¬ 59 π 13My 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...
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])
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 π
The sounds are excellent π€ @joshwcomeau.com would appreciate
06.07.2025 14:53 β π 1 π 0 π¬ 1 π 0Visual Effects
06.07.2025 02:20 β π 7 π 2 π¬ 2 π 2Exporting 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...
I wrote about why I'm tired of reading about takes on quality. ericwbailey.website/published/qu...
25.06.2025 14:07 β π 51 π 14 π¬ 6 π 2Updated my project template dashboard new.mattrossman.com to a more space-efficient masonry layout with the help of `astro-masonry`
25.06.2025 15:23 β π 0 π 0 π¬ 1 π 0Early builds of a rewritten SpotMenu (Spotify controls for Mac menu bar) are popping up in this thread, looking nice π
github.com/kmikiy/SpotM...
TIL about ::part() for letting web component consumers more easily style elements within the shadow DOM
24.06.2025 18:22 β π 3 π 1 π¬ 1 π 0Local Voice Assistant
On device voice assistant running on my Mac Mini w/Ollama and Home Assistant: mattcool.tech/posts/home-a...
18.06.2025 14:40 β π 2 π 1 π¬ 0 π 0The @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!
14.06.2025 00:53 β π 5 π 1 π¬ 1 π 0Spotted 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...
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...
""" 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(), ] )
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.
11.06.2025 16:09 β π 0 π 0 π¬ 1 π 0I 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).
10.06.2025 17:08 β π 0 π 0 π¬ 0 π 0Sometimes 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.
09.06.2025 12:19 β π 0 π 0 π¬ 0 π 0A helpful calculator for learning optimal synergies in #Balatro
efhiii.github.io/balatro-calc...
What camera / lens have you been using for these cat pics? They're so creamy!
31.05.2025 22:06 β π 0 π 0 π¬ 1 π 0I 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
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 π
17.05.2025 22:51 β π 2 π 0 π¬ 0 π 0