Open source · MIT

Grain

Сквозная аналитика: расход на рекламу, поведение людей и атрибуция между ними на одном рабочем столе из панелей.

v1.0.0 Реклама и выручка в одной таблице
Node 24TypeScriptDuckDBSVGDockerApple HIG
Grain

Куда ушли деньги и кто пришёл на них

Облачные сервисы сквозной аналитики берут деньги за объём событий и требуют выгрузить в чужую базу всё поведение своих клиентов. Дашборды общего назначения нарисуют что угодно, но модель атрибуции в них собирают руками, каждый раз заново.

Grain знает про рекламу и про людей одновременно. Расход из кабинетов, события продукта и атрибуция между ними — на одном экране, который собирается из панелей под свою привычку. Двенадцать миллионов событий отвечают быстрее десятой доли секунды, потому что под капотом колоночный DuckDB, а не строчная база.

Что внутри

Атрибуция тремя моделями

Первый контакт, последний, линейная — с окном в 30 дней. Считается оконными функциями на лету: смена модели пересчитывает весь период заново.

Рабочий стол панелей

Панели переставляются, растягиваются и запоминаются. После растягивания панель перерисовывается на сервере, чтобы график получил настоящую ширину, а не растянутый SVG.

Цифра со сравнением

Каждый показатель несёт изменение к прошлому периоду знаком, стрелкой и цветом. У расхода и CAC рост — плохо, у выручки — хорошо, и экран это знает.

От канала до человека

Канал → кампания → список людей → путь одного: все его контакты с рекламой и все события на одной ленте времени.

Свои графики

Линии, полосы, воронка и тепловая карта когорт нарисованы своим SVG на сервере — без библиотеки графиков и без фронтенд-фреймворка.

Двенадцать миллионов строк

Встроенный DuckDB: агрегаты за 26–109 мс, генерация демо-склада за пять секунд прямо в SQL. Импорт CSV и Parquet — один INSERT ... SELECT.

Скриншоты

Рабочий стол: показатели, расход против выручки, каналы, воронка
Рабочий стол: показатели, расход против выручки, каналы, воронка
Каналы и кампании: расход, выручка, ROAS и CAC
Каналы и кампании: расход, выручка, ROAS и CAC
Когорты удержания по неделе первого визита
Когорты удержания по неделе первого визита
Люди: кто пришёл, откуда и что заплатил
Люди: кто пришёл, откуда и что заплатил
Рабочий стол в тёмной теме
Рабочий стол в тёмной теме
Каналы в тёмной теме
Каналы в тёмной теме

Установка

git clone https://github.com/dripips/grain.git cd grain docker compose up -d

Есть проект или идея?

Напишите мне, обсудим задачу.