All projects

Workforce / Access Control

Shiftly

Attendance derived from turnstile events, not from a form

The problem

What it solves

A site runs Hikvision turnstiles that already know who walked through and when. The question this codebase answers is what to do with that stream: authenticate against the devices, survive them going offline, and turn a day of raw passages into an attendance record somebody is willing to sign. Schedules, absences and late minutes are computed from events rather than entered by hand.

Day one

What the boilerplate supplied

Before a line of Shiftly was written, these 11 packages were already working. This project forked a later ShipKit than the others here, so its baseline is wider and its own additions below are only what it genuinely wrote.

authcacheclidbentitiesenveslint-configjobsloggertypescript-configui

That was the baseline Shiftly forked from. ShipKit ships 18 packages and 7 apps today, so some of what follows is now included out of the box.

On top

What this project added

Packages

hikvision

Apps

miniapp
  • packages/hikvision — a device client with HTTP digest auth, an event parser, a face-image multipart uploader and a status probe, each with its own tests.
  • TimescaleDB hypertables on pass_events and ingest_log, plus a pass_daily continuous aggregate with its own refresh policy — the raw event stream is kept and the daily view is derived from it.
  • apps/miniapp — a Telegram Mini App, so staff check their own record without an install.
  • An 18-page admin covering employees, schedules, absences, devices, notifications and an audit trail.

Wired in

Integrations and stack

Third-party services

Hikvision turnstiles (ISAPI)TelegramTimescaleDB

Stack

Next.js 16ElysiaBunPostgreSQL + TimescaleDBDrizzle ORMBetter AuthRedisTailwind CSS 4

Measured

By the numbers

19

pgTable definitions

16

API modules serving routes

94

Route handlers

12

Workspace packages

Counted from the repository, not estimated.

More

Other apps on the same boilerplate

runmate.net
RunMate — Fitness / AI

AI running coach. Syncs a full Strava history, benchmarks it against World Athletics records, and turns it into training plans from four specialist agents.

Fitness / AICase study
astervis.io
Astervis — Licensing & Commerce

The commercial control plane for a self-hosted analytics product: checkout, license keys, a server registry, installer distribution, and a hosted AI gateway.

Licensing & CommerceCase study
vgr.uz
VGR.uz — E-Commerce

A four-app commerce platform for Uzbekistan: trilingual storefront, admin back-office, local payment rails, and a native courier app for last-mile delivery.

E-CommerceCase study

Start building your product today.

The setup is done. Auth works. Payments work. Just add your idea.

Get ShipKit — $149