All projects

Test project 15 Jun 2026

regulus - a million-id selector with server-side order

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.