Everything I Did Before Launching My Indie Product

A complete walkthrough of launching an indie product — from tech stack decisions to marketing prep, based on real experience.

What Does It Take to Launch an Indie Product?

Launching an indie product is the entire process of turning an idea into something real that users can actually use. It is not just writing code. It requires holistic planning across technology selection, testing, infrastructure, and marketing preparation.

I filed my business registration at the end of March 2026 and started R3O Works as a solo founder. My first product, Shutter — a note-taking app — is scheduled for release on April 27th. Less than a month from registration to launch. In this article, I walk through everything I did to get there.

Why Did I Decide to Build Shutter?

The motivation was simple: I was not satisfied with existing note-taking apps.

Notion and Obsidian are powerful, but they are slow. Waiting a few seconds just to open a note breaks the flow of thought. “I want a faster, simpler note app” — that personal frustration became the starting point for Shutter.

The mission of R3O Works is to build things where people say, “This one is even better!” Not disruptive innovation, but slightly better alternatives to what already exists. Shutter is the first step toward that mission.

I wrote more about this in “Why Build a New Note App Now?

What Tech Stack Did I Choose?

Three criteria drove every technology decision: speed, simplicity, and zero cost.

CategoryTechnologyWhy
FrameworkReact + ViteFast HMR, lightweight bundles
Type SystemTypeScriptType safety and maintainability
StylingTailwind CSS v4Utility-first, build-time optimization
EditorTiptap (ProseMirror)Highly customizable rich text
Data StorageIndexedDB / Dexie.jsLocal-first, no server needed
IconsLucide ReactLightweight, consistent icon set
TestingVitest + fake-indexeddbFast unit testing
CI/CDGitHub Actions + FTPAutomated deploy, zero infra cost

The most critical decision was choosing IndexedDB for data storage. All data is stored locally in the browser, eliminating the need for a server. This is the key to achieving zero infrastructure cost while also fully protecting user privacy.

How Does AI-Native Development Actually Work?

My development style is what I call “AI-native.” Claude Code and Cursor sit at the center, and I collaborate with AI from design through coding, testing, and deployment.

Here is the concrete workflow:

  1. UI Mocking: Create wireframes with Pencil MCP
  2. Mock Review: Extract structural data to verify design intent
  3. Code Conversion: Implement one component at a time from mocks
  4. Test Writing: Write behavior-based tests with Vitest
  5. Quality Checks: Run bug detection, security review, and refactoring
  6. Commit: Record changes in conventional commit format

I covered this workflow in detail in “What Is AI-Native Development?

The key principle is not to let AI do everything unsupervised. Humans make the design decisions; AI handles implementation and verification. As I wrote in “Building Production Products with Vibe Coding,” shipping production-quality software requires a trained eye to validate AI output.

How Do I Handle Testing and Quality Assurance?

Being a solo developer does not mean skipping tests. If anything, working alone makes tests even more critical as a safety net.

Testing Strategy

  • Unit Tests: 49 tests passing with Vitest + fake-indexeddb
  • Coverage: Utility functions (4 files) + DB operations
  • Test Philosophy: Behavior-based (not coupled to implementation details)
  • Test Independence: Runnable in any order

Performance KPIs

MetricTargetActual
Warm Start (time to input)Under 200ms~200ms (achieved)
Cold StartUnder 500ms343ms (improved from 620ms)
Auto-save300-500ms debounceImplemented

Performance is the most important KPI for Shutter, where “feeling fast” is the core value proposition. I optimized based on measurements, not guesswork, bringing cold start time down from 620ms to 343ms.

How Do I Run Infrastructure at Zero Cost?

One of the biggest challenges in indie development is infrastructure cost. If running costs start accumulating before revenue comes in, the product’s lifespan shortens.

Shutter solves this problem at the architecture level.

  • Data Storage: Local storage via IndexedDB (no server required)
  • Hosting: Shared rental server (already contracted for the official site, no additional cost)
  • CI/CD: GitHub Actions (within free tier) + FTP deploy
  • SSL: Free SSL certificate included with hosting
  • Domain: r3o.works (shared with the official site)

The result is that running Shutter incurs zero additional infrastructure cost. It leverages the same infrastructure already in place for the official website.

What Marketing Preparation Did I Do?

Marketing is typically the weakest area for engineers. I strongly feel the challenge of being someone who “can build but does not know how to sell.” That is exactly why I started marketing preparation in parallel with development, well before launch.

What I Did

  • Official Website: Built with Hugo, bilingual (Japanese/English), SEO-optimized
  • Product Page: Published Shutter’s introduction page in both languages
  • Blog Launch: Regular updates with technical articles and operational records
  • SEO Setup: Metadata, structured data (JSON-LD), internal link architecture
  • Social Media Strategy: Build in Public approach on X (Twitter)

I documented my marketing learnings in “Learning Marketing from Zero as an Indie Developer.” Even with zero budget, it is possible to build organic traffic through content and SEO.

What Does the Pre-Launch Checklist Look Like?

Finally, here is a summary of everything to check before launch. This is the actual checklist I am using for Shutter.

Product

  • Core functionality works
  • All unit tests pass
  • E2E testing complete
  • Performance KPIs met
  • No critical bugs

Infrastructure

  • Build succeeds
  • Deploy pipeline works
  • SSL certificate is valid
  • Production environment verified

Marketing

  • Product page is live
  • Metadata (OGP, Twitter Card) configured
  • Launch announcement draft ready
  • Landing URL finalized
  • Commercial transaction disclosure published
  • Privacy policy published
  • Terms of service published

Conclusion

Launching an indie product involves far more than just writing code. Idea validation, technology selection, development process design, testing, infrastructure architecture, marketing preparation, legal compliance — as a solo founder, you handle all of it.

But by combining an AI-native development style with zero-cost architecture, it is entirely possible for one person to build and launch a production-quality product. Shutter’s launch date is April 27th. The journey I started in “How an Engineer Became a Solo Founder” is just beginning.