Write us on Telegram@Odilient

WEB PLATFORM

Knigopoisk

A Russian-language online store for e-books and audiobooks with a catalog of 11,000+ titles, an in-browser reader, multi-currency checkout and in-house AI audiobook narration.

Knigopoisk
Client
Books & Publishing
Industry
Ongoing since 2024
Duration
2024
Year
Where it started

The Challenge

Knigopoisk sells Russian-language e-books and audiobooks to readers in many countries, so payments were the first hard problem: no single provider covers rubles, dollars, euros and crypto, and some regions can't be served at all. The business also needed a Russian-language back office for a large catalog, a storefront search engines can crawl, reliable digital delivery, and audiobooks for titles that have no recording.

What we did

The Solution

We built and maintain the full platform: a Laravel 12 API with a fully Russian-localized Filament 4 admin, and a server-rendered Nuxt storefront with an in-browser reader and audio player. Payments run through a provider abstraction covering Stripe, Polar, YooKassa, Robokassa, T-Bank, NOWPayments and Cryptomus with automatic fallback and currency-aware provider lists. Around the store we added Telegram order alerts, an embeddable partner widget and an AI narration pipeline.

Built with
LaravelNuxt 4FilamentVue 3MySQLRedisLaravel OctanePiniaStripeDocker
Inside the build

How It Came Together

An online store for Russian-language e-books and audiobooks

knigopoisk.com (КнигоПоиск, roughly "book search") is an online e-book and audiobook store for Russian-speaking readers. The storefront advertises more than 11,000 books across dozens of genres, from science fiction and detective fiction to business books and classics, with sections for audiobooks, free books, curated selections, authors, reviews and a blog. Readers buy and download books or read them in the browser, get free books for writing reviews, and can invite friends to a referral book club.

We have worked on the platform since March 2024, covering the Laravel backend and admin panel, the Nuxt storefront, payments, digital delivery and the tooling around the store.

Key features

  • E-book and audiobook catalog — genre, author and curated selection pages, separate buy and free-download pages per title, and a dedicated free-books section.
  • In-browser reader and player — foliate-js and pdf.js open whichever file format reads best, including on older browsers, and vue-plyr plays audiobook chapters and previews.
  • Reader cabinet — library, bookmarks, orders, reviews and newsletter settings in one place; purchased audiobooks download chapter by chapter or as a single ZIP.
  • Multi-currency checkout — buyers switch between USD, EUR and RUB, prices recalculate, and only providers that support the chosen currency are offered.
  • Payment integrations with fallback — Stripe and Polar for cards, YooKassa, Robokassa and T-Bank for rubles, NOWPayments and Cryptomus for crypto, plus legacy WayForPay. If the default provider is disabled, the next enabled one takes over.
  • Rescued checkouts — when a buyer's region has no available payment method, the attempt is saved as a lead and staff get what they need to finish the sale manually.
  • Reviews and rewards — ratings exposed as structured data, a free-book-for-review program and a referral book club.
  • AI-narrated audiobooks — a text-to-speech pipeline turns digital editions into audiobooks and starts automatically when someone buys an audiobook that has no file yet (see AI audiobook generation).
  • Partner widget — a one-tag JavaScript widget that sells Knigopoisk books on third-party book sites with partner attribution (see the partner widget).

Architecture and tech stack

Backend and admin panel

The backend is a Laravel 12 application on PHP 8.4, served by Laravel Octane, with MySQL, Redis and a REST API documented with Scramble. The back office runs on Filament 4 and is fully localized into Russian: 48 resources, 68 relation managers and roughly 300 table columns, with every filter, empty state and modal translated. A regression test fails if a column ships without a label. The suite runs 171 tests and 898 assertions, in parallel.

In 2026 we restructured the catalog into a Book → Edition → Product model through phased migrations: a new data layer with backfill, an ownership cutover, a public API re-sourced over products, and finally a new catalog console in the admin. One work can now carry several editions and formats without duplicated records.

The admin panel also includes an AI assistant: a tool-calling agent on DeepSeek with tools for orders, products, content, media, users and statistics. When the model proposes an action that needs human sign-off, the run pauses, the proposal is recorded, and the agent resumes only after an admin approves or rejects it, which leaves an audit trail of what was proposed and what was done.

Storefront

The storefront started on Nuxt 3 and moved to Nuxt 4 in 2026. It uses Vue 3, Pinia with persisted state, Element Plus and Bulma, VeeValidate with Yup, and TypeScript types generated from the backend's OpenAPI spec. Open Graph images are rendered on the server with Satori and resvg, without a headless browser. PostHog and Yandex Metrika handle analytics.

Infrastructure and operations

Both apps ship as Docker images deployed through Coolify, with separate development and production stacks. Scheduled jobs refresh exchange rates every 15 minutes, regenerate the sitemap daily, build a Google Merchant feed nightly, expire abandoned checkouts and clean up audiobook render files. Order events, failures and daily and monthly digests reach the team through Telegram order alerts.

SEO and performance

The storefront renders on the server and uses the Nuxt SEO module set for sitemaps, robots rules, schema.org data and generated Open Graph images, with the cart, reader cabinet and order pages kept out of indexing and OG rendering. The backend generates the sitemap from the catalog and a product feed for Google Merchant Center.

Current work follows a technical SEO plan with two hard rules: no URL changes and nothing de-indexed. It covers fuller Book, Audiobook and Product structured data, ItemList and breadcrumb markup on listings, VideoObject markup for books with a curated video, distinct search intent for buy and free-download pages, and server-rendering more of each book page.

Our role

We have developed Knigopoisk's platform since 2024: backend, admin panel, storefront, payments, digital delivery and infrastructure, plus the tools around the store, including the large-print book pipeline. The work is ongoing.

Knigopoisk combines our e-commerce development, web app development and AI integration and automation work. Related case studies: AI audiobook generation and large-print pipeline.

Let's Build

Want something like Knigopoisk?

Tell us what your product needs to do. We'll shape the scope, map a timeline and send a fixed price — free, and with no obligation to proceed.

Free consultation No commitment Fast reply