Back to Diary

Shipped Public badge for shared notes and released v2.0.0 builds

ImplementationDocumentationRelease
10 sessions4 commits#share #v2-release #android #ios #build

Development Diary - January 21, 2026

📋Daily Summary

Big release day! Prepared and submitted v2.0.0 builds for both iOS TestFlight and Android APK. Implemented the "Public" badge indicator that shows when a note has been shared, with a tap-to-share feature. Also created the v2.0 marketing plan with four real-life scenario-based campaigns showcasing the MODE Framework.


🕐Work Sessions

Session 1: Build & Deployment Fixes (12:35 AM - 3:52 AM)

Focus: Resolving Vercel deployment and build configuration issues

Activities:

  • Investigated and fixed Vercel deployment failures related to root directory configuration
  • Updated build configuration for EAS local builds
  • Added pnpm hoisting config to resolve dependency issues
  • Added Features link to website homepage header

Key Decision: Reverted apps/expo root directory to null since custom configuration didn't work with Vercel's deployment system.


Session 2: Marketing Plan Creation (12:36 AM - 3:51 AM)

Focus: v2.0 MODE Framework Marketing Campaign

Activities:

  • Created comprehensive marketing plan for v2.0 launch
  • Designed four real-life scenario campaigns:
    • "The Trip That Planned Itself" (Manager Agent)
    • "The Idea That Grew Up" (Muse Agent)
    • "The Recipe I Actually Used" (Librarian Agent)
    • "The Memory That Came Back" (Biographer Agent)
  • Made campaign content viewable on marketing dashboard
  • Published diary entries for Jan 19 and Jan 20

Session 3: Version 2.0.0 Release (3:53 AM - 2:30 PM)

Focus: Building and submitting v2.0.0 releases

Activities:

  • Updated package.json version to 2.0.0 (was out of sync with app.json)
  • Built Android APK locally for distribution
  • Submitted iOS build to TestFlight
  • Verified version numbers display correctly

Files Changed: 3 files (version updates)


Session 4: Public Badge Feature (2:30 PM - 9:25 PM)

Focus: Shared notes indicator and security verification

Activities:

  • Created get_share_status_batch() database function for efficient lookups
  • Built new shareStatusStore for caching share status
  • Implemented PublicBadge component with green globe icon
  • Integrated badge into NoteCard with tap-to-share functionality
  • Fixed share URL domain consistency (was using Vercel URL on iOS)
  • Hardcoded toonnotes.com as canonical share domain
  • Cleaned up unused environment variable documentation

Security Verification:

  • Confirmed private notes are protected by RLS policies
  • Verified share tokens have sufficient entropy (~64 bits)
  • Public notes only accessible via valid share tokens

Files Changed: 13 files (+385/-32 lines)


🏷️Categorized Work

Implementation

  • Public badge indicator for shared notes
  • Share status batch query function
  • Share status caching store
  • pnpm hoisting config for EAS builds

Release

  • Version 2.0.0 build for iOS (TestFlight)
  • Version 2.0.0 APK for Android
  • Synchronized version across app.json and package.json

Bug Fix

  • Fixed share URL using Vercel domain instead of toonnotes.com on iOS
  • Fixed Vercel deployment root directory issues

Documentation

  • Created v2.0 marketing plan with scenario campaigns
  • Removed unused EXPO_PUBLIC_SHARE_BASE_URL documentation
  • Published diary entries for Jan 19-20

📝Technical Decisions

Decision: Hardcoded toonnotes.com as the share URL domain instead of using environment variables. The canonical production domain doesn't need environment-based configuration.

Decision: Implemented batch share status queries to avoid N+1 database calls when loading the notes list.

Learning: Vercel deployment with custom root directory in monorepos requires git integration to be disconnected and CLI-only deploys from the target directory.


📊Statistics

🕐
10
Sessions
📝
4
Commits
📁
20
Files Changed
562
Lines Added
199
Lines Deleted
🏷️
Implementation
Primary Category

🎯Tomorrow's Focus

  • Test v2.0.0 builds on TestFlight and APK distribution
  • Continue marketing campaign content creation
  • Create visual assets for scenario-based marketing

Generated with ToonNotes Development Diary