Розробка сайту на CMS Directus

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Розробка сайту на CMS Directus
Середня
~1-2 тижні
Часті питання

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

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Розробка сайту на CMS Directus

Directus — headless CMS поверх існуючої реляційної бази даних. Ключове відмінність: Directus не створює абстрактну схему даних — він працює напрямки з таблицями PostgreSQL/MySQL, які ви визначаєте. Якщо в БД є таблиця products, Directus автоматично дає до неї REST і GraphQL API, admin panel для CRUD.

Архітектура

Next.js / Nuxt / Mobile App
    ↕ REST API / GraphQL
Directus (Node.js)
    ↕
PostgreSQL / MySQL / SQLite / MS SQL

Directus — це шар поверх бази даних. Можна підключити до існуючої БД без зміни схеми.

Встановлення

npx create-directus-project@latest my-project
# Вибрати: SQLite (для розробки) або PostgreSQL

cd my-project
npx directus start
# Admin: http://localhost:8055/admin

Або через Docker:

# docker-compose.yml
version: '3'
services:
  directus:
    image: directus/directus:latest
    ports:
      - "8055:8055"
    environment:
      SECRET: your-random-secret-key
      DB_CLIENT: pg
      DB_HOST: postgres
      DB_PORT: 5432
      DB_DATABASE: directus
      DB_USER: directus
      DB_PASSWORD: directus
      ADMIN_EMAIL: [email protected]
      ADMIN_PASSWORD: admin-password
    depends_on:
      - postgres

  postgres:
    image: postgres:15
    environment:
      POSTGRES_DB: directus
      POSTGRES_USER: directus
      POSTGRES_PASSWORD: directus
    volumes:
      - postgres_data:/var/lib/postgresql/data

Collections (таблиці)

В Directus admin через Settings → Data Model → Create Collection:

Collections (таблиці БД):
- articles (id, title, slug, content, status, author, published_at)
- categories (id, name, slug, description, parent_id)
- media (вбудована)
- users (вбудована через Users system collection)

Поля відповідають колонкам таблиці. Directus підтримує всі стандартні типи PostgreSQL + спеціальні: uuid, hash, geometry, json.

REST API

# Отримати список записів
GET /items/articles?fields=id,title,slug,published_at&filter[status][_eq]=published&sort=-published_at&limit=10

# Отримати одну запис
GET /items/articles/123?fields=*,author.name,category.name

# Створити запис
POST /items/articles
{ "title": "New Article", "status": "draft" }

# Оновити
PATCH /items/articles/123
{ "status": "published" }

Аутентифікація

# Отримати токен
POST /auth/login
{ "email": "[email protected]", "password": "password" }
# Відповідь: { "data": { "access_token": "...", "refresh_token": "...", "expires": 900000 } }

# Оновити токен
POST /auth/refresh
{ "refresh_token": "..." }

# Використання
GET /items/articles
Authorization: Bearer <access_token>

Типичний стек проекту

Шар Технологія
CMS Directus 10.x
Frontend Next.js 14
База даних PostgreSQL
Медіа S3 / Cloudflare R2
Кеш Redis
Деплой Railway / VPS

Інтеграція з Next.js

// lib/directus.ts
import { createDirectus, rest, authentication, readItems, readItem } from '@directus/sdk'

const directus = createDirectus(process.env.DIRECTUS_URL!)
  .with(rest())
  .with(authentication())

// Статичний токен для серверних запитів
const staticToken = process.env.DIRECTUS_STATIC_TOKEN!

export async function getArticles(limit = 12) {
  return directus.request(
    readItems('articles', {
      fields: ['id', 'title', 'slug', 'excerpt', 'published_at', { thumbnail: ['id', 'filename_disk'] }],
      filter: { status: { _eq: 'published' } },
      sort: ['-published_at'],
      limit,
    })
  )
}

Flows (автоматизація)

Directus Flows — візуальний конструктор автоматизації (триггер → дії):

  • При публікації статті → відправити email
  • По розписанню → очистити кеш
  • При створенні замовлення → POST в CRM webhook

Це не вимагає коду — налаштовується в admin panel.

Відмінності від Strapi

Критерій Directus Strapi
Схема даних Прямо в БД У JSON-файлах
Підключення до існуючої БД Так Ні
Розширюваність Extensions (TypeScript) Плагіни
Admin UI Більш гнучкий Стандартний
GraphQL Так Через плагін

Часові рамки

Базовий сайт з 4–6 колекціями та Next.js фронтендом — 2–3 тижні. Складний проект з Extensions, Flows, багатомовністю — 4–6 тижнів.