What I deliberately skipped as a beginner
With too much to learn, deciding what not to touch mattered as much as what to study. Choosing what to leave out is part of design.
When you start building for the web, the sheer number of options is the first wall. Deciding what not to learn yet shaped my progress as much as deciding what to learn.
Left alone, on purpose
Running my own containers. Docker and Kubernetes may matter someday. For the goal of shipping one application, managed hosting is enough. Time spent on infrastructure isn’t wasted — it’s just better spent once the app is live and has users.
State management libraries. Fetching data on the server and assembling pages there leaves far less client state to manage. Adding a library after feeling the gap means I can explain what it’s for.
A custom design system. Tidying components is enjoyable work, but doing it at three pages abstracts too early and gets in the way later.
Worth doing early
Writing decisions down. Recording why a stack was chosen stops me from re-running the same comparison two weeks later. The act of writing also exposes the criteria I thought I had compared but hadn’t.
Types from the start. TypeScript configuration cost time up front, but connecting the database schema to frontend types means a change tells me what breaks before I run it.
Leaving things out is design
“Technical decisions” sounds like picking what to use. In practice, deciding what not to use did more for how I spend my time. Add it when it’s needed — and keep the setup such that the decision can wait.