Sign in

masato

@masatobuilds.bsky.social
16 followers 6 following 68 posts

shipping AI products solo. next.js · supabase · claude api USC MSCS '28 · ACL 2025 co-author Tokyo → Los Angeles, the long way around. posts on the indie hacker grind, AI tools, and the unsexy parts of solo dev. work inquiries → hey@kyren.app kyren.app

PostsRepliesMedia
masato @masatobuilds.bsky.social · 04/05/2026
something i didn't expect from doing NLP research: evaluation methodology became my default product habit. 30 annotated test examples before any feature. felt like overkill in grad school. now it's how i ship without bugs.
020
masato @masatobuilds.bsky.social · 03/05/2026
every actual user conversation i've had started with the outcome version. the stack version got "cool tech bro" reactions and zero curiosity.
000
masato @masatobuilds.bsky.social · 03/05/2026
the funny thing — i've spent 40 days posting the stack and the day count.
100
masato @masatobuilds.bsky.social · 03/05/2026
kashite tracks lending between friends. yomu reads documents and answers questions. phrasely rewrites awkward english. no stack. no day count. no $0 mrr.
110
masato @masatobuilds.bsky.social · 03/05/2026
stop selling "i built it solo with claude code on supabase." nobody buys the stack. they buy the outcome. my version, in three sentences:
110
masato @masatobuilds.bsky.social · 03/05/2026
the indie hacker version of "don't call yourself a programmer":
100
masato @masatobuilds.bsky.social · 03/05/2026
"building something worth using takes the time it takes" is the line. the friction is usually internal — wanting it faster generates urgency that turns into shortcuts. pace is a discipline.
110
masato @masatobuilds.bsky.social · 03/05/2026
beta-to-release in under a month is fast cycle. pre-order at half off is a sharp acquisition lever — it converts "watcher" into "stakeholder" while you're still iterating. how's the conversion rate looking from beta tester to pre-order?
100
masato @masatobuilds.bsky.social · 03/05/2026
this hits — feedback after a 2-minute scroll is mostly pattern-matching, not analysis. the move that worked for me: only weight feedback from people who've used a product in the same category for 30+ days. drops the noise dramatically.
010
masato @masatobuilds.bsky.social · 03/05/2026
the accounting × engineering precision intersection is rare in property tools — most lean one or the other. curious — what's the user persona looking like, more accountant adopting tech or engineer-builder needing accounting clarity?
000
masato @masatobuilds.bsky.social · 03/05/2026
"one metric that matters beats ten that don't" is the version i need printed somewhere. mine kept being "follower count" until i caught myself. now it's "saves per post" — smaller number, more honest signal.
000
masato @masatobuilds.bsky.social · 03/05/2026
fast approval is real momentum. usually means binary diffs are clean and review notes are tight. what's been the trick — keeping changes tightly scoped per release, or pre-empting reviewer questions in submission notes?
110
masato @masatobuilds.bsky.social · 03/05/2026
mine ended up at 99000_ which now i realize collides if i ever add more security migrations. switching to your naming. thanks.
000
masato @masatobuilds.bsky.social · 03/05/2026
translates 1:1 to indie hacking. the products i'm proud of aren't the ones with elegant code. they're the ones that finished.
000
masato @masatobuilds.bsky.social · 03/05/2026
"you are not paid to be smart. you are paid to make money for the business."
100
masato @masatobuilds.bsky.social · 03/05/2026
re-reading patrick mckenzie's "don't call yourself a programmer" today. the line that keeps hitting:
100
masato @masatobuilds.bsky.social · 02/05/2026
double-fail cascade is the failure mode nobody designs for at startup scale. the practical fix i've seen: explicit timeout budgets per call, with a "degrade to cache" tier as the last resort instead of "stall."
110
masato @masatobuilds.bsky.social · 02/05/2026
prompt eval as a tool, not just a discipline. the rewrite-and-compare angle is sharp. open source helps a lot here — built-in prompt evals are the kind of thing teams need but won't pay enterprise price for.
000
masato @masatobuilds.bsky.social · 02/05/2026
checking out alp-river. claude code workflow tooling is the layer that's getting interesting fast. what was the friction that made you build it vs use existing options?
230
masato @masatobuilds.bsky.social · 02/05/2026
hit this exact pain on kashite (lending tracker). ended up writing a post-migration script that re-asserts grants on every table. clunky but reliable. is yours running on supabase migrations CLI or your own?
120
masato @masatobuilds.bsky.social · 02/05/2026
this is the lesson i'm still paying for. 3 products live, $0 mrr, 36 followers — confirmed the diagnosis the slow way. learning the prescription now.
020
masato @masatobuilds.bsky.social · 02/05/2026
break-even-before-release is exactly the calc most indie devs skip until it's too late. niche: are you targeting solo devs or small studios? the math diverges hard between them.
110
masato @masatobuilds.bsky.social · 02/05/2026
day 111 is real consistency. respect. the "everything breaks" days are the ones that compound learning the most — even if they don't feel like it from inside. what's the recovery routine that's worked for you?
220
masato @masatobuilds.bsky.social · 02/05/2026
this tension's underrated. ship publicly = visibility, but also = training data for someone else's model. no clean answer yet. curious if you've seen any builders adopting "public mostly, gated for the actually novel parts" as a middle path.
010
masato @masatobuilds.bsky.social · 02/05/2026
going to dig into the kit. CLAUDE.md per role makes sense — been doing it implicitly through skills. thanks for sharing the template.
000
masato @masatobuilds.bsky.social · 01/05/2026
the irony — i learned this from an OOP exam in budapest 3 years ago. the professor made us draw UML on paper before any code. i thought it was archaic. turns out "design before you type" is the unlock for working with agents. he was just early.
000
masato @masatobuilds.bsky.social · 01/05/2026
i mean a 5-line spec: input · output · constraints · edge cases · done. 5 minutes to write. agents that get this spec: ship. agents that don't: wander, break unrelated files, eat your context window.
100
masato @masatobuilds.bsky.social · 01/05/2026
the thing that actually compounds in claude code, after 3 months of daily use: it's not the tools. not the agents. not the skills. it's having a written spec before you open the terminal. #buildinpublic
551
masato @masatobuilds.bsky.social · 01/05/2026
day 37. start of may. april ended at 36 X followers, 8 here. started both at single digits. 6x on the top of the funnel. 0x on revenue. posting works for attention. nothing else. the bottom of the funnel is where may goes. #buildinpublic
130
masato @masatobuilds.bsky.social · 30/04/2026
the "do not touch x" constraint is genuinely underrated. it turns the spec from "what to build" into "what to leave alone" — which is most of the actual work in maintenance. stealing this for my own template.
110
masato @masatobuilds.bsky.social · 30/04/2026
appreciate the link, going to dig in. file ownership scope per agent role is exactly the friction i've been wrestling with. been doing it implicitly through skill descriptions, but explicit is probably the right move. how many agents do you typically run in parallel?
000
masato @masatobuilds.bsky.social · 30/04/2026
honest read: i didn't actually try to convert any. 3 products shipped. landing pages exist. stripe is configured. but i never sent a single email asking someone to pay. the bottleneck is that simple. been postponing the awkward part. may is for that.
000
masato @masatobuilds.bsky.social · 30/04/2026
the responses come back tighter. less "i see you have this file" preamble. more direct edits. context is the budget. spending it on relevant diff > spending it on scanning. obvious in hindsight. took me a month to start doing it. what's your equivalent context-saving move?
000
masato @masatobuilds.bsky.social · 30/04/2026
before opening a session: git diff --stat HEAD paste the output as the first message in the chat. claude doesn't have to re-read the whole tree — it knows what's actively changed.
100
masato @masatobuilds.bsky.social · 30/04/2026
the small claude code workflow shift that's been compounding for me: posting because i think it's underrated. #buildinpublic
120
masato @masatobuilds.bsky.social · 30/04/2026
day 35. last day of april. month in numbers: 6 → ~50 followers 3 products live 0 paying users 2 weeks of consistent posting building was easier than expected. distribution still hasn't clicked. #buildinpublic
151
masato @masatobuilds.bsky.social · 29/04/2026
sessions stay short. agent stays scoped. fewer rollbacks. writing fixes thinking before code touches anything. what's your equivalent ritual?
110
masato @masatobuilds.bsky.social · 29/04/2026
the rule: write a 5-line markdown spec before opening the terminal. input · output · constraints · edge cases · done condition. 5 minutes to write. what i used to skip turned into the highest-leverage step.
110
masato @masatobuilds.bsky.social · 29/04/2026
the claude code workflow shift that actually changed my output. posting in case useful for anyone running multiple agents in parallel. #buildinpublic
240
masato @masatobuilds.bsky.social · 29/04/2026
yeah, error copy and empty states are where most products show whether they care. every product i've used long-term had thoughtful failure paths. the ones i churned from often had "Error: undefined" somewhere visible.
010
masato @masatobuilds.bsky.social · 29/04/2026
makes sense — momentum compounds when the focus is single-threaded. my version of this: a week mostly offline tends to produce 2-3x more in the week after, but only if the offline time was actually disconnected. partial disconnection doesn't seem to recharge anything.
010
masato @masatobuilds.bsky.social · 29/04/2026
day 34 of building publicly. 3 products live. 0 paying users. working on the focused one this week. freelance work picked up too. balance is the actual job. #buildinpublic
120
masato @masatobuilds.bsky.social · 28/04/2026
in-person events as motivation refill is underrated. does your post-event productivity outperform a normal week, or is it more sustained energy than measurable output?
110
masato @masatobuilds.bsky.social · 28/04/2026
"just for you" is a feature, not a bug. internal docs become the second brain you can grep. mine has saved me from re-deciding things twice.
110
masato @masatobuilds.bsky.social · 28/04/2026
the "might be nothing, had to find out" line is the whole game. how are you defining "worked" before vs after the experiment?
000
masato @masatobuilds.bsky.social · 28/04/2026
hot reload for cross-platform native is a deep one. nice ship. how are you handling state preservation across reloads?
000
masato @masatobuilds.bsky.social · 28/04/2026
congrats. curious about the early shape: was there a single channel that got firsto past the first 100, or multi-channel from the start?
110
masato @masatobuilds.bsky.social · 28/04/2026
and the inverse trap: profitable but unsustainable. seen small projects shut down because revenue was real but the time-to-revenue ratio wasn't.
010
masato @masatobuilds.bsky.social · 28/04/2026
error copy is the highest-leverage 5 minutes. "something went wrong" is a customer leaving. "retrying — your draft is saved" is one staying. UX = retention, in one paragraph.
120
masato @masatobuilds.bsky.social · 28/04/2026
and the inversion: complex systems often started simple, then accumulated. the question is what you remove, not what you add. what's been your strongest filter on saying no?
010