← Back home

Selected work

Kaguya: a home for visual novel readers4,200+ sign-ups

A consumer product I started and led for two years with a developer I hired. Two launches, one public mistake, and 4,200+ sign-ups.

My role
Founder. Product and design, and much of the early backend and API. Prashant, a developer I hired, built the web and mobile front ends and much of the later backend.
Timeframe
Started April 2024; VN launch January 2026
Working product
Tracking, reviews, lists, community, and recommendations
Adoption
Over 4,200 lifetime registrations, still growing

Kaguya is a place to track, discuss and discover visual novels. I started it in 2024 and built it for two years with Prashant, a developer I hired. Since May 2026 I’ve run it on my own. Over 4,200 people have signed up so far, and it keeps growing on its own. That’s lifetime registrations, not monthly active users.

  1. Apr 2024Started a Goodreads alternative
  2. Mar 2025Show HN: 254 points, first 200 users
  3. Jan 2026Relaunched for visual novels
  4. Mar 2026Got the scope wrong in public, then reversed it
  5. Jun 2026Dropped the subscription and went free
  6. Now4,200+ sign-ups, still growing

How it started

In April 2024 I’d just come out of a rough internship and wanted to build something I cared about instead of taking another desk job. The plan was grandiose: one social discovery app for every kind of story, from books and movies to games, TV and visual novels. Everyone was loudly unhappy with Goodreads at the time, so I started with books.

I learned everything from SQL to UI design along the way. On March 2, 2025, after nine months of building, I posted it on Hacker News as a modern Goodreads alternative. It got 254 points and 211 comments, sat near the top for almost two days, and brought in our first 200 users.

We kept shipping features every week. By November 2025 the major ones were done and I started trying to build an audience. Except I kept making videos about Fata Morgana when I was supposed to be growing a book community. Visual novels were what I actually read by then. The book thing was me larping as someone I wasn’t anymore.

So on January 1, 2026, I launched a visual novel version to see if anyone would care. Enough people did. I closed the book site on February 5 and went VN-only.

I’ve been reading VNs since 2021, and they’ve become my favourite medium, ahead of the books I grew up on. I’ve read Fata Morgana three whole times. I think they’re badly underrated, and I want more people to find them. (Also, more readers means more VNs get made, which means more for me to read.  ̄▽ ̄)

Visit Kaguya · Source code

The House in Fata Morgana page showing cover artwork, community ratings, description, and reading status

A title page brings catalog information, community ratings, and a reader’s own tracking together.

What I built

I designed the product, and in 2024 and 2025 I wrote much of the backend for the books version by hand, in Elixir and Phoenix.

The data model and API. The core problem is that a book is shared, but everyone’s relationship to it is personal. One catalog of books and editions, and on top of it each reader’s library, reading status, dates, ratings, reviews, shelves and lists. I built those pieces and the GraphQL API the apps used to read and change them.

Bringing your history with you. Nobody switches tracking sites if they lose years of history. I wrote importers for Goodreads and StoryGraph exports that turn each row into ratings, reviews, reading dates, statuses and shelves. Later I moved catalog imports into background jobs with Oban.

Readers recommending to readers. In August 2025 I built “if you liked this, try that” suggestions that readers add and vote on, so similar books come from the community. The personalised recommendation engine Kaguya uses today is a separate system that Prashant built later.

The relaunch I got wrong

When I relaunched Kaguya on Reddit in March 2026, I’d decided it would only list “pure” visual novels. Games where the gameplay is the point, like Ace Attorney or Rance, were left out. I had a whole page explaining why, and I believed every word of it.

The people in our Discord, about a hundred of them, mostly went along with it. Reddit didn’t. People imported their libraries, found big holes where their favourites should be, and left. They weren’t wrong. Most people just wanted to track what they’d played, and they didn’t care where I drew the line.

Within about a week we’d added hybrid titles back, with toggles so everyone can choose what they see, and I posted publicly that I’d been wrong. Looking back, the mistake happened before launch day. I’d made a big decision about other people’s hobby after talking to a small, friendly group that already agreed with me.

Trying to make it pay

In spring 2026 I pushed hard to make Kaguya pay for itself, and we added a subscription. Nobody subscribed. In June I removed it, and Kaguya has been free since. I pay for it myself and look after it when I can, and it keeps growing anyway.

Moving to LiveView, with coding agents

In May 2026, Prashant and I moved the whole web app from a separate Next.js front end to Phoenix LiveView in roughly a week and a half. He built the new foundation and the biggest pages. I ported the rest and then deleted the GraphQL layer the old front end had needed, about 17,000 lines.

That was the moment I really felt how much coding agents had changed. It felt like work that would have taken us months a year earlier. Around the same time Prashant moved on, and on May 26 I made the first commit of what became Nila, on my own and with a lot of agents.

A product people use together

Reviews, reading lists, discussions, activity feeds and profiles all share the same catalog and accounts.

Kaguya activity feed showing reader reviews, shared lists, ratings, and reading updates

The activity feed: readers sharing reviews and lists alongside reading updates.

Kaguya taught me how to launch and run a consumer product with real users, and how quickly a community will tell you when you’ve got something wrong. Nila took me deeper into document processing, business rules and integrations.

Read the Nila case study →