VOC Gems · Voyage of Code EN
● Daria · Portfolio Case study № 001
E-commerce · full-stack
2026
Case study · VOC Gems

Voyage
of Code

VOC GEMS — премиальная e-commerce платформа для редких цветных камней и ювелирных изделий, построенная на тысячах строк кастомного кода.

3месяцев
разработки
30K+строк
кода
15+кастомных
модулей
2языка
EN / RU
vocgems.com01
01 / OverviewVOC Gems · Voyage of Code
01 / Overview

Клиент, задача
и идея

E-commerceWordPressWooCommerce LuxuryCustom PHPREST API WDKBilingual
КлиентVOC Gems Co., Ltd. · Бангкок, Таиланд
Сайтvocgems.com
РольLead Developer + PM
СфераРедкие цветные камни, fine jewelry
Запуск14 апреля 2026
Длительность3 месяца (февраль — апрель 2026)
Статус● Сдан в production · поддержка продолжается

VOC Gems — это не просто интернет-магазин. Это цифровая витрина премиальных драгоценных камней, где каждый экспонат уникален, а опыт пользователя должен быть на уровне бутика в Женеве.

Задача выходила далеко за рамки «поставить тему на WordPress». Нужен был движок, который умеет работать с уникальными артикулами — каждый камень единственный в своём роде, — показывать их со всей точностью геммологических характеристик, поддерживать профессиональные сценарии: запрос цены, резервирование, аукционы, сертификаты. И всё это в премиальной эстетике, без компромиссов.

Результат — гибридная архитектура: WordPress как CMS-ядро, WooCommerce как коммерческая основа, Directory Kit как каталог, Elementor как визуальный слой — и поверх всего этого тысячи строк кастомного PHP, JavaScript и CSS, которые превращают стандартный стек в уникальный продукт.

VOC Gems · Voyage of Code02
02 / Code DNAVOC Gems · Voyage of Code
02 / Code DNA

Каждая страница —
это код

Под премиальной визуальной оболочкой — собственный код для каждого сценария: от REST API до системы избранного, от фильтров каталога до модальных окон авторизации. Выберите файл — увидите, что внутри.

// Кастомный REST endpoint для каталога камней
// с фильтрацией по десяткам геммологических параметров
add_action('rest_api_init', function() {
  register_rest_route('catalog/v1', '/stones', [
    'methods'   => 'GET',
    'callback'  => 'get_catalog_items',
  ]);
});

function get_catalog_items($request) {
  global $wpdb;
  $color   = trim($request->get_param('color'));
  $clarity = $request->get_param('clarity') ?: 'any';

  // Исключаем ювелирные изделия (category 42)
  $sql = "SELECT p.*, m.meta_value AS images FROM {$prefix}posts p ...";
  return rest_ensure_response($wpdb->get_results($sql));
}

REST API каталога. Endpoint на трейд-цвет, чистоту, категории и медиа. Меньше 150 мс на запрос.

// Единая система избранного — работает везде:
// каталог, карточка, личный кабинет
const SiteFav = {
  toggle(stoneId) {
    if (!window.SITE_LOGGED_IN) return SiteFav.openLogin();
    fetch('/wp-json/catalog/v1/favs', {
      method: 'POST',
      headers: { 'X-WP-Nonce': window.SITE_NONCE },
      body: JSON.stringify({ id: stoneId })
    }).then(r => r.json()).then(SiteFav.updateHearts);
  }
};

Favorites. Таблица БД user_favorites плюс REST плюс общий JS. Три компонента — одно поведение.

/* VOC Gems — Design Tokens (единый источник правды) */
:root {
  --voc-teal: #45BDB0;   --voc-gold: #C9A86C;
  --radius-card: 16px;   --radius-pill: 50px;
  --shadow-card: 0 3px 20px rgba(0,0,0,.04);
  --font-display: 'Playfair Display';
  --font-body: 'DM Sans';
}

Design system. Единый источник правды для тридцати с лишним страниц и всех кастомных модулей. На следующем развороте можно покрутить эти токены руками.

