-
-
Discover personalized recommendations and find your next great story with AýKitap
-
Keep your books organized in one personal library, ready whenever you want to read.
-
Enjoy a calm, distraction-free reading experience that keeps the story at the center.
-
Manage your reading journey, subscription, balance, and preferences in one personal space.
-
Search books and authors, explore rich results, and find the perfect title in seconds.
Inspiration
Turkmenistan has almost no legal digital reading market — most books get pirated on Telegram, and Kindle/Apple Books don't operate there. We built Aýkitap to fix that with local bank/wallet payments. Shipaton pushed us to open it to the rest of the world with RevenueCat.
What it does
A full reading platform — EPUB/PDF/CBZ books, subscriptions, single-book purchases, streaks — across a Flutter app, NestJS backend, React admin panel, and Next.js website. Turkmen users pay by bank/wallet; everyone else now pays through RevenueCat via the App Store/Play Store, both landing on the same backend entitlement.
How we built it
Flutter + purchases_flutter for the app, NestJS/Postgres backend with a webhook + reconciliation layer for RevenueCat, Firebase for international login alongside the existing phone-OTP system, and a React/Mantine admin panel for mapping store products to books.
Challenges we ran into
Running two payment systems on one entitlement without conflicts, verifying store purchases server-side instead of trusting the client, and merging phone and Firebase logins into one identity without accidentally merging two different people.
What we learned
Building local-first, then generalizing, forces better infrastructure than building global-first — canonical account IDs and a purchase_mode capability instead of hardcoded payment UI.
Built With
- amazon-web-services
- dart
- docker
- epub.js
- firebase-authentication
- firebase-cloud-messaging
- flutter
- kotlin
- mantine
- nestjs
- next.js
- onesignal
- postgresql
- rabbitmq
- react
- redis
- redux-toolkit
- revenuecat
- socket.io
- tailwind-css
- tanstack-query
- tiptap
- typeorm
- typescript


Log in or sign up for Devpost to join the conversation.