Sign in

Matteo Gassend

@matteogassend.com
125 followers 244 following 198 posts

Software Developer, trying to build useful stuff that (probably) nobody will ever use aside from me

PostsRepliesMedia
Matteo Gassend @matteogassend.com · 26/08/2026
Managed to write a whole Minecraft server management app in laravel and deploy it on a vps where only users in a NetBird group can connect, ama Will share the source code once it’s done, but for now I can connect and play on a server running in docker
000
Matteo Gassend @matteogassend.com · 14/08/2026
Other small php package i've tagged yesterday: commonmark-directives! It adds a parser & renderer for markdown directives into the commommark package; just add a class with a render method and you're off to the races :) github.com/matfire/comm...
github.com
GitHub - matfire/commonmark-directives
Contribute to matfire/commonmark-directives development by creating an account on GitHub.
110
Matteo Gassend @matteogassend.com · 09/08/2026
Here's something I tagged earlier today: a helper package to use electricsql with laravel! I wrote and tested it to use with inertia + react + tanstack db and it works really well :) github.com/matfire/lara...
github.com
GitHub - matfire/laravel-electricsql
Contribute to matfire/laravel-electricsql development by creating an account on GitHub.
000
Matteo Gassend @matteogassend.com · 22/07/2026
Here's the latest package I've been working on for @astro.build: npmx.dev/package/@matfire/astro-dir… You can register your astro components as handler for markdown directives (with Sätteri) and have them replaced with said component at render time (no js needed)...
140
Matteo Gassend @matteogassend.com · 09/07/2026
Better-releases just got some well deserved love! github.com/better-relea... Here’s a list of new things that just landed: - Support for changelogen alongside git-cliff - better workflow generation with commands instead of inlined bash - support for yaml files ⬇️
github.com
GitHub - better-releases/brel
Contribute to better-releases/brel development by creating an account on GitHub.
100
Matteo Gassend @matteogassend.com · 05/07/2026
following the new @astro.build release, I decided to make a satteri version of my photoswipe plugin (originally for rehype); you can find it here: npmx.dev/package/@mat... And also see it live on any article on my website :)
npmx.dev
@matfire/satteri-photoswipe - npmx
A Satteri plugin that prepares images for PhotoSwipe
1110
Matteo Gassend @matteogassend.com · 14/06/2026
Btw if you’re interested in trying it out and help me find any rough edges hit me up 🤙
000
Matteo Gassend @matteogassend.com · 14/06/2026
Some news about Facteur: things are moving!
mlogs.leaflet.pub
Facteur EP 2: Status Update
000
Matteo Gassend @matteogassend.com · 17/05/2026
Did I mention a made a small tool for Release management? It's called better-releases (aka Brel) and I just wrote a small blog post about it. You can find it here: go.mgsnd.link/brel
go.mgsnd.link
Better Release PRs with brel
Better releases, a universal tool for release prs that just works
030
Matteo Gassend @matteogassend.com · 08/05/2026
Something I've been thinking about for a while. More on it soon™
mlogs.leaflet.pub
Facteur EP 1: Architecture
000
Matteo Gassend @matteogassend.com · 14/03/2026
I tried building a sluggifier package for @drizzle.team inspired by laravel-sluggable from spatie and I just tagged v1.0.0. If this is something that might come in handy, you can find it here: npmx.dev/package/@mat... Do let me know what you think (can definitely be improved I think)
npmx.dev
@matfire/drizzle-sluggable - npmx
Generate unique scoped slugs for Drizzle ORM inserts and updates
100
Matteo Gassend @matteogassend.com · 20/02/2026
I think I did this right? All my articles should be synced to a standard publication, with links working correctly between the publication and the documents 🎉🎉
000
Matteo Gassend @matteogassend.com · 11/02/2026
focuscast is coming to a streamdeck near you! 🎉 (it just needs to be approved first)
show a table of versions for focuslive with version 0.1 in a status of "pending review"
000
Matteo Gassend @matteogassend.com · 05/02/2026
ah, that feeling when you're just debugging adding things to the screen and it looks terrible but you haven't had to go down the rabbit hole of ui/ux and lost hours on it...
a yellow block, a green block and a red block with random text inside
000
Matteo Gassend @matteogassend.com · 27/01/2026
And now we have a website: focuscast.live
focuscast.live
Focuscast | OBS scene automation from your focused window
Focuscast is a terminal UI app that automatically shows or hides OBS scene items based on the focused window. Configure mappings, run a clean CLI, and keep your stream in sync.
000
Matteo Gassend @matteogassend.com · 26/01/2026
I made a thing that's practically finished! Focuscast is a @ratatui.rs tui that allows users to create mappings between applications and obs sources. It will automatically toggle the visibility of the created mappings when the focused window gets changed
120
Matteo Gassend @matteogassend.com · 25/01/2026
Also did this for a yet to be released package, more on it soon
000
Matteo Gassend @matteogassend.com · 25/01/2026
Finally setup proper distribution for balzac using @release-plz.dev and dist! I am happy to announce you can now get balzac from brew, npm and as binary packages: you can check the latest release here github.com/getbalzac/ba... Easiest way to use it definitely to just npx balzac build
github.com
Release 0.1.8 - 2026-01-25 · getbalzac/balzac
Release Notes 🐛 Bug Fixes Npm release Install balzac 0.1.8 Install prebuilt binaries via shell script curl --proto '=https' --tlsv1.2 -LsSf https://github.com/getbalzac/balzac/releases/download/v...
000
Matteo Gassend @matteogassend.com · 22/01/2026
Wow is @tanstack.com ai good! Managed to setup a small website generator with custom system prompts, tools and such in record time and with little friction on the package size (more of a prompting issue). Still need to figure out a way to save/restore message history server side…
110
Matteo Gassend @matteogassend.com · 21/01/2026
Oh yeah, forgot to mention Balzac now has support for automatic sitemap generation! This required some (a lot of) rework of the build pipeline, but now it has opened the path more useful helpers which were impossible before, like being able to get the list of all elements in a collection to build a
100
Matteo Gassend @matteogassend.com · 20/01/2026
Live working on a linear alternative built (partly) with automerge, come hang out! www.twitch.tv/code_tavern
twitch.tv
Code_Tavern - Twitch
Your friendly neighborhood developer.Mostly working on side projects.Also created Magitools, a suite of productivity tools
000
Matteo Gassend @matteogassend.com · 15/01/2026
mlogs.leaflet.pub
Jobtrail EP 5: The end of the Trail (For Now)
000
Matteo Gassend @matteogassend.com · 13/01/2026
Aaand we've got docs fresh out the oven! built with starlight (honestly I did not want to remake all components in handlebars to use balzac to build balzac's docs - though that's possible) docs.balzac.rs
docs.balzac.rs
Balzac
Fast, safe static site generator in Rust
000
Matteo Gassend @matteogassend.com · 12/01/2026
Balzac has experimental support for vite as a bundler. If enabled, it will read the vite manifest file and provide a {{vite_url}} handlebars helper to automatically get the proper url for an asset. Or will be merged shortly, but still needs some more logic to work flawlessly
100
Matteo Gassend @matteogassend.com · 09/01/2026
Finally started looking into #automerge and I think I’m hooked. Still need to figure network sync with authentication, but shouldn’t be too hard (hopefully)
000
Matteo Gassend @matteogassend.com · 08/01/2026
Balzac 0.1.3 is out! Partially built live on twitch, this is an experiment in static site generation using #rust. You can find more info on it at balzac.rs and the latest release at github.com/getbalzac/ba.... 0.1.3 brings markdown collections with frontmatter parsing...
balzac.rs
Balzac - Fast, Safe Static Site Generator
Memory-safe static site generator with Handlebars templating and Markdown content collections.
110
Matteo Gassend @matteogassend.com · 04/01/2026
Got collection rendering working with markdown files 🎉 Now I just need to get frontmatter parsing working (& some. refactor to make it easier to read) and we're off to the races btw the website is here: balzac.rs (currently also working on docs)
balzac.rs
Balzac - Fast, Safe Static Site Generator
Memory-safe static site generator with Handlebars templating and Markdown content collections.
000
Matteo Gassend @matteogassend.com · 04/01/2026
Live again working on balzac, a static site generator written in #rust www.twitch.tv/code_tavern
twitch.tv
Twitch
Twitch is the world
000
Matteo Gassend @matteogassend.com · 03/01/2026
Going live to learn rust here in a few minutes, come and have fun ! www.twitch.tv/code_tavern
twitch.tv
Twitch
Twitch is the world
000
Matteo Gassend @matteogassend.com · 20/12/2025
mlogs.leaflet.pub
Jobtrail EP 4: Feature Parity & Trails
000
Matteo Gassend @matteogassend.com · 16/12/2025
New jobtrail update: a bit of an explanation of the original architecture and the new one
mlogs.leaflet.pub
Jobtrail EP 3: Laravel New'd
010
Matteo Gassend @matteogassend.com · 16/12/2025
Update: Graph is back down, as is my heart rate
000
Matteo Gassend @matteogassend.com · 15/12/2025
Now this is what I like to see! Had a little issue with docker images and containers taking up way too much space (even though snapshots only took like 50gb). Pruned some stuff and storage is being free
000
Matteo Gassend @matteogassend.com · 10/12/2025
Second log for Jobtrail: a bit of rambling about creating effective checkpoints
mlogs.leaflet.pub
Jobtrail EP:2 Thinking about Checkpoints
000
Matteo Gassend @matteogassend.com · 09/12/2025
Decided to give leaflet a try! Think of this publication kind of like a devlog. I'll later look into incorporating these posts in my website, but that will be way down the road
mlogs.leaflet.pub
Jobtrail EP 1: The art of yak shaving
010
Matteo Gassend @matteogassend.com · 01/12/2025
How did I find myself building a job application platform instead of looking for and applying for jobs? Is this what they call yak shaving? Will have more info on this soon, since it will be open source and mostly free to use 👍
000
Matteo Gassend @matteogassend.com · 26/11/2025
Well, looks like I'm on hunt for a place to work... So here's the spiel: if you need a developer that can do frontend, backend, PHP, JS, Go (kind of), Rust (kind of), Python and can work on its own (remote), hit me up! You can check what I do/write in my website (link in bio)
010
Matteo Gassend @matteogassend.com · 08/11/2025
And now my other package (for remark, this time) is updated to use tsdown & esm only github.com/matfire/remark-directive…
010
Matteo Gassend @matteogassend.com · 07/11/2025
just tagged v1.0.0 of rehype-photoswipe early this morning! It's now fully converted to typescript, esm only and built on tsdown :) You can find the repo here: github.com/matfire/rehype-photoswipe And it's also what I use on my website for blog/project images 😉
030
Matteo Gassend @matteogassend.com · 24/10/2025
What if, instead of focusing on writing a new blog post, I remade my website once again ? And, on top of that, I built my own "framework" ? It would be stupid right ? Unless... I mean I've been trying to find a reason to dive into making Vite plugins & testing nitro v3... But it would be stupid...
020
Matteo Gassend @matteogassend.com · 21/10/2025
Concorde (concorde.sh) has been indexed by context7! Now you can easily use it with your agent of choice 🥳 (llms.txt coming soon-ish)
000
Matteo Gassend @matteogassend.com · 14/10/2025
I think I finally made something useful: Concorde (concorde.sh)! Concorde is a type safe wrapper for Pusher (server & client side) that provides a way to declare all the events you'll handle in advance...
200
Matteo Gassend @matteogassend.com · 22/09/2025
New article just dropped! Learn how to build an rss/atom feed for your @nuxt.com website using server routes and nuxt content collections: www.matteogassend.com/articles/nux...
matteogassend.com
Making an RSS Feed for a Nuxt Website
learn what an rss feed is and how to build one for Nuxt website
010
Matteo Gassend @matteogassend.com · 20/09/2025
I have a newsletter ! You can sign up for it on mostly any page of my website (www.matteogassend.com). I swear I won't spam you :)
matteogassend.com
Matteo G
Matteo Gassend is a fullstack developer with 3 years of experience
010
Matteo Gassend @matteogassend.com · 01/09/2025
New portfolio is up! 🎉🎉 Based on the "spotlight" template from @tailwindcss.com and reworked to work with @nuxt.com and nuxt content. Works like a charm ! You can find it here: www.matteogassend.com
000
Matteo Gassend @matteogassend.com · 09/08/2025
An unholy (or most holy) union has been performed! I am using resend’s React-email inside a @nuxt.com 4 project, along with the preview server and full type safety up to the api route 🎉 Article coming soon, but I’ll need to polish the implementation a bit
100
Matteo Gassend @matteogassend.com · 14/07/2025
I recently (kind of) participated in the T3Chat Cloneathon where I tried to build my own ai chat webapp. Here's the postmortem for it! www.matteogassend.com/blog/t3-clon...
matteogassend.com
T3Chat Cloneathon Postmortem
I participated in the T3Chat cloneathon; here's how it went
020
Matteo Gassend @matteogassend.com · 11/07/2025
I scored 11/28 on jsdate.wtf and all I got was this lousy text to share on social media.
jsdate.wtf
new Date("wtf")
How well do you know JavaScript's Date class?
000
Matteo Gassend @matteogassend.com · 15/06/2025
Currently trying to compete in the #t3chat cloneathon. Just merged the feature allowing you to BYOK (Bring Your Own Key) to any provider that supports it (whihc right now is only OpenRouter)
000
Matteo Gassend @matteogassend.com · 10/06/2025
The epitome of procrastination: building a text editor to write articles in instead of actually writing articles I'm almost done, I swear!
a screenshot of a markdown editor with a live preview on the side
000