// Smart Auth Guard: защита закрытых страниц
// с модалкой и возвратом на исходный URL
class AuthGuard {
  init() {
    if (!this.isProtected(location.pathname) || window.SITE_LOGGED_IN) return;
    sessionStorage.setItem('return_url', location.href);
    this.renderModal({ title: 'Access to Private Collection' });
  }
}
new AuthGuard(['/item/', '/collection/', '/private/']);

Auth Guard. Защита четырёх закрытых разделов с сохранением состояния и возвратом ровно туда, откуда пользователя развернули.

// AI Jewelry Constructor — собственный пайплайн, созданный с нуля
async function generateJewelry(promptBase, stoneData) {
  const fullPrompt = `vocgems style, ${promptBase}, ${stoneData.type} (${stoneData.weight}ct)`;
  const response = await fetch(AI_ENDPOINT, {
    method: 'POST',
    body: JSON.stringify({ prompt: fullPrompt, style: 'vocgems_custom' })
  });
  return response.json().then(r => r.output.image);
}

AI Jewelry Constructor (V4). Собственный AI-пайплайн, разработанный с нуля под сайт и задачу VOC Gems. Обучен на фирменном датасете из 900+ изображений.

VOC Gems · Voyage of Code03
03 / Catalog APIVOC Gems · Voyage of Code
03 / Catalog API

Фильтр — это запрос

Каждый переключатель в каталоге — это параметр эндпоинта и условие в SQL. Отметьте фильтры слева и посмотрите, как собирается запрос и что уходит в базу. Ювелирные изделия из выдачи исключаются всегда — это условие не снимается.

Фильтры каталога

Ответ кэшируется транзиентами WordPress, сортировка по дате поступления. На запрос уходит меньше 150 мс.

Запрос к эндпоинту
GET /wp-json/catalog/v1/itemscolor=blueclarity=VScut=ovalorigin=sri-lankaweight_min=3
Что уходит в базу
WHERE p.post_type = 'wdk-listing' AND p.post_status = 'publish'
  AND t.term_id != 42  — ювелирные изделия исключены
  AND f.field_color = 'blue'
  AND f.field_clarity = 'VS'
  AND f.field_cut = 'oval'
  AND f.field_origin = 'sri-lanka'
  AND CAST(f.field_weight AS DECIMAL) >= 3
VOC Gems · Voyage of Code04
04 / Design systemVOC Gems · Voyage of Code
04 / Design system

Один источник правды

Тридцать с лишним страниц и все кастомные модули берут цвета, радиусы и тени из одного файла. Поменяли значение в одном месте — изменилось везде. Покрутите токены и посмотрите на карточку камня справа: это тот же механизм, что работает на боевом сайте.

--radius-card
--voc-accent
--shadow-card
--radius-card: 016px34px;
--voc-accent: #45BDB0#C9A86C#1A1D1C;
--shadow-card: 0 3px 20px rgba(0,0,0,.05)none;

Именно поэтому редизайн карточки не превращается в неделю правок по тридцати шаблонам: правится строка в design-tokens.css.

Emerald · Vivid green

Colombian Emerald 4.12 ct

Oval · VS · Muzo, Colombia · сертификат GRS

Price on request
Карточка каталога · пример на реальных токенах сайта
VOC Gems · Voyage of Code05
05 / ArchitectureVOC Gems · Voyage of Code
05 / Architecture

Как всё устроено внутри

Пять слоёв, каждый со своей зоной ответственности. Выберите слой — под схемой появится, что именно там живёт и почему оно там.

▼
▼
▼
▼

Edge / CDN. Кэширование, DNS и SSL до того, как запрос дойдёт до PHP. Сюда же уходит статика: чем больше отдаётся с края, тем меньше делает приложение. Средний TTFB на каталоге и карточках держится ниже полутора секунд именно за счёт связки «край плюс транзиенты WordPress».

Frontend. Тридцать с лишним страниц на двух языках, адаптивные. HTML, CSS и обычный JS без фреймворка — Elementor Pro как визуальный слой, Leaflet и CartoDB на карте локаций. AI-конструктор живёт здесь же полноценным разделом, а не демо-страницей.

Application. WordPress как CMS-ядро, WooCommerce как коммерция, Directory Kit как каталог — и поверх собственные плагины: catalog-api, commerce-bridge, admin-columns, favorites. Стандартный стек превращается в уникальный продукт именно на этом слое.

