Разработка сайта на CMS KeystoneJS под ключ

Отметим: когда доменная логика не вписывается в готовые шаблоны, KeystoneJS становится основой. Это code-first headless CMS, где схемы данных живут в TypeScript, а GraphQL API, админка и Prisma-схема генерируются автоматически. Вы не тратите время на CRUD-обёртку: система создаёт её сама, оставляя в

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Услуги, которые мы предлагаем
Показано 1 из 1Все 2062 услуг
Разработка сайта на CMS KeystoneJS под ключ
Сложный
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    982
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1241
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    982
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    994

Отметим: когда доменная логика не вписывается в готовые шаблоны, KeystoneJS становится основой. Это code-first headless CMS, где схемы данных живут в TypeScript, а GraphQL API, админка и Prisma-схема генерируются автоматически. Вы не тратите время на CRUD-обёртку: система создаёт её сама, оставляя вам бизнес-логику. За 7-10 дней получаете готовое решение с кастомными полями, ролевым доступом и интеграцией с любым фронтендом — от Next.js до Angular. Такой подход сокращает стоимость разработки и исключает N+1-запросы через гибкий API. Свяжитесь с нами, чтобы обсудить ваш проект.

В отличие от admin-first CMS, KeystoneJS даёт полный контроль над данными. Вы описываете отношения, хуки, вычисляемые поля — система сама строит миграции через Prisma. Мы используем этот подход в 10+ проектах: от интернет-магазинов с кастомным каталогом до корпоративных порталов с мультисайтовостью. По нашим замерам, KeystoneJS ускоряет создание бэкенда в 1.5 раза по сравнению со Strapi. Закажите консультацию нашего инженера — получите оценку вашего проекта.

Когда выбирать KeystoneJS

KeystoneJS подходит, когда:

  • Нужен полный контроль над схемой данных и бизнес-логикой
  • Команда комфортно работает с Node.js и TypeScript
  • Требуется кастомная логика доступа, сложные вычисляемые поля, хуки на уровне данных
  • GraphQL API — первичный интерфейс для фронтенда

Не подходит, если нужен хостинг «из коробки» без DevOps или проект требует богатого UI для нетехнических редакторов (тогда смотрите на Strapi или Payload).

Почему стоит выбрать KeystoneJS?

KeystoneJS превосходит традиционные CMS за счёт code-first подхода. Вы не ограничены фиксированными структурами: любые отношения, вычисляемые поля, крючки (hooks) на создание/обновление. GraphQL API даёт фронтенду ровно те данные, которые нужны, без N+1 query. Согласно документации, KeystoneJS позволяет сократить время разработки бэкенда на 30-40% за счёт автогенерации CRUD-операций.

Критерий KeystoneJS Strapi Payload CMS
Подход Code-first Admin-first Code-first
Типизация TypeScript JS/TS частично TypeScript
GraphQL Полная автогенерация REST + GraphQL REST + GraphQL
Кастомизация Максимальная Средняя Высокая
DevOps Требуется Встроенный хостинг Требуется

Как мы настраиваем доступ и роли?

В KeystoneJS права доступа задаются на уровне операций (create/read/update/delete) и полей через access в каждом списке. Мы реализуем ролевую модель: администратор, редактор, автор, аноним. Встроенная поддержка сессий через cookie или JWT.

// Пример доступа: только автор может редактировать свой пост access: { operation: { query: allowAll, create: ({ session }) => !!session, update: ({ session, item }) => session?.data?.id === item.authorId, delete: ({ session }) => session?.data?.role === 'admin', }, }, 

Процесс разработки

  1. Аналитика: определяем модели, связи, роли, интеграции
  2. Проектирование: создаём схему TypeScript, настраиваем хранилища (локальные/S3)
  3. Реализация: пишем списки, hooks, access-правила, настраиваем Admin UI
  4. Тестирование: GraphQL-запросы, unit-тесты, нагрузочное тестирование
  5. Деплой: Prisma-миграции, Docker-контейнер, CI/CD

Конфигурация и запуск

// keystone.ts import { config } from '@keystone-6/core'; import { lists } from './schema'; import { withAuth, session } from './auth'; export default withAuth( config({ db: { provider: 'postgresql', url: process.env.DATABASE_URL!, enableLogging: true, idField: { kind: 'uuid' } }, lists, session, ui: { isAccessAllowed: (context) => !!context.session?.data }, server: { cors: { origin: [process.env.FRONTEND_URL!], credentials: true } }, }) ); 

Пример модели Post

// lists/Post.ts import { list } from '@keystone-6/core'; import { text, relationship, timestamp, select, image, document } from '@keystone-6/core/fields'; export const Post = list({ access: { operation: { query: () => true, create: ({ session }) => !!session, update: ({ session }) => !!session, delete: ({ session }) => session?.data?.role === 'admin', }, }, fields: { title: text({ validation: { isRequired: true } }), slug: text({ validation: { isRequired: true }, isIndexed: 'unique' }), status: select({ options: [ { label: 'Draft', value: 'draft' }, { label: 'Published', value: 'published' }, { label: 'Archived', value: 'archived' }, ], defaultValue: 'draft', }), content: document({ formatting: true, links: true }), author: relationship({ ref: 'Author.posts' }), featuredImage: image({ storage: 'local_images' }), }, }); 

GraphQL API и работа с фронтендом

После запуска npx keystone dev открывается GraphQL Playground на http://localhost:3000/api/graphql. Пример запроса:

query GetPosts { posts(where: { status: { equals: "published" } }, orderBy: { publishedAt: desc }) { id title slug author { name } } } 

В Next.js используем Apollo Client:

import { ApolloClient, InMemoryCache, createHttpLink } from '@apollo/client'; export const client = new ApolloClient({ link: createHttpLink({ uri: process.env.KEYSTONE_API_URL }), cache: new InMemoryCache(), }); 

Что входит в работу

  • Создание схемы данных (листы, отношения, хуки)
  • Настройка доступа и ролей
  • Интеграция с фронтендом (Next.js, Nuxt 3, Gatsby)
  • Конфигурация хранилищ (локальные, S3)
  • Деплой и миграции
  • Документация по API и админке
  • Обучение команды редакторов
  • Поддержка 1 месяц после запуска

Как KeystoneJS ускоряет разработку?

На практике, code-first подход позволяет нам сократить время на начальную настройку в 2-3 раза по сравнению с admin-first CMS. Мы получаем готовую админку и API сразу после описания схемы. Например, в одном из проектов интернет-магазина мы сэкономили 4 дня только на этапе проектирования, что принесло клиенту значительную экономию на разработке.

Сроки разработки типового сайта

Этап Время
Установка, конфиг БД, базовые списки 1 день
3–5 моделей с отношениями 2–3 дня
Настройка доступа и ролей 1 день
Аутентификация + сессии 0.5 дня
Интеграция с фронтендом 2–3 дня
Деплой + миграции 0.5–1 день
Итого для среднего сайта 7–10 дней

Для сложных проектов — 3–5 недель. Получите консультацию нашего инженера для оценки вашего проекта.