Inspiration

The inspiration for MaestLog emerged from a deeply personal need. As I began attending orchestral performances and recitals with my violinist partner, it became clear that our concert experiences were slipping away from memory. Each performance blended into the next, and the specifics of when we attended, which pieces we heard, and which orchestras performed them were fading into an indistinct blur. These precious musical memories deserved better preservation.

During my search for a solution, I discovered a striking gap in the app market. While rock and pop music fans enjoyed dozens of concert logging apps, classical music enthusiasts faced a desert of options. The few existing applications failed to handle the unique requirements of classical performances: proper categorization of program items, detailed composer cataloging, and most crucially, an interface design that matched the elegance of the art form itself.

VibeCodingCatfe Tokyo

The catalyst for transforming this idea into reality came during my presentation at RevenueCat's VibeCoding Catfe in Tokyo about AI development tools. Learning about Shipathon opened an unexpected door. Although I had zero mobile development experience, the combination of modern AI capabilities and Shipathon's ambitious timeline presented the perfect challenge. This was an opportunity to prove that contemporary development tools could bridge any technical gap, enabling the creation of something the classical music community genuinely needed.

What it does

MaestLog screen capture

MaestLog serves as a beautifully refined concert journal designed exclusively for classical music enthusiasts. The app centers on capturing musical experiences with intuitive simplicity, making every entry a pleasure rather than a chore. Each concert record encompasses essential details:

  • Date
  • Venue
  • Performers
  • Detailed program items
  • Personal reflections
  • Rating scores All organized for effortless input and retrieval.

This deliberate simplicity represents a conscious design philosophy rather than a limitation. After experiencing the emotional heights of a performance, users need to capture their impressions quickly without battling complex interfaces. Every interaction has been crafted for intuitive use, preserving the afterglow of a concert rather than disrupting it with unnecessary complexity.

The distinguishing factor of MaestLog lies in its deep understanding of classical music structure. Composers and works receive proper treatment, with sophisticated handling of multi-movement pieces and complex programs. The calendar view transforms scattered memories into a visual timeline of musical experiences, allowing instant recall of that unforgettable Mahler's 5th or that stunning violin concerto from last spring.

Premium subscribers monthly access an expanding feature set tailored for serious classical music lovers. Future updates will introduce photo uploads, automatic program extraction from pamphlet images using AI, and elegant sharing capabilities for building community connections. Even in its current form, MaestLog delivers something previously unavailable: a dedicated space where classical music journeys receive the respect and beauty they deserve.

How we built it

GitHub view with commit on September 6h

Starting on September 6th with merely three weeks until the deadline presented an enormous challenge. Having absolutely no mobile development experience meant starting from zero:

  • no Xcode knowledge
  • no Swift understanding
  • not even basic awareness of how iOS apps function

The timeline demanded innovative approaches to learning and development.

The first two days involved intensive AI-powered brainstorming using ChatGPT's project feature. This phase included listing achievable requirements within the three-week constraint, analyzing the classical music app market for gaps and opportunities, and carefully scoping features that a complete beginner could realistically implement. Mobile UI design posed particular challenges since it differs fundamentally from web applications, and without Figma skills, traditional design workflows were impossible.

iOS app mockup with nano-banana

A breakthrough came through pioneering Gemini 2.5 Flash Image (nano-banana) for generating UI mockups directly from text prompts, mockup figure as shown above. This revolutionary method, which I've documented in Medium Story (Nano-Banana special prompt achieved rapid Mobile UI Mockups), compressed weeks of design iteration into just five days of focused work.

Medium Story: Nano-Banana special prompt achieved rapid Mobile UI Mockups

Development proceeded through orchestrated AI collaboration. Claude Code became the primary coding partner, not merely generating Swift code but patiently explaining every concept and iOS convention. Understanding became as important as implementation, with Claude's output-style learning mode ensuring genuine comprehension alongside code generation. Quality assurance operated through multiple layers: Codex CLI's /review function examined architectural decisions, CodeRabbit automatically reviewed every GitHub pull request, and the newly released CodeRabbit CLI (detailed at my medium story: CodeRabbit CLI Bridges the Gap Between AI Coding and Code Review) provided additional background validation. Personal review of all AI-generated code created a virtual team of three reviewers ensuring professional quality despite inexperience.

Medium Story: CodeRabbit CLI Bridges the Gap Between AI Coding and Code Review

The most revolutionary aspect emerged from practical necessity. Working 4 hours on weekdays after my day job and 10+ hours on weekends required maximizing every available moment. ChatGPT's Codex Cloud app enabled complete development workflows from a smartphone. Code changes made during train commutes would create GitHub PRs, trigger automatic CodeRabbit reviews, apply fixes through Codex and Claude's GitHub Actions integration, and deploy directly to TestFlight via App Store Connect. This "Vibe Coding" approach meant development never stopped, with just a smartphone turning every spare moment into productive coding time.