Data. MySQL с таблицами постов и метаполей, собственная таблица избранного, файловый кэш и медиа, хранилище переводов. Уникальные артикулы — каждый камень единственный — потребовали отдельной модели данных, а не привычной карточки товара с размерами и цветами.

External. Три счёта регионального банка с автовыбором по валюте заказа, собственный AI-пайплайн на serverless, картография и почта. Всё внешнее вынесено за границу приложения — падение любого из сервисов не роняет сайт.

Layer 01 · Frontend

30+ страниц, 2 языка, адаптив. HTML / CSS / Vanilla JS · Elementor Pro · Leaflet.js · CartoDB

Layer 02 · Application

PHP 8 · WordPress · WooCommerce · WDK · site-catalog-api.php (REST) · site-commerce-bridge

Layer 03 · Data

MySQL · posts/postmeta · таблица user_favorites · /site-cache · транзиенты

Layer 04 · Innovation

Custom AI pipeline · датасет 900+ изображений · built from scratch

Хостинг: managed PHP 8, ночные бэкапы, staging-окружение.

VOC Gems · Voyage of Code06
06 / Key featuresVOC Gems · Voyage of Code
06 / Key features

Что создано с нуля

⊕Backend · core

REST API каталога камней

Endpoint /wp-json/catalog/v1/items с фильтрацией по цвету, чистоте, весу, огранке, локации. Исключение ювелирных изделий, сортировка по дате, кэш транзиентами.

PHPRESTMySQLWDK
♡Frontend · DB · UX

Система избранного

Отдельная таблица БД user_favorites, три REST-эндпоинта, общий JS. Сердечки синхронизированы на каталоге, карточке и в личном кабинете.

MySQLRESTVanilla JS
◧AI · experimental

AI Jewelry Constructor V4

Собственный AI-пайплайн, разработанный с нуля под сайт и задачу VOC Gems. Обучен на фирменном датасете из 900+ изображений, выдаёт визуализации точно в стиле бренда. V4 полностью перестилизована под дизайн-систему сайта.

Custom AIIn-house900+ datasetFine-tuned
◎Frontend · data viz

Интерактивная карта локаций

Leaflet.js плюс CartoDB. Камни сгруппированы по стране происхождения. Клик по локации — показ всех гемстоунов региона. Брендовые маркеры.

Leaflet.jsCartoDBGeoJSON
▤WooCommerce · payments

Мультивалютные платежи

Три счёта регионального банка (USD / EUR / SEA) с автовыбором по валюте. Ребрендинг email-уведомлений WooCommerce в стиль VOC Gems.

WooCommercePHPHTML Email
✧Innovation · marketing

Emerald Bay (atmospheric)

Canvas-анимация «маяк внутри бриллианта» — маркетинговый баннер в категории Emerald. Концептуальный визуал, поднимающий ощущение премиальности.

Canvas 2DAnimation
VOC Gems · Voyage of Code07
07 / TimelineVOC Gems · Voyage of Code
07 / Timeline

Путь от идеи
до production

Foundation

Старт проекта. Архитектура и стек

Выбор WordPress, WooCommerce, WDK и Elementor Pro как гибридной базы. Настройка managed-хостинга, Cloudflare, SSL, бэкапов. Дизайн-система и первые макеты. Стек выбирался под задачу, а не под привычку: уникальные артикулы плохо ложатся на обычный товарный каталог.

Build-out

Базовые страницы и каталог

Разработка каталога с REST API, фильтрами и карточкой товара. Интеграция полей WDK. Адаптивная вёрстка. Страницы грузятся быстрее полутора секунд.

Luxury polish

Премиальный фронтенд

Динамическая карусель Featured Stones. Интерактивная карта на Leaflet.js. Динамическая система новостей. SVG-анимации огранок на главной. Hero «Voyage of Colors». Jewelry-модуль и система избранного с собственной таблицей в базе.

AI layer

Собственный AI-пайплайн

AI Jewelry Constructor — разработанный с нуля пайплайн генерации ювелирных визуализаций. Обучен на фирменном датасете из 900+ изображений, интегрирован в сайт как полноценный production-модуль, а не как демо.

Hard launch

Релиз в production

