Skip to content

ABOUT WHITTAKERTECH

We ship the discipline.

Rails already has the primitives. What it doesn't have is the judgment for assembling them. That's where most production bugs live, and that's what we build.

The gap we work in

Great tools stay unopinionated. Someone has to have the opinions.

Good libraries stay neutral so they can serve everyone. That's the right call for them, and it leaves every team to reinvent the same integration decisions, usually under deadline and usually slightly wrong.

Each WhittakerTech engine picks one of those domains and ships the missing opinions as a gem you can install.

  • Polymorphism Works: belongs_to polymorphic: Gets wrong: Joins, roles, ownership, and history Poly
  • Money Works: Money columns and the money gem Gets wrong: Duplicated columns, currency handling, auditable balances Midas
  • Record lifecycle Works: Soft-delete gems and status columns Gets wrong: Draft, archived, and trashed states with no rules between them Oscar
  • Time Works: Date and time columns Gets wrong: Recurring spans, rescheduling, and the history of what moved Aeon
  • Validation Works: ActiveRecord validations Gets wrong: The same rules rewritten by hand for the browser Veritas

How we build

Standard protocols, opinionated assembly.

Bricks and instructions

The standards are the bricks

Devise, Stripe, KMS APIs, and plain Rails conventions are the bricks. Our engines are the instructions nobody else prints.

Decoupled

Engines don't know about each other

Your application connects them, never the engines themselves. Adopt one without taking on the rest.

Documented

Documentation is infrastructure

We build our own documentation tooling and give engines documentation sites of their own. Docs get the same care as the code.

Admission test

What does everyone integrate wrong here?

Before we build an engine, we answer that question crisply. If we can't, it's a library, not a WhittakerTech engine.

In the workshop

What we're building, live.

Every public WhittakerTech repository, most recently active first. Updated Nov 2, 2026.

Released

In development

  • Codex

    Tooling

    The documentation builder behind every engine's API docs.

    Last commit Sep 23, 2026 Codex on GitHub
  • MosaicJS

    Tooling

    Snapshot-based drag-and-drop for the browser.

    Last commit Aug 7, 2026 MosaicJS on GitHub
  • Oscar

    Data primitives

    Lifecycle states for records, from draft to purged, with declared transitions.

    Last commit Aug 2, 2026 Oscar on GitHub
  • Aeon

    Data primitives

    Recurring time spans and rescheduling that behave like a native column.

    Last commit Jul 14, 2026 Aeon on GitHub
  • Virgil

    Tooling

    Headless rendering for Open Graph images.

    Last commit Dec 30, 2025 Virgil on GitHub
  • Veritas

    Data primitives

    Model validation rules, shared with the browser instead of rewritten by hand.

    Last commit Dec 6, 2025 Veritas on GitHub

The founder

Lee Whittaker Founder & engineer

Lee has spent more than ten years building production Rails systems: rescuing legacy apps, chasing data-integrity bugs that passing tests didn't catch, and making pipelines faster without making them bigger. The engines are the opinions that work left behind.

Before software, Lee worked in visual effects and video compositing. That's why WhittakerTech engines arrive with brand systems, icons, and documentation sites instead of a README and a shrug. He also runs the studio's infrastructure himself, from CI to documentation builds to error tracking, on hardware he maintains.

His consulting work, client case studies, and career history live on his personal site.