Internal Project Starter
A codemod-driven starter for web products with common authentication, administration, organization, and payment foundations.
- Role
- Senior Software Engineer
- Date
- 2021–2024
- Status
- Internal
- Context
- Swovo, formerly Flatirons · Professional work
- Built with
- Next.js · NestJS · TypeScript · AWS · Amazon Cognito · Stripe · Codemods
tool
Full case study
About the project
The Internal Project Starter was a codemod-based way to begin new web products from a stronger foundation than an empty repository.
We already had an extended template with common product needs, so the goal was to make those pieces easier to select, configure, and reuse without copying a large project and deleting half of it afterward.
What it included
The starter covered things that appeared repeatedly in client work: Amazon Cognito integration, admin panels, organization structure, user management, and Stripe payment integrations. The main stack was Next.js, NestJS, TypeScript, and AWS.
These are not exciting features to rebuild at the beginning of every project. They are also important enough that rebuilding them quickly can create expensive mistakes.
Why codemods
Codemods gave us a way to turn a template into something more intentional. A new project could start with the pieces it needed while still producing normal code the team could understand and own.
The difficult part of a starter is not creating the first version. It is keeping the abstraction useful as real projects ask for slightly different things. The work taught me to be careful about what should be standardized and what should remain flexible.
I learned a lot about codemods, abstract syntax trees, and how TypeScript works underneath the code we normally write. Instead of only changing strings in files, I had to understand the structure the compiler sees and make transformations that preserved valid code.
That knowledge later helped me while developing Tua. The projects are very different, but the experience of reading, transforming, and reasoning about source code carried directly from this internal tool into my own language work.
Internal work
The source and documentation are private. The cover is original artwork made for this portfolio, not an image from the tool.