Challenges we ran into

The primary challenge was the crushing time constraint. Three weeks from zero knowledge to App Store release demanded learning everything simultaneously:

  • Swift syntax
  • iOS development patterns
  • Xcode operation
  • Apple's extensive documentation requirements

Every step into unknown territory required immediate understanding and correct implementation.

AI tools like Claude Code, Codex, and Cursor enabled rapid code generation through "Vibe Coding," but App Store release demanded deeper understanding. Functional code represents only the beginning; production apps require adherence to iOS conventions, performance optimization, and polished user experience. Bridging the gap between AI-generated functionality and Apple's quality standards necessitated genuine learning. Each Claude Code session included detailed explanations of concepts, hands-on implementation practice, and CodeRabbit reviews that elevated code quality through iterative improvement.

RevenueCat integration multiplied the complexity exponentially. Beyond learning iOS development basics, implementing a subscription system required understanding receipt validation, purchase restoration, and paywall presentation. RevenueCat's documentation became essential reading, methodically working through requirements with AI assistance to translate abstract monetization concepts into working implementation.

app store review history

App Store review served as the final examination. App Store Connect's extensive documentation requirements proved overwhelming for a first release. Multiple rejections followed, particularly around RevenueCat subscription implementation details. Each rejection required patient analysis of reviewer feedback and careful adjustments. Through determination and leveraging every available AI tool, the seemingly impossible became reality: from zero knowledge on September 6th to live app on September 27th. Three weeks from complete beginner to published developer proved that focused effort combined with AI assistance can overcome any technical barrier.

Accomplishments that we're proud of

Successfully launching a fully-featured iOS app with RevenueCat subscription integration in just three weeks represents our greatest achievement. Starting from absolutely zero mobile development knowledge and reaching the App Store demonstrates that individual developers armed with AI tools can achieve what previously required entire teams. The vast differences between mobile and other software development domains made this accomplishment particularly meaningful.

Creating MaestLog based on genuine personal need brings deep satisfaction. Following the principle of being your own first user, the app solves a real problem that my partner and I faced. This represents indie development's unique strength: serving niche markets that larger companies overlook. Classical music enthusiasts deserve dedicated tools crafted with understanding and care.

Most significantly, the journey proved that self-reliance and determination can overcome any obstacle. Every aspect, from learning Swift fundamentals to understanding App Store guidelines to implementing subscriptions, required independent research and execution completed within three weeks. Successfully submitting to Shipathon on time demonstrates that AI serves as a force multiplier, enabling individual developers to achieve previously impossible goals. The future of app development has arrived, and it fits in your pocket.

What we learned

app release

Experiencing the complete iOS app lifecycle from initial design through App Store release in just three weeks provided invaluable education. As a complete beginner, gaining this comprehensive understanding transformed abstract concepts into practical knowledge. The foundation established through this intensive process enables confident pursuit of future mobile development projects.

The journey illuminated AI's true potential in modern development. Experienced engineers can leverage AI tools to venture into completely unfamiliar territories, simultaneously learning and implementing. AI serves not as a replacement but as a patient teacher, tireless reviewer, and creative partner. The gap between idea and implementation continues shrinking dramatically, enabling developers to build their visions regardless of specific domain expertise.

ai tools in Shipaton

Critical lessons emerged about balance and judgment. AI proves powerful but not omnipotent. Success requires understanding AI's strengths (generating boilerplate code, explaining concepts, reviewing implementation) versus areas requiring human judgment (architectural decisions, user experience choices, business logic). Active learning alongside AI, rather than passive acceptance of output, remains essential. The future belongs not to AI replacing developers, but to developers who orchestrate AI effectively to achieve things previously impossible for individuals.

What's next for MaestLog: Your Personal Symphony Journal

Immediate priorities focus on implementing features postponed due to time constraints. Image upload functionality and AI-powered automatic program extraction from concert pamphlets formed part of the original vision but required deferral to meet Shipathon's deadline. These features will transform how users capture concert memories, enabling simple photography of programs with automatic detail population. Continuous design refinement will further elevate the app's elegance and shareability.

Beyond feature development, the mission remains clear: creating an app that classical music lovers will cherish for years. MaestLog transcends its Shipathon origins to become a long-term commitment to the classical music community. Years from now, users should open MaestLog and smile while browsing their musical journey, remembering that breathtaking Beethoven's 9th or that intimate chamber music evening with perfect clarity.

Shipathon provided the overture, but the real symphony involves building a product that becomes indispensable for classical music enthusiasts worldwide. Every concert attended, every emotion experienced, every musical discovery made will find its home in MaestLog. This isn't just app development; it's crafting a legacy tool that honors and preserves the classical music community's collective cultural experiences.

MaestLog

Built With

  • claude-code
  • coderabbit
  • codex
  • codex-cli
  • nano-banana
  • revenuecat
  • swift
  • vscode
  • xcode
Share this project:

Updates