Writing

The modal is gone, Buffer works, and frontend observability is someone else's problem apparently

Moved posts to full pages, finally got Buffer working after a frustrating debug session, and had a conversation about Sentry that didn't go anywhere but probably should have.

The modal is gone, Buffer works, and frontend observability is someone else's problem apparently
Where I've been working on my Freestyle technique.

Said last week I might move posts off the modal and onto their own page. Did it the next day. Feels much more readable. Every time I looked at the admin page I liked what I saw, and the modal just felt like a worse version of the same thing. Pipeline is almost complete now. Still needs some prompt tuning for the draft generation, and thinking about adding Bluesky too.

Getting the Buffer integration working

The Buffer integration is finally working. I say "finally" because the debugging was more annoying than it should have been. The error was "Post must have either text or media". It sounds obvious until you realize the thread segments did have text, just not in the right place. Buffer wants a top-level text field on the input and the metadata structure. Having text only inside the thread array isn't enough. Once I figured it out it was a five-minute fix. The API docs chatbot saved me there.

Where CSV column logic should live

On the work side, spent time on a CSV export feature. The interesting question was where the column logic lives. Table component doing generic plumbing versus each analytics page owning what gets exported. Landed on: table stays dumb, pages configure the columns. Looks verbose but a smarter table starts making assumptions about what data means. I'd rather have explicit config.

Frontend observability is not the same as request logs

The more interesting work thing this week was a conversation about Sentry. My read on the situation: backend endpoints have been quietly changing or breaking without a corresponding ticket for frontend to follow along. QA keeps testing on prod instead of staging. A few weeks ago a subscriptions page broke in a meeting. Different users seeing things they shouldn't. First instinct was a frontend display bug. Turned out to be a broken API response giving users the wrong permissions entirely.

My point was that request logs and frontend error visibility aren't the same thing. Logs tell you HTTP succeeded. They don't tell you the React app hydrated wrong or a chunk failed to load. The response was that monitoring is handled by ops and QA catches errors. Fair enough, but I wonder if that's how it's supposed to work or just how it ended up working. Standard practice is usually some level of frontend observability. Didn't push it further, maybe should have framed it differently.

Outside of work

Outside of work: spent time troubleshooting a Turkish Airlines booking that kept failing. Turned out the bank was blocking the transaction, not the airline. Classic case of the error pointing at the wrong layer.

Also keeps coming back to me: I take a lot of photos but most just sit on my phone because I usually post 5 to 10 pictures at a time and anything that doesn't fit a carousel just stays there. The idea is a second profile where the others go, automated. Same pattern as the blog pipeline, drop images somewhere, Claude captions them, approval step, Buffer posts. Different surface, same four steps. Probably a weekend project.

← Back to writing