Safia Abdalla
banner
captainsafia.com
Safia Abdalla
@captainsafia.com
👩🏾‍💻: helping people build cloud services with oss at @microsoft.com.
✨: dream big and follow through even bigger.
📝: writing things at blog.safia.rocks
Another winter break coding side quest...

I created a CLI tool called "burrow" for managing local secrets, inspired by `dotnet user-secrets`. But, it’s a standalone executable and it uses SQLite instead of JSON as the backing store.

Check it out at safia.rocks/burrow/ 🐰
December 27, 2025 at 5:09 PM
OK, I like this interaction pattern for closing issues in Sprig 😍

Hover over the state icon and it turns purple. Click and you get a dropdown with different options for closing.

I really like when UI elements have "depth" like this but IDK about discoverability here...
December 26, 2025 at 8:49 PM
I see lots of tips around using tools like Mole to clean up your Mac.

Those work great for me but by far the best thing was turning off Apple Intelligence (which I don't use at all)...this was like 30GB before 😱
December 26, 2025 at 5:58 PM
My Christmas gift to myself is this feature in Sprig that uses the Anthropic SDK to map natural language queries to structure GitHub queries.

GitHub's query syntax is so rich and I only remember 5% of it...now I won't ever have to!

Happy holidays! 🎁❄️
December 25, 2025 at 5:42 PM
A thing I'm playing around with in Sprig is eager-fetching of issue details + comments when the user hovers over an item in the results list.

When they click to load it up in the preview, the data has already been fetched + cached and is rendering for rendering in the view.
December 24, 2025 at 11:31 PM
Scratching my own itch over winter break: building an alternative UI for GitHub Notifications to improve issue + discussion triage.

First must-have: comments sorted in reverse chronological order so the newest context is always immediately visible without weird scroll issues.
December 23, 2025 at 7:28 PM
I wrote this blog post about ANSI codes...

...which was actually just an excuse to sharpen my UX chops and build this little GUI for exploring how ANSI codes impact rendering. 🤠

Fun and easy with Tailwind + Claude + lots of iteration.

🔗 : blog.safia.rocks/2025/12/22/a...
December 22, 2025 at 6:10 PM
Drove past a construction site for a new townhouse development. Nothing’s built yet but they had the cluster mailbox units already up.

There’s a software engineering metaphor in there somewhere… 😆
December 21, 2025 at 6:18 PM
By Claude, we’re not entering 2026 with unfinished projects!

I've been polishing my CLI tool for git worktrees with features like syncing primary branches, navigating worktrees, self-updating, and auto-publishing signed builds.

It's getting there... 🪄
December 21, 2025 at 5:09 AM
went to the settings page to create a new PAT

ended up thinking about who should inherit my assigned issues when i die

when did this land on the GitHub settings page?
December 19, 2025 at 10:48 PM
ladies what's worse:

being gaslight by a man

or

being gaslight by an AI agent lying to you about what is in the fucking screenshot it took with the Playwright MCP?!!?
December 19, 2025 at 4:04 AM
idk why but this is my kink
December 17, 2025 at 11:40 PM
I spent much of the Aspire 13.1 cycle fixing how container images get pushed: removing implicit registries, making image pushes first-class, and unlocking more parallelism.

More extensibility, faster deploys. Heck yeah!

🔗: blog.safia.rocks/2025/12/15/aspire-image-push/

#aspire @aspire.dev
Fixing Aspire’s image problem: a look at container registry support in 13.1
Exploring the improvements to custom image registry support in Aspire 13.1, and why explicit modeling beats implicit behavior.
blog.safia.rocks
December 15, 2025 at 5:07 PM
It’s probably old news at this point but I finally updated the npm packages I was shipping to use trust publishing with OIDC for npm + GitHub Actions.

Getting my security hygiene in check before the new year 😆
December 15, 2025 at 12:54 AM
I just realized I fix bugs in my code the same way some musicians tune their guitar sometimes. 😆
December 14, 2025 at 3:09 AM
A key part of being a good dev is being able to understand code *conceptually* not *literally*.
December 11, 2025 at 11:27 PM
Saw a video of someone wrestling with setup for a dev tool and realized…I basically never do setup myself anymore?

I just point a CLI agent at the README/etc. and tell it to follow the instructions and configure things. It works well most of the time.

Anyone else doing this?
December 10, 2025 at 8:08 PM
One of my favorite AI tricks lately: letting Warp handle my gnarly rebases and merge conflicts.

As someone who lives in git on the command line, having AI slot directly into my terminal workflow feels way better than bouncing out to other tools.
December 8, 2025 at 7:20 PM
Aspire’s Docker Compose integration is a typed Compose graph + staged deployment pipeline that generates YAML, resolves params, builds images, and runs compose up.

Today’s post walks through the flow/philosophy behind it.

#aspire @aspire.dev

🔗: blog.safia.rocks/2025/12/08/a...
How Aspire composes itself: an overview of Aspire’s Docker Compose integration
A deep dive into how Aspire’s Docker Compose integration handles publishing, preparing, and deploying to a local compose instance.
blog.safia.rocks
December 8, 2025 at 5:57 PM
I didn't end up doing any of them during the week and had to catch up over the weekend, but I'm there!

If timing works out, I'll try to squeeze out Day 8 when it gets released tonight and see if I can get back on track the rest of the week 😅
December 7, 2025 at 9:49 PM
Reposted by Safia Abdalla
x.com/panchito built a _really_ slick looking Github file viewer clone that fully uses RSCs and new React features, as well as making smart use of modern CSS. Great writeup on the implementation:

wtbb.vercel.app

I tried browsing the React repo example and it's _fast_! Really impressive!
Without the blue bar
a github clone with NextJS 16 and cache components
wtbb.vercel.app
December 4, 2025 at 8:39 PM
You are me. What is this directory for and what does each directory inside it contain?
December 4, 2025 at 8:33 PM
oh gosh gimme a break
December 3, 2025 at 11:40 PM
Reposted by Safia Abdalla
December 3, 2025 at 7:43 PM
I'm very impressed by the electricians we hired who completed the project on-time.

However, they refused to patch the drywall they removed in the process and didn't appreciate the lecture that I gave them about ownership and agency. :/
December 3, 2025 at 8:05 PM