DEV Community

Mostafa Hanafy
Mostafa Hanafy

Posted on

Stop Overengineering Your TypeScript Starters

If you build TypeScript projects regularly, you’ve probably experienced this:
You just want to start a simple project…
But instead you get:

  • 30+ config files
  • Opinionated architecture
  • Framework-specific setup
  • Tools you don’t need
  • Build complexity before writing code

What should take 10 seconds takes 10 minutes.


The Problem With Most TypeScript Starters

Many templates are built with good intentions.

But they often:

  • Assume enterprise-level needs
  • Add premature abstraction
  • Lock you into tooling choices
  • Introduce unnecessary boilerplate

For small libraries, APIs, CLI tools, or experiments, this is overkill.


What I Actually Needed

Most of the time, I just want:

  • TypeScript configured correctly
  • A clean src/index.ts
  • tsx for fast development
  • Optional ESLint / Prettier
  • ESM or CommonJS choice
  • Minimal scripts

No frameworks. No magic.

Just a clean starting point.


So I Built a Minimal CLI

I created ts-package-init. a small TypeScript project initializer focused on simplicity.

It scaffolds:

  • Base TypeScript projects
  • Libraries
  • Backends
  • CLI tools
  • Monorepos
  • Minimal NestJS or Moleculer presets

All with sensible defaults.


Quick Example

npx ts-package-init my-app
cd my-app
npm run dev
Enter fullscreen mode Exit fullscreen mode

That’s it.

You get:

my-app/
  package.json
  tsconfig.json
  src/
    index.ts
Enter fullscreen mode Exit fullscreen mode

Clean. Minimal. Ready to build on.


Optional Features

If you need more:

npx ts-package-init api --preset backend --eslint --prettier --esm

Enter fullscreen mode Exit fullscreen mode

You can:

  • Enable ESLint
  • Add Prettier
  • Use ESM
  • Select package manager
  • Skip install
  • Use interactive mode

But nothing is forced.


Design Philosophy

The goal is not to compete with full frameworks.

It’s to:

  • Start fast
  • Avoid unnecessary complexity
  • Keep structure predictable
  • Let you scale intentionally

Minimal first. Add complexity later.


v1.0.0

The core scaffolding logic is now stable.

Future improvements will focus on:

  • Developer experience
  • Preset refinement
  • Performance
  • Real-world feedback

Try It

GitHub:
https://github.com/yourusername/ts-package-init

npm:
https://www.npmjs.com/package/ts-package-init

If you regularly spin up TypeScript projects, I’d genuinely appreciate feedback.

Top comments (0)