DEV Community

Cover image for I got tired of messy TypeScript migrations in Node.js, so I built fast-ts-integrator
Youssef Selk
Youssef Selk

Posted on

I got tired of messy TypeScript migrations in Node.js, so I built fast-ts-integrator

Adding TypeScript to an existing Node.js project sounds simple until it isn’t.

A few files in, things usually start drifting:

  • tsconfig.json stops matching the actual runtime
  • CommonJS and ESM start fighting each other
  • mixed .js and .ts files make the project harder to reason about
  • test and lint setup adds even more friction

I kept running into that same wall, so I built a small CLI to make the setup predictable.

What it is

fast-ts-integrator is a CLI that helps add TypeScript to a new or existing Node.js project with an interactive setup.

It lets you choose:

  • ES Modules or CommonJS
  • tsx or ts-node
  • Biome or ESLint + Prettier
  • Vitest or Jest Then it installs what is needed, generates the config, and adds the scripts so you can actually start working instead of fighting setup.

Why I built it

Most of the pain was never “TypeScript itself”.

It was the setup around it:

  • choosing the right module strategy
  • keeping runtime behavior consistent
  • avoiding broken imports after migration
  • wiring linting and testing without turning the project into config soup

I wanted something practical that works for real Node.js projects, not just empty demos.

Quick start

npx fast-ts-integrator
Enter fullscreen mode Exit fullscreen mode

or

npx fast-ts
Enter fullscreen mode Exit fullscreen mode

Example flow

The CLI walks through a few choices:

  1. module system
  2. execution engine
  3. linter/formatter
  4. test framework

After that, it scaffolds the setup and updates package.json for you.

Links

npm: npm package
GitHub: Github Repo

Still improving

This is an early release, and I’m actively improving it.

Real feedback would help a lot, especially from people who have dealt with:

  • gradual JS to TS migration
  • CommonJS to ESM headaches
  • existing Express or Node backends
  • lint/test setup that tends to break during migration

If you try it, I’d genuinely like to know what feels smooth and what feels annoying.

Top comments (0)