A couple of years ago, every new .NET project I started looked exactly the same.
The first few days were always the same routine:
- set up JWT auth
- add roles
- figure out refresh tokens
- recreate the folder structure
It felt productive at the time.
But looking back, it was just repetition.
The worst part wasn't even the time I lost.
It was the same small mistakes that kept coming back over and over:
- auth edge cases
- inconsistent structure across projects
- temporary decisions that somehow stayed forever
Every project started out messy before it even had a chance to become something good.
At some point, I just got tired of it.
So instead of rebuilding everything from scratch again, I created a base system I could reuse on every project.
A simple rule: if I have solved it once, I should not have to solve it again.
I ended up with something like this:
- a Clean Architecture structure auth already wired up with JWT, roles, and refresh tokens
- a predictable project layout
- no more "I will fix this later" parts
The difference was immediate.
When I start a new project now, I do not touch the setup anymore. I go straight into building actual features.
Another thing I noticed: a lot of these same patterns show up in interviews. Not the exact code, but the thinking behind it. How auth flows work. How you structure projects. How you avoid common mistakes.
So I started documenting those patterns too.
Now I basically have a starter system I use for everything. It is not perfect. But it is consistent, and that is what matters.
If you are in that phase where every project starts from zero, try this: build your own base system once. It does not have to be fancy. Just something you can trust and reuse.
I also turned mine into a small bundle, an API starter plus interview prep, since a few people asked for it:
Top comments (0)