Notes
Lessons from the build
Tips, lessons & tricks from real projects — AI agents, digital products, ads, dev tools. What broke, what worked.

Fixing Nested Attribute Resolution in GrowthBook JS SDK Experiments
The GrowthBook JS SDK was skipping experiments when hash attributes used dotted notation (like 'user.id') on nested objects. A fix reuses the existing dotted-path resolver to handle both flat and nested attribute lookups consistently.

Making Recording Export Quality Configurable in agent-device
Added a new --export-quality CLI flag to let users choose between medium and high quality video exports, replacing the hardcoded highest quality preset. This is a draft PR that wires together an existing but unused scaffold end-to-end through the CLI, client, daemon, and Swift export layer.

Conflict Dominates Labor Strike Posts, Then Overwhelms Them
Conflict framing accounts for 66% of labor strike posts on Bluesky but captures 88% of engagement, a 22-point amplification gap driven by a single viral story about the Delaney Hall strike.

Fixing Timeout Behavior in GrowthBook JS SDK refreshFeatures()
The GrowthBook JavaScript SDK was not persisting the timeout option from init() to later refreshFeatures() calls, causing network requests to hang indefinitely on slow connections. This fix ensures the initialization timeout is reused as a sensible default across all refresh operations.

Tapera's Coverage Problem: 34 Budget Stories, Zero Impact Stories. Why Indonesia's Housing Data Is Backwards.
Indonesian media covers Tapera FLPP almost entirely through money and policy moves, ignoring actual outcomes. Analysis of 100 headlines reveals a massive blind spot in how we track subsidized housing.

On Bluesky, climate talk is about holding power to account, not growth hype
I pulled 300 Bluesky posts about climate policy and weighted them by engagement. The growth and market framing that dominates press headlines is the least amplified theme here, at 2 percent. What the network actually boosts is policy and accountability.
Three of my open-source pull requests got merged this week, into comtypes and Bluesky's atproto
A small build-in-public milestone. Three fixes I contributed to open-source projects just landed, an exception-masking bug in comtypes, and two on Bluesky's atproto (a React Native login crash and an OAuth consent screen that overstated its permissions).

Tapera's Big 2026 Play: How Indonesia's Housing Fund Is Betting on Longer Loans & Digital Speed
BP Tapera just signaled a major shift—40-year FLPP terms, vertical housing, and a mobile app overhaul. Here's what the recent coverage tells us about where subsidized housing is headed.

Tapera's 2026 Bet: 43 Banks & 259K+ Homes Already Delivered, Here's What's Actually Happening
BP Tapera is scaling up subsidy housing distribution through 43 partner banks in 2026. We break down the numbers, the policy machinery, and what this means for Indonesia's affordable housing push, based on recent coverage analysis.

Parallel Document Uploads: From Sequential Bottleneck to Bounded Concurrency
xai-sdk-python now supports concurrent document uploads with configurable parallelism limits, eliminating sequential processing as a scaling bottleneck. This draft PR adds upload_documents() to both sync and async clients while maintaining backward compatibility.

Fixing Next Forge's Init Pipeline: Bun Scripts Leak into Non-Bun Projects
The next-forge init command was rewriting package manager configuration for npm/pnpm/yarn but leaving bun-specific script tokens untouched, causing generated projects to fail outside of bun environments. A new transformation step now rewrites these scripts to match the selected package manager.

Fixing a Hidden Bug in comtypes: When Exception Handling Masks the Real Problem
A bug in comtypes' struct packing logic was silently converting PackingError into UnboundLocalError, making debugging nearly impossible. This fix restores the original error and adds regression tests to catch it in the future.

OAuth Consent Screens Now Show Actual Permissions Instead of Overstating Bluesky Access
A draft fix to the atproto OAuth provider UI stops showing blanket 'manage profile, posts, likes and follows' language for narrow app.bsky.* scopes, replacing it with accurate per-collection details. This closes an informed consent gap where users couldn't see exactly what authority they were granting.

