Read alone. Not alone.
mekuru is a reading room for people who read paper books. You sit down in a small 3D study as a plush animal, open your real book on your lap, and read. Other readers are in the room with you — you see them turn a page, step away, come back. That is the whole feature.
There is no chat, no microphone, no likes, no follower count, no feed. And by policy, mekuru will never send you a push notification. The room you are not in owes you silence.
Why a room, and not a tracker
Every reading app I could find counts pages and sends streak reminders. That is the attention economy wearing a cardigan. Reading is quiet company — a library works because thirty strangers are doing the same thing and none of them speaks to you.
So mekuru counts only one thing: time. Not pages, not books per month. Your reading time stacks up on a Time Shelf as spines, month by month, and a new cover colour unlocks after enough hours. Nothing is ranked.
What is in the room
- Plush readers — six animal avatars (fox, bear cub, raccoon, owl, cat, rabbit) on one shared 41-bone skeleton: concept art, a Tripo mesh, then cleaned, weighted and animated in Blender. Page turns drift on an ambient rhythm (a fresh random gap of 20–45 s per seat), so the room never moves in lock-step.
- Names that greet and leave — when someone sits down, their name fades in above their head (250 ms), stays four seconds, and fades out (800 ms). Presence without chrome.
- Breaks you can see — switch away from the app and your reader closes the book and sits back; stay away long enough and the seat frees itself, but the room stays open.
- Open rooms and invited rooms — walk into a public room, or send one link / QR code to a friend. Invite landings deep-link straight into the app.
- Time Shelf — hours, kept as book spines by month. A reader card (room / book / today's time) to share when you leave.
- One line, if you feel like it — a single line of up to 50 characters, on leaving the room or while you read. It is kept by date and by book, with no counts and no badges, and goes out only if you put it on a reader card yourself.
- iPad and landscape, a Lock Screen / Dynamic Island Live Activity, a Home Screen widget, and a Siri Shortcut ("Start Reading").
How it makes money (and why so little of it is paywalled)
Everything social is free: the basic four-seat room, sitting with others, presence, your reading time on the Time Shelf, invite links. The single paid plan is Owner (¥580/month, ≈ $3.99): Arrange (furnish your room by hand), six- and ten-seat rooms, making your rooms public, standing sessions, and registering the books you read. Company is the soul of the product; paywalling it would kill the room.
RevenueCat runs one entitlement (room_owner) across the App Store and web (Stripe via RevenueCat Web Billing), restore, and our launch metrics. Registered accounts get a 14-day free trial: no card, nothing to cancel, it simply ends.
Built during Shipaton
- 2026-08-12 — 1.0.0 on the App Store (the web room had been a prototype since July; the app is the product).
- 1.1.0 — Live Activity / Dynamic Island, widget, Siri Shortcut, QR invites, "a name drifts above its reader, then fades".
- 1.2.0 — offline profile, books as spines with a bookmark.
- 1.3.x — three reader-card styles; leaving a seat frees it.
- 1.4.0 — Arrange editor: furniture follows your finger, no grid, pieces snap and stop against each other.
- 2.0.0 — "Still reading?" after two hours of silence, so empty hours never enter your record.
- 2.1.0 — iPad, landscape, a real paper page-turn recording, 60 fps cap on 120 Hz screens.
- 3.0.0 — one line on leaving the room; a companions list; the profile laid out as reading life + bookshelf.
- 3.1.0 — the line can be written while you read; a finished book can go out as a card.
Stack: Expo / React Native, three.js via react-three-fiber on expo-gl, a shared TypeScript runtime with the web app (Next.js), Supabase (Realtime Presence, Postgres, Auth), RevenueCat; Tripo and Blender for the avatars; SwiftUI for the widget and Live Activity extension.
Where it is going
The room is only worth anything with people in it. Since 2026-08-23 I have opened a public room at 23:00 JST most nights and sat in it myself. Of the 51 moments so far when two readers were in one room together, two-thirds fell between 21:00 and 01:00 — so the next thing to build is a timetable, not a feature.
Built With
- activitykit
- blender
- expo-gl
- expo.io
- next.js
- postgresql
- react-native
- react-three-fiber
- revenuecat
- stripe
- supabase
- swift
- swiftui
- three.js
- tripo
- typescript
- vercel
- widgetkit
Log in or sign up for Devpost to join the conversation.