VOC GEMS — премиальная e-commerce платформа для редких цветных камней и ювелирных изделий, построенная на тысячах строк кастомного кода.
VOC Gems — это не просто интернет-магазин. Это цифровая витрина премиальных драгоценных камней, где каждый экспонат уникален, а опыт пользователя должен быть на уровне бутика в Женеве.
Задача выходила далеко за рамки «поставить тему на WordPress». Нужен был движок, который умеет работать с уникальными артикулами — каждый камень единственный в своём роде, — показывать их со всей точностью геммологических характеристик, поддерживать профессиональные сценарии: запрос цены, резервирование, аукционы, сертификаты. И всё это в премиальной эстетике, без компромиссов.
Результат — гибридная архитектура: WordPress как CMS-ядро, WooCommerce как коммерческая основа, Directory Kit как каталог, Elementor как визуальный слой — и поверх всего этого тысячи строк кастомного PHP, JavaScript и CSS, которые превращают стандартный стек в уникальный продукт.
Под премиальной визуальной оболочкой — собственный код для каждого сценария: от 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+ изображений.
Каждый переключатель в каталоге — это параметр эндпоинта и условие в SQL. Отметьте фильтры слева и посмотрите, как собирается запрос и что уходит в базу. Ювелирные изделия из выдачи исключаются всегда — это условие не снимается.
Ответ кэшируется транзиентами WordPress, сортировка по дате поступления. На запрос уходит меньше 150 мс.
Тридцать с лишним страниц и все кастомные модули берут цвета, радиусы и тени из одного файла. Поменяли значение в одном месте — изменилось везде. Покрутите токены и посмотрите на карточку камня справа: это тот же механизм, что работает на боевом сайте.
Именно поэтому редизайн карточки не превращается в неделю правок по тридцати шаблонам: правится строка в design-tokens.css.
Oval · VS · Muzo, Colombia · сертификат GRS
Пять слоёв, каждый со своей зоной ответственности. Выберите слой — под схемой появится, что именно там живёт и почему оно там.
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, картография и почта. Всё внешнее вынесено за границу приложения — падение любого из сервисов не роняет сайт.
30+ страниц, 2 языка, адаптив. HTML / CSS / Vanilla JS · Elementor Pro · Leaflet.js · CartoDB
PHP 8 · WordPress · WooCommerce · WDK · site-catalog-api.php (REST) · site-commerce-bridge
MySQL · posts/postmeta · таблица user_favorites · /site-cache · транзиенты
Custom AI pipeline · датасет 900+ изображений · built from scratch
Хостинг: managed PHP 8, ночные бэкапы, staging-окружение.
Endpoint /wp-json/catalog/v1/items с фильтрацией по цвету, чистоте, весу, огранке, локации. Исключение ювелирных изделий, сортировка по дате, кэш транзиентами.
Отдельная таблица БД user_favorites, три REST-эндпоинта, общий JS. Сердечки синхронизированы на каталоге, карточке и в личном кабинете.
Собственный AI-пайплайн, разработанный с нуля под сайт и задачу VOC Gems. Обучен на фирменном датасете из 900+ изображений, выдаёт визуализации точно в стиле бренда. V4 полностью перестилизована под дизайн-систему сайта.
Leaflet.js плюс CartoDB. Камни сгруппированы по стране происхождения. Клик по локации — показ всех гемстоунов региона. Брендовые маркеры.
Три счёта регионального банка (USD / EUR / SEA) с автовыбором по валюте. Ребрендинг email-уведомлений WooCommerce в стиль VOC Gems.
Canvas-анимация «маяк внутри бриллианта» — маркетинговый баннер в категории Emerald. Концептуальный визуал, поднимающий ощущение премиальности.
Выбор WordPress, WooCommerce, WDK и Elementor Pro как гибридной базы. Настройка managed-хостинга, Cloudflare, SSL, бэкапов. Дизайн-система и первые макеты. Стек выбирался под задачу, а не под привычку: уникальные артикулы плохо ложатся на обычный товарный каталог.
Разработка каталога с REST API, фильтрами и карточкой товара. Интеграция полей WDK. Адаптивная вёрстка. Страницы грузятся быстрее полутора секунд.
Динамическая карусель Featured Stones. Интерактивная карта на Leaflet.js. Динамическая система новостей. SVG-анимации огранок на главной. Hero «Voyage of Colors». Jewelry-модуль и система избранного с собственной таблицей в базе.
AI Jewelry Constructor — разработанный с нуля пайплайн генерации ювелирных визуализаций. Обучен на фирменном датасете из 900+ изображений, интегрирован в сайт как полноценный production-модуль, а не как демо.
14 апреля 2026 — официальный запуск vocgems.com. За три месяца: от чистого листа до работающего премиального e-commerce с AI-модулем. Заявки клиентов, первые заказы, email-уведомления в брендовом стиле, мультивалютные платежи через региональный банк.
Проект сдан, но по просьбе заказчика я продолжаю обслуживать сайт: развитие функционала, новые фичи, оптимизация, поддержка AI-модуля. Долгосрочные отношения — это тоже часть работы.
Суммарный объём кастомного PHP, JS и CSS. Без учёта шаблонного кода WordPress и WooCommerce.
Средний TTFB на каталоге и карточках. Cloudflare edge плюс транзиенты WordPress.
Изображений в фирменном датасете для обучения собственного AI-пайплайна VOC Gems.
Плагины, REST-эндпоинты и JS-системы, написанные с нуля под проект.
USD · EUR · SEA — мультивалютные счета регионального банка, автовыбор по валюте заказа.
EN / RU. Все страницы, статьи, SEO-мета. Персистентность языка в сессии.
Разбираюсь в бизнесе до уровня, на котором могу говорить на языке клиента — в случае VOC Gems это геммология.
Стек под задачу, а не под привычку. Design-tokens и API-контракты до написания кода.
Быстрые раунды: прототип → обратная связь → доработка. Решение целиком, а не размазанное на недели.
Мониторинг, кэш, тесты на реальном трафике, документация нестандартных решений.
Каждый камень в VOC Gems — единственный в своём роде. Поэтому и сайт не мог быть шаблонным.Design philosophy · 2026
Art Director · Designer · Developer
Я из тех редких гибридов, кто умеет и нарисовать проект, и собрать его руками — от первого наброска до production-кода.
Мой подход — «не разделяй дизайн и разработку». Когда один человек видит проект целиком, от типографической сетки до REST-эндпоинта, получается что-то большее, чем сумма слоёв. Именно так родился VOC Gems: ни один пиксель не был «передан» из макета разработчику — потому что дизайнер и разработчик были одним человеком.
Веду проекты от нуля до релиза: разбираюсь в бизнесе клиента до уровня, на котором могу говорить на его языке — будь то геммология или AI-пайплайны. Решаю задачу целиком, а не размазываю её на недели.
Начинала как арт-директор — рисовала бренды, мудборды, фирменные стили. В какой-то момент поняла: чтобы дизайн реально жил, нужно уметь собирать его самой. Теперь пишу PHP, JS, CSS.
Не стала ждать готовых решений — собрала AI-пайплайн с нуля под задачу клиента. Обучила собственную модель на 900+ изображениях VOC Gems. Теперь это production-модуль на сайте.
Один человек: разработчик, дизайнер, PM, AI-инженер. Три месяца от чистого листа до production. 30K+ строк кода, два языка, интеграция с региональным банком в Юго-Восточной Азии. Сайт сдан — продолжаю его обслуживать.
Этот кейс — не презентация, а срез реального production-проекта, который ежедневно обслуживает клиентов по всему миру. Каждая строка кода написана. Каждый пиксель прорисован. Каждое решение принято.
От идеи до запуска. От первого эскиза до production-кода. Один человек — весь путь.