@steffdoesthings Thanks for checking! The issue is fixed on Android, and I’m still working on the iOS fix. I’ll share an update once it’s resolved on both platforms.
Day 15: First real-phone test — app crashed on launch.
Old RN arch audio lib on new arch. Native load failed silently; nothing in JS logs.
Fix: replaced it with one that supports the current SDK.
Lesson: test on a real device earlier than feels necessary.
#buildinpublic
@steffdoesthings We found it through real-device testing and then traced it to the outdated audio library. We’re also checking the native logs now. Thanks for asking!
@leiitth Good call. We’ll keep Android Logcat and the Xcode console open during real-device testing, and look into adding crash reporting as well. Thanks for the advice.
@ffugenw Exactly. The hardest part was that the app looked fine in the JS logs while the native module failed underneath. Testing on a real device helped us catch it.
@ffugenw 댓글 문구:
Real-device testing can expose issues that logs and simulators miss. Thanks for sharing the fix and the lesson. We’ll make sure to test on actual devices earlier in our development process.
Korean Independence Day. No coding today. Went to a bar. Opened the app. Thought: "I built this." That's a good feeling. Back to work tomorrow. #buildinpublic
Week 2 recap.
Built: prompt caching, daily mood for each character, per-character verbal habits, visual-novel group scenes.
Broke: duplicate proactive messages, group chat 500s.
Learned: sameness is a bigger problem than wrongness. Wrong answers get reported. Bland ones just make people leave.
Next week: my first Android crash on a real device. #buildinpublic
2 weeks in. Made the decision: this is going GLOBAL. Not just Seoul. The world has amazing nightlife and nobody has built THE app for it yet. Big swing. #buildinpublic
Built a group scene screen styled like a visual novel: a large character portrait, a dialogue box, typed-out text, background mood changes.
Characters react to each other, not just to you. The boldest one speaks first and the others respond in order.
#buildinpublic#Day13
Bug report from a friend: "The app crashes when I search in Japanese." Well. Didn't know we were supporting Japanese. Time to think about i18n. #buildinpublic
Asked a character "how's your day?" and got "I'm here for you!"
Each character now gets a daily state: mood, activity, passing thought. Generated from their personality — night owl and early riser feel different.
The question gets a real answer.
#buildinpublic#Day12
Shared the link with 10 people. Got 47 page views by midnight. 47 people I don't know saw my thing. I'm irrationally excited about 47 views. #buildinpublic
The decision of the day: why my characters sounded alike.
Different settings, same speech habits.
Each character now has its own verbal habits: signature phrases, sentence endings, reactions.
Result: you can tell them apart blind.
#buildinpublic#Day11
Deployed to Vercel today. https://t.co/uGZtPd7TJv is live. Told nobody yet. Just wanted to see it on the real internet first. It's real now. #buildinpublic
Group chat returned a 500 error for no obvious reason.
The model API requires user and assistant messages to alternate. In a group, several characters reply in a row, so my history had two assistant messages back to back.
Fix: merge consecutive messages from the same role before sending.
Ten lines of code. Half a day to find them. #buildinpublic
Day 9: duplicate proactive messages.
Bug: characters sent the same "thinking of you" every time you came back.
Cause: chat screen asked the server for a proactive message on every focus.
Fix: ask on first load only + a DB lock so two requests can't both create one.
"on focus" is a trap. #buildinpublic
Cost week.
Most of my chat prompt is the same on every turn: the character's identity and rules. Only a small part changes (memories, mood).
I split the prompt into a fixed part and a changing part and turned on prompt caching for the fixed part.
Expected savings: roughly 40 to 50 percent on the model bill. I'll report the real number once I have enough traffic.
#buildinpublic