14 апреля 2026 — официальный запуск vocgems.com. За три месяца: от чистого листа до работающего премиального e-commerce с AI-модулем. Заявки клиентов, первые заказы, email-уведомления в брендовом стиле, мультивалютные платежи через региональный банк.

Ongoing

Поддержка и развитие

Проект сдан, но по просьбе заказчика я продолжаю обслуживать сайт: развитие функционала, новые фичи, оптимизация, поддержка AI-модуля. Долгосрочные отношения — это тоже часть работы.

VOC Gems · Voyage of Code08
08 / MetricsVOC Gems · Voyage of Code
08 / Metrics

Цифры, которые
говорят сами

30K+lines of code

Суммарный объём кастомного PHP, JS и CSS. Без учёта шаблонного кода WordPress и WooCommerce.

<1.5savg page load

Средний TTFB на каталоге и карточках. Cloudflare edge плюс транзиенты WordPress.

900+AI dataset

Изображений в фирменном датасете для обучения собственного AI-пайплайна VOC Gems.

15+custom modules

Плагины, REST-эндпоинты и JS-системы, написанные с нуля под проект.

3currencies

USD · EUR · SEA — мультивалютные счета регионального банка, автовыбор по валюте заказа.

2languages

EN / RU. Все страницы, статьи, SEO-мета. Персистентность языка в сессии.


Как я работаю

01

Погружение

Разбираюсь в бизнесе до уровня, на котором могу говорить на языке клиента — в случае VOC Gems это геммология.

02

Архитектура

Стек под задачу, а не под привычку. Design-tokens и API-контракты до написания кода.

03

Итерации

Быстрые раунды: прототип → обратная связь → доработка. Решение целиком, а не размазанное на недели.

04

Production

Мониторинг, кэш, тесты на реальном трафике, документация нестандартных решений.

VOC Gems · Voyage of Code09
“
Каждый камень в VOC Gems — единственный в своём роде. Поэтому и сайт не мог быть шаблонным.
Design philosophy · 2026
09 / About the authorVOC Gems · Voyage of Code
09 / About the author

Человек за кодом

ДЗ
Who · что я делаю · почему

Дарья Платоновна
Зеехоф

Art Director · Designer · Developer

Я из тех редких гибридов, кто умеет и нарисовать проект, и собрать его руками — от первого наброска до production-кода.

Мой подход — «не разделяй дизайн и разработку». Когда один человек видит проект целиком, от типографической сетки до REST-эндпоинта, получается что-то большее, чем сумма слоёв. Именно так родился VOC Gems: ни один пиксель не был «передан» из макета разработчику — потому что дизайнер и разработчик были одним человеком.

Веду проекты от нуля до релиза: разбираюсь в бизнесе клиента до уровня, на котором могу говорить на его языке — будь то геммология или AI-пайплайны. Решаю задачу целиком, а не размазываю её на недели.

3роли в одном лице
End-to-Endот концепции до deploy
AI/MLсобственный стек
∞%перфекционизма на пиксель
Story · 01

Дизайнер, который полез в код

Начинала как арт-директор — рисовала бренды, мудборды, фирменные стили. В какой-то момент поняла: чтобы дизайн реально жил, нужно уметь собирать его самой. Теперь пишу PHP, JS, CSS.

Story · 02

AI как новая кисть

Не стала ждать готовых решений — собрала AI-пайплайн с нуля под задачу клиента. Обучила собственную модель на 900+ изображениях VOC Gems. Теперь это production-модуль на сайте.

Story · 03

VOC Gems — полный цикл

Один человек: разработчик, дизайнер, PM, AI-инженер. Три месяца от чистого листа до production. 30K+ строк кода, два языка, интеграция с региональным банком в Юго-Восточной Азии. Сайт сдан — продолжаю его обслуживать.

VOC Gems · Voyage of Code10
Спасибо за просмотр

Следующий проект
может быть вашим.

Этот кейс — не презентация, а срез реального production-проекта, который ежедневно обслуживает клиентов по всему миру. Каждая строка кода написана. Каждый пиксель прорисован. Каждое решение принято.

От идеи до запуска. От первого эскиза до production-кода. Один человек — весь путь.

VOC Gems · Voyage of Code · кейс № 001 · 2026 dariaseehof.ru — остальные работы