Test project 15 Jun 2026
regulus - a million-id selector with server-side order
- Express 5
- TypeScript
- React 19
- dnd-kit
- Docker
Two-pane selector over a virtual list of one million ids with server-side ordering, drag-sort, and a hand-written dedup-and-batch queue. Express 5 + React 19.
The challenge
Let a user browse, filter and hand-order a list of a million ids that stays responsive - without ever holding the full million in memory, and with the chosen order surviving filtering and reloads.
Approach
The million is never materialized: the base range stays a plain integer interval, merged on the fly with a sorted array of custom ids and paged by an id cursor with a per-request scan budget, so even a sparse filter can't stall the event loop. State lives in memory on the server, shared across visitors, and every write flows through a hand-written dedup-and-batch queue so a value is never added twice.
Result
A two-pane selector with a virtualised list and drag-sort that stays smooth at a million rows. Express 5 and React 19 run from one process, with vitest over the queue and pagination, shipped in Docker behind Caddy.