Local-first temporal runtime

Make time durable.

later brings durable scheduling, recoverable work, events, workflows, and SQLite-backed streams to plain Ruby applications.

Animated terminal demo showing a later job moving through a lease
One small runtime

From delayed calls to durable local coordination.

Keep persistence, scheduling, and operational visibility close to the application while the project is still easy to run and test.

Durable jobs

SQLite-backed scheduling with leases, retries, deadlines, and crash recovery.

Temporal rules

Intervals, weekday schedules, timezone metadata, and recurrence simulation.

Workflows and events

Validated DAGs, durable payloads, filtered subscriptions, and futures.

Durable streams

Append-only SQLite streams with offsets, consumer groups, replay, and rewind.

Operational CLI

Inspect jobs, review history, lint schedules, diagnose databases, and manage streams.

Plain Ruby

A focused local runtime with no hosted service or framework adapter required.

Five-minute start

Install the gem. Keep the database local.

$ gem install later
$ later jobs --json --db tmp/later.sqlite3
Development release: the current line targets Ruby 3.2+, plain Ruby, and local SQLite. Delivery is at-least-once, so handlers and consumers should be repeat-safe.
See the interface

Operational clarity at the command line.

The installed CLI makes durable state inspectable without a separate dashboard service.

later CLI screenshot showing jobs in JSON and a database health check
Inspect jobs, queues, leases, and database health from the installed command.
Animated later CLI demo showing a job moving from scheduled to complete
Animated SVG demo of a persisted job moving through a recoverable lease.