2026-09-26projects/paratrack.mdparatrack.md

paratrack: учёт времени в одном бинарнике

≈ 2 минуты

Трекеры времени делятся на два лагеря. С одной стороны тяжёлые веб-приложения: мегабайты JavaScript, подписка, экспорт по запросу в поддержку. С другой консольные утилиты, где start и stop есть, а обратной связи нет.

Мне не подходили оба. Плюс активности идут параллельно, и учитывать их хочется честно, а большинство трекеров считают, что человек делает одно дело за раз.

Из этого вырос paratrack. Один Go-бинарник, внутри веб-интерфейс и SQLite. Без CGO, без Node в рантайме.

make build
./paratrack web --addr 127.0.0.1:8000

Учёт: параллельные таймеры, пауза, «Фокус», который выводит одну сессию вперёд, прошедшие сессии свободным текстом вроде «вчера 14:00» или «2h ago». Таймшит на неделю: сетка активность на дни, в ячейке минуты. Цветные проекты, оценка в минутах против факта, ставка в центах.

Деньги: инвойс INV-ГГГГ-ННН собирается из оплачиваемого времени, отдаётся в PDF с платёжной ссылкой через Stripe Checkout и помечается оплаченным. Фонд оплаты считается от ставок участников. Пять шаблонов отчётов в HTML и CSV.

Команда: несколько пространств, участники с ролями, приглашения по ссылке, расписание людей по проектам с загрузкой от ёмкости. Интеграции с GitHub, GitLab, Jira, Trello, Asana, ClickUp, Todoist и Notion: импорт задач с запуском таймера одним кликом. Импорт истории из Toggl, Harvest и Clockify, если переезжаешь. API-токены и вебхуки.

Мобильный: устанавливаемый PWA с офлайн-очередью, push в браузере, расширение для Chrome с таймером в попапе.

Под капотом Go 1.27, net/http и html/template из стандартной библиотеки, modernc.org/sqlite на чистом Go. Фронт без фреймворка: HTMX для точечных подмен, Alpine.js для живых значений, ECharts для графика, Tailwind v4 с DaisyUI собираются в один бандл около 16 килобайт. Русский по умолчанию, есть английский, тёмная тема.

Для команды или фрилансера, которым нужен учёт, инвойсы и зарплата без SaaS. Собрал бинарник, запустил, база лежит в ~/.track/track.db.