All Posts

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Q1 2025 Updates

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Q1 2025 Updates

Bringing Static Sites to the Fediverse: Enhancements and Implementations Integrating static sites into this ecosystem via the ActivityPub protocol presents unique challenges and opportunities. In this post, I share recent updates and discoveries from my journey to seamlessly connect static sites to the Fediverse. Enhancing Content Delivery with Customizable Templates One of the primary goals in integrating static sites with ActivityPub is to ensure that content is delivered effectively within the Fediverse.

When AI Spits Your Own Shitty Code Back at You

When AI Spits Your Own Shitty Code Back at You

A rollercoaster of pride, panic, and AI gasliting I code to relax. Some people do yoga, some meditate—I open VS Code at 11 PM like a gremlin-raccoon. Don’t judge. I work full-time at Microsoft, and between family time and my other hobbies, I somehow keep starting new side projects. I’ve got VocalCat, an AI interviewer for SOMOS.tech, some fediverse experiments, and a Mastodon fork where I play with identity and static blog integrations.

Why Agile Beats Processes and why the Agile Manifesto is the GOAT document of Software Development

Why Agile Beats Processes and why the Agile Manifesto is the GOAT document of Software Development

Processes, tools, and extensive documentation are not going to save your ass, but the Agile Manifesto may. A friend just landed a job after a long hiatus. The very next day, I asked him if he’d been fired yet. I know, I’m mean, but with my close friends, this is how we communicate. Don’t judge. He laughed (Narrator: in fact he did not) and then, for the bazillionth time, told me how nice it must be working at Microsoft.

Open Letter to Nonprofits and Public Organizations: Reconsidering Our Social Media Platforms

Open Letter to Nonprofits and Public Organizations: Reconsidering Our Social Media Platforms

Amplify Your Organization’s Voice: Embrace Radical Transparency and Authentic Connections Dear Leaders of Nonprofits and Public Organizations, In our digital age, social media platforms have become indispensable tools for communication, outreach, and community engagement. However, the landscape of these platforms is evolving, it’s crucial for organizations like yours to rethink where and how you engage online. The Challenge with Centralized Platforms Centralized social media platforms, such as X (formerly Twitter), operate under profit-driven models that can influence the dissemination of information.

How to Multistream Using Azure, Azure VM, MonaServer 2, and FFmpeg with OBS Studio

How to Multistream Using Azure, Azure VM, MonaServer 2, and FFmpeg with OBS Studio

In this guide, we will set up a multistreaming workflow using Azure, an Azure VM, MonaServer 2, and FFmpeg to broadcast to multiple platforms like LinkedIn Live and YouTube Live. We’ll use OBS Studio as the main streaming software. Let’s get started. Motivation Ever looked at those $15–$20/month streaming services and thought, “I have Azure credits—why am I paying for this?” Same here. Plus, my friend Luis Quintanilla introduced me to Owncast , which I plan to use soon.

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 8

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 8

Find the index and earlier parts of this series here. We’re almost there! Thanks for sticking with me on this journey. In this final part, we’ll integrate replies and comments into your static website. Motivation Integrating replies is quite similar to how we handled subscriptions. Since our posts now exist in the Fediverse, we want to treat them as first-class citizens. This means replies to our posts should appear on our site.

The Power of Representation

The Power of Representation

Yeah, I know the last 3 chapters are titled “The Power of…” but let me tell you, I like it, and it’s my blog. When I was a kid, I always knew I wanted to make something different for myself. Different from what? That was the question. I didn’t limit my imagination to a subset of possibilities. Everything was on the table: President of Mexico one day? Archaeologist discovering new dinosaurs?

The Power Struggle of Social Media Engagement

The Power Struggle of Social Media Engagement

The Power Struggle of Social Media Engagement Breaking Free: Reclaiming Visibility and Voice from the Algorithmic Gatekeeping. aka F**ck the algorithm. So, I have an account with about 20 followers on BlueSky, and I generate some engagement on almost every post. In stark contrast, I have another account on X/Twitter that has over 2000 followers, yet 99% of the time, it feels like I’m talking to the void. My impressions hover around 30, which means roughly 30 people see my tweets—about 1.

The Power of a Feel Good Story

The Power of a Feel Good Story

Breaking the Cycle of Fear: How We Can Spread a Better Kind of Story A few months back, I received a free book at a Microsoft event: Infectious Generosity by Chris Anderson. It sat on my bookshelf for a couple of weeks until one day, out of sheer boredom, I grabbed the shiniest cover one (a deep yellow) and started flipping through it. To my surprise, it’s written by the Head of TED (I love TED!

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 7

A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 7

You can find the index and other parts of this series here. We are almost done! Thank you for coming all the way into this journey. In this part we will learn how to broadcast (aka federate) your site posts to your folowers. Overview The federation of your posts (aka. sending your posts to live infitely in the fediverse) is pretty straighforward: sequenceDiagram BroadcastTool-Storage: Retrieve followers (actor uris) BroadcastTool-Follower-instance: Get actor info (including inbox uri) BroadcastTool-Filesystem: Get note json (post) BroadcastTool-Follower-inbox: Send a create action (wrapper of note) In a few words, you will iterate your list of followers, get their inbox url, and send a request to such url to create an fediverse object (note, article, etc.