Fixing Silent Failures in Bluesky's Handle Resolution: When Errors Hide Security Checks
WellKnownHandleResolver was swallowing all non-abort errors, including critical SSRF protection violations, and returning null instead of surfacing the real problem. A fix ensures only genuine network timeouts map to null while security and validation errors bubble up.

React Native OAuth Login Broken by AbortSignal.timeout: A Cross-Platform Compatibility Fix
The oauth-client package relied on AbortSignal.timeout, a modern Web API unavailable in React Native, causing login flows to crash with TypeError. This fix adds a compatibility layer that detects the capability and falls back to manual timeout handling.

Indonesia is feeding 83 million people for $0.62 a meal, a case study in how fast welfare can scale (and break)
Makan Bergizi Gratis is the largest free-meal rollout on earth, bigger than America's 80-year-old school lunch program built in a single year. I put the two side by side with the data. The speed is staggering. So is the bill.

I analyzed 1,000 Hacker News front-page stories, long titles win and AI eats a quarter of the attention
I pulled the last 30 days of Hacker News front-page stories (1,000 of them, all above 100 points) through the public API and ran the numbers. Two findings broke my assumptions about what "wins" on HN.

I compared free-meal programs in 4 countries. The weird part: Indonesia spends 15x India's budget to feed fewer kids
India feeds 118 million children for $0.14 a meal. Indonesia feeds 83 million for $0.62, on a budget 15x larger. The US spends the most per meal. Singapore, the richest, runs no universal program at all. The numbers don't line up the way you'd expect.

Indonesia's biggest brands are nearly invisible to AI search, I scored 9 of them
I ran my GEO audit on the marketplaces and banks every Indonesian uses, Shopee, Tokopedia, BCA, BRI and more. The biggest names score the worst, and not one has the single file that makes a site easy for AI to quote.

Who owns Google Maps in Bogor? I checked the local pack for 4 dishes
AI assistants answer "best rumah makan padang near me" by reading Google Maps. So I queried the live local pack for four Bogor staples to see who actually shows up first, and what it takes to be them.

I built a free agent that scores any site for AI search (ChatGPT, Claude, Perplexity)
Classic SEO gets you ranked on Google. GEO gets you cited inside AI answers. I built a small agent that audits any URL and scores how ready it is to be quoted by ChatGPT, Claude, and Perplexity, and exactly what to fix.

You ask AI for "fried chicken", whose website wins? A&W vs KFC vs McDonald's
I ran my GEO audit agent on the three biggest fried-chicken chains in Indonesia to see whose site an AI assistant could actually cite. The result is a lesson in how much money doesn't help if a bot can't read you.

I built an AI agent that predicts the next fuel-price hike
Pertamax and Dex don't change at random, they follow an oil + exchange-rate formula. So I built an agent that forecasts the direction, date and estimated price of the next adjustment, from free data.
I built an agent that tells you which "BLT cair" is real, and which is a hoax
"Bantuan langsung tunai" is one of Indonesia's hottest searches, and a magnet for clickbait. So I built a small agent that lists the cash-aid that's actually active in 2026, and flags the claims that aren't.
I built an AI agent that ranks every KFC in town, and tracks where I've been
A small but complete case study: an agent that maps every KFC in a region by star rating using the Google Maps API, then layers on private state, visit frequency, coverage, and where to go next.

Clicks but zero sales, the funnel leak that almost fooled me
390 ad clicks, 0 sales. The problem wasn't the ads, it was four leaks after the click. Here's the diagnosis and the fix.

5 lessons from running AI agents in production
What I learned shipping Mona (a Telegram second-brain) and Bengkel AI (an automotive bot), the stuff that actually breaks, and how to build agents that survive real users.

Buttery 4K product demos with Playwright (no Screen Studio)
How I auto-record high-res, cinematic product demos straight from the browser with Playwright, and the one mistake that makes them look broken.