← Palu Gada

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
Jun 19, 2026·2 min·open-source

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
Jun 19, 2026·2 min·open-source

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
Jun 19, 2026·4 min·global

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()
Jun 18, 2026·2 min·open-source

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.
Jun 18, 2026·5 min·indonesia

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
Jun 18, 2026·3 min·global

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.

Jun 17, 2026·2 min·open source

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
Jun 16, 2026·2 min·indonesia

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
Jun 16, 2026·2 min·indonesia

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
Jun 16, 2026·2 min·open-source

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
Jun 16, 2026·2 min·open-source

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
Jun 16, 2026·2 min·open-source

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
Jun 16, 2026·2 min·open-source

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
Jun 16, 2026·2 min·open-source

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
Jun 16, 2026·2 min·open-source

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)
Jun 16, 2026·3 min·indonesia

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
Jun 16, 2026·2 min·data

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
Jun 16, 2026·2 min·indonesia

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
Jun 11, 2026·4 min·ai-agents

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
Jun 11, 2026·3 min·ai-agents

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)
Jun 11, 2026·5 min·ai-agents

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
Jun 11, 2026·3 min·ai-agents

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
Jun 10, 2026·9 min·ai-agents

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
Jun 10, 2026·6 min·ai-agents

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
Jun 9, 2026·3 min·ai-agents

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
Jun 9, 2026·2 min·marketing

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
Jun 8, 2026·2 min·ai-agents

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)
Jun 7, 2026·1 min·devtools

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.