Оглавление проекта
Портал, который не ляжет на ста тысячах книг
На соседней вкладке — рабочий макет: каталог из 100 000 книг, поиск с опечатками и тегами, читалка с листанием и комментариями к абзацам, виджеты для чужих сайтов и загрузка рукописи из Word. Ниже — на чём я соберу настоящий портал, как он выдержит рост, сроки и оплата по этапам.
Платформа
Свой код, а не плагины
Author.Today и Rulate — это не WordPress. На ста тысячах книг и миллионах глав конструкторы упираются в базу и поиск, поэтому:
- Next.js отдаёт страницы книг и глав готовыми — их видят Яндекс и Google, они открываются за доли секунды.
- Django — API, кабинеты, модерация и админка из коробки.
- PostgreSQL хранит книги, главы, полки и комментарии; Meilisearch ищет с опечатками.
- Тексты глав лежат в хранилище S3 и раздаются через CDN.
А если взять готовый движок?
Готовые скрипты «как у Author.Today» за 20–40 тысяч существуют, но это чужой код без поддержки: поиск на LIKE по базе, читалка без телефона, переделка любой мелочи дороже, чем написать её. Для площадки, которая рассчитывает на 100 000 книг, я за свой код, который вы полностью получаете.
Из чего состоит портал
Нажмите на блок — расскажу, зачем он нужен.
Путь читателя
Человек ищет в Яндексе «попаданец в магическую академию читать». Попадает сразу на страницу главы: она отрисована сервером, поисковик видит текст и разметку Book.
Страница пришла, текст главы — из CDN рядом с читателем. Шрифт и тема те, что он выбрал в прошлый раз.
Читает с телефона: листает свайпом, оставляет комментарий к абзацу, добавляет книгу на полку. Позиция чтения сохраняется каждые 15 секунд — на ноутбуке откроется там же.
Автор выкладывает новую главу — читателю приходит уведомление на сайте и на почту, если он подписан.
Путь автора
Перетаскивает рукопись .docx или .fb2 в кабинет — как во вкладке «Авторам» на демо.
Файл разбирается в очереди: главы по заголовкам, курсив и сноски сохраняются, мусорное форматирование Word вычищается.
Автор проверяет главы, одни главы оставляет черновиком, другим ставит дату публикации, выбирает жанр и теги.
Глава выходит сама, подписчики получают уведомление, книга поднимается в ленте «Свежие главы».
Масштаб в цифрах
Сколько весят 100 000 книг
Средняя книга — около 300 000 знаков, итого ~30 млрд знаков и около 60 ГБ текста, в сжатом виде ~15 ГБ. Это помещается в обычное хранилище за несколько сотен рублей в месяц.
Поиск
Индекс названий, авторов, аннотаций и тегов на 100 000 книг занимает 1–2 ГБ памяти и отвечает за 30–60 мс. На демо тот же поиск работает прямо в браузере — время видно в строке результатов.
Сервер на старте
Один сервер 4 ядра и 8 ГБ, 3–6 тысяч ₽ в месяц, держит десятки тысяч читателей в день. Когда вырастет — поиск и база разносятся на отдельные машины без переписывания кода.
SEO с первого дня
Страницы книг и глав отрисованы сервером, карта сайта разбита на файлы по 50 000 адресов, разметка schema.org Book, канонические адреса, Яндекс Вебмастер.
Страницы и разделы
- Главнаяполка недели, ленты, обсуждения
- Каталогжанры, теги «с»/«без», статус, сортировки
- Поискподсказки, опечатки, раскладка клавиатуры
- Книгааннотация, оглавление, полки, комментарии
- Читалкалента или страницы, темы, комментарии к абзацам
- Авторкниги, подписка, блог
- Кабинет читателяполки, история, уведомления
- Кабинет авторазагрузка Word и FB2, черновики, расписание, статистика
- Виджетыкарточка книги, новые главы, кнопка «Читать»
- Админкамодерация, жалобы, блокировки, жанры и теги
- Правила, оферта, политика152-ФЗ, возрастные метки 18+
Этапы и сроки
| Этап | Что получаете | Срок | Стоимость |
|---|---|---|---|
| 1. Схема и прототип | Структура данных, роли, прототипы главной, книги, читалки и кабинета, дизайн в стиле этого демо под ваш логотип | 2 раб. дня | 8 000 ₽ |
| 2. Каталог и поиск | Книги, авторы, жанры, теги, фильтры, поиск с опечатками, страницы книг с SEO, тестовый адрес | 5 раб. дней | 18 000 ₽ |
| 3. Читалка и кабинеты | Читалка для телефона и компьютера, полки, позиция чтения, кабинет автора, загрузка .docx и .fb2, расписание глав | 5 раб. дней | 20 000 ₽ |
| 4. Сообщество | Комментарии к книгам и абзацам, ответы, лайки, подписки, уведомления, жалобы и модерация, виджеты | 4 раб. дня | 14 000 ₽ |
| 5. Запуск | Сервер, CDN, бэкапы, нагрузочный тест на 100 000 книг, Метрика, Вебмастер, перенос на домен, инструкция | 3 раб. дня | 10 000 ₽ |
| Итого | 19 раб. дней | 70 000 ₽ |
Платные книги и выплаты авторам
Подписка на книгу или покупка глав, ЮKassa, баланс автора, выплаты, чеки. +11 000 ₽, 4 дня.
Переводы, как на Rulate
Команды переводчиков, оригинал рядом с переводом, глоссарий имён, голосование за следующую главу. +13 000 ₽, 4 дня.
Оплата по этапам
Вы платите за этап, когда видите его на тестовом адресе. Не понравилось — останавливаемся, всё сделанное остаётся у вас.
Код, база, сервер, домен и все доступы — ваши. Документация по развёртыванию. Первые 30 дней после запуска исправляю ошибки бесплатно.
Читалка и разбор Word/FB2 общие с вашим вторым заказом — книжным магазином. Поэтому портал и магазин вместе — 80 000 ₽: 70 000 за портал и 10 000 за магазин вместо 36 000. Магазин можно запустить первым, чтобы раньше пошли продажи.
Что нужно от вас
- Название и логотип, если есть
- С чего стартуем: свои книги, авторы-партнёры или импорт каталога
- Жанры и теги, которые важны вашей аудитории
- Будут ли платные книги и переводы с первой версии
- Правила площадки: что модерируем, возрастные метки
- Доступ к домену