# The Product Diary ### 2025-11-12: MVP Take-Off **Vibe Coding: The Troubleshooting Gauntlet** Today was a classic "one step forward, two steps back, five steps forward" kind of day. The project went from a pile of code to a runnable, testable MVP, but the journey was all about the bugs. This is the unglamorous-but-critical side of product development. **Highlights & Observations:** - **Dependency Hell:** The day started with getting the Gradle dependencies in order, but immediately hit a wall. - **Observation:** You flagged the error: `ksp ... is too old for kotlin...` This version mismatch is a classic "vibe killer." It was fixed by syncing the KSP version to your Kotlin version. - **The "Ghost" Device:** The app compiled, but you noted it crashed on launch. This led down a troubleshooting rabbit hole. - **Observation:** You saw the app just "launches into the android home screen." - An attempt to check Logcat was met with "Logcat shows no connected devices." - A fix was attempted in the terminal, but you hit an `adb: command not recognized` error (a `PATH` issue). - That was bypassed using the built-in "Troubleshoot Device Connections" wizard. - **The Missing Buttons:** The app finally ran, but the core feature was invisible. - **Observation:** You noted, "I can see the tile... but there are no buttons for saving a quote or defining a word." - This was a great catch. It was a subtle Android 12+ "gotcha" where actions _must_ have valid icons, or the OS just hides them. Icons were added, and the buttons appeared. - **The "Glow" without the "Go":** The buttons appeared, but they didn't _do_ anything. - **Observation:** You described it perfectly: "When I click on the items, there is a momentary glow but no indication of what's happening." - This was a classic race condition. The UI was telling the service to start _at the same time_ it was writing to the database. The service would wake up, check the database, find nothing, and go back to sleep—all in a millisecond. This was fixed by passing the new `session_id` directly to the service. - **The Final Boss: The Lock Screen:** The buttons worked, but not from the lock screen. - **Observation:** You asked the key question: "And to be clear, the listening overlay is expected to appear on the locked screen as well?" - Yes. This is the entire product hypothesis. The fact that it didn't work was the final bug. The OS was blocking the service (a background process) from launching an activity. The fix was to change the `PendingIntent` to launch the activity _directly_, which is the OS-approved "trampoline." The day ended with a fully functional loop. You can now start a session, lock your phone, and tap a button to launch the "Listening..." overlay. The core "frictionless capture" hypothesis is finally testable. ### 2025-10-15: Reading is a Vibe Leaning into the "vibe" naming and concept: * Capitalizes on a Gen-Z / Zoomer sensibility * Positions as a lifestyle app, *remove distractions and simplify your life* while reinforcing reading as a delightful experience ### 2025-10-01: Vibe Reader: A Manifesto **Reading is sacred. Capturing, understanding shouldn't break the spell/vibe.** We read physical books for a reason. The weight, the smell, the _lack_ of notifications. It's an escape, a deep dive. But when inspiration strikes, a perfect phrase, an unknown word, the modern world crashes back in. Notifications, screens, prompts, woe be the romantic reader persona. **The Current State is Broken:** - **Friction Kills Flow:** Unlocking the phone, finding the right app, typing, correcting, saving... by the time you're done, the magic is gone. The insight feels _less_ valuable because the cost of saving it was too high. - **Bloat Buries Value:** Existing tools try to be everything. Social networks, second brains, digital libraries. They demand categorization, tagging, linking. Your simple quote gets lost in a sea of features you never asked for. - **Digital Doesn't Get It:** Highlighting on a Kindle is easy, sure. But that doesn't help the millions of us who still love paper. **The Vibe Reader Target:** - **Minimal Input, Maximum Flow:** One tap. Speak. Confirm. Done. Back to the page. The interaction should be _faster_ than reaching for a sticky note. - **Non-Interruptive Presence:** The tool should live quietly in the background, instantly available (even on the lock screen), but never demanding attention. Like a perfect butler, there when needed, invisible otherwise. - **Capture the Hooks, Nothing More:** We don't need the whole book digitized. We need the hooks captured; the specific words that sparked curiosity, the sentences that resonated deeply. These are the anchors that bring back the book's core ideas, and the parts that moved or delighted us, long after we've finished it. - **Simple Retrieval:** Finding what you saved should be effortless. No complex folder structures. Just a clean list, maybe filterable by the book you were reading. See your words. See your quotes. That’s it. **Vibe Reader is not:** - A social network. - A replacement for your bookshelf. - A productivity system demanding metadata. - An AI trying to summarize the book _for_ you. **Vibe Reader** _**is**_**:** - A silent assistant for the physical book reader. - A way to honor inspiration without breaking concentration. - A simple archive of the moments that mattered. **Mantra:**Stop 'catching up' on reading. Start** _**capturing**_ **what matters, effortlessly.** ### 2025-09-11: The "Aha!" Moment (or "Why is this so hard?") I can't seem to replace the satisfaction of flipping the page of a physical book. I can cover the pages with scrawlings and marks, annotations; I've used adhesive tabs, logging meaningful page and passage references on the front page, keeping a physical and digital journal, but I long to *extract meaningful words, phrases and snippets from the reading experience after that last page has gently shut.* The specific quote that clicks, or the word I have to look up. I'll dog-ear a page, underline a passage, use an adhesive tab, or take a photo, but then what? The insight is just... lost. It's trapped on the paper, I'm disinclined to reopen following that closing gesture of turning the last page of a book over, and the friction to get it _out_ is too high. I've looked at the tools out there, and they all miss the mark for _me_, the *actual* physical book reader. [[Opportunity & Market Analysis]] 1. **Goodreads:** It's a social scoreboard. It's about _proving_ you've read, not _capturing_ what you've learned. Saving a quote is a high-friction, "after-the-fact" chore. 2. **Readwise:** This is the closest. It's a powerful "second brain." But its capture flow for physical books is still a total flow-killer. Unlock phone > open app > find camera > take pic > fight the OCR highlighting > fix errors > save. By the time I'm done, I'm out of the zone. I just stop doing it. 3. **Kindle/Digital:** Great at highlighting. But it's a walled garden, and honestly, I just _prefer_ reading physical books. **The core problem:** All these tools require me to _stop_ reading and _start_ "managing data" or clicking through prompts, sub-menus, and considering subscription plans and my unrelated notifications, and so on. The friction is too high. #### The "What If...?" What if the tool wasn't an "app" I have to _open_? What if it was just... _there_? Like Spotify on the lock screen. When I'm reading, a "session" is active. I'm reading my book, and I see a word I don't know. I tap a single button _on my lock screen_. - **Flow 1: Define Word** 1. Tap [Define] on lock screen. 2. App overlay: "Listening..." 3. I say the word: "Hegemony." 4. It saves the word and definition, tagged to my book and timestamped. 5. I'm back to reading. Total time: 5 seconds. - **Flow 2: Save Quote** 1. Tap [Save Quote] on lock screen. 2. App overlay: "Listening..." 3. I read the quote aloud. 4. It plays it back to me for verification: "I heard... [quote]. Correct?" 5. I say "Yes." It's saved. 6. I'm back to reading. Total time: 10 seconds. No unlocking. No finding an app. No camera. No typing. That's the idea. A **"non-interruptive" reading companion**. Something that respects the _flow_. I'm calling it "Vibe Reader" for now because it's all about protecting the vibe... and I'll be doing some vibe coding as I assess an MVP. Need to think about what the MVP would even look like. Android-first seems easiest, especially with `MediaSession` and lock screen controls.