Skip to content
Skip to content
Skip to content

Stack

What I reach for, how long I have used it and how often. If a tool is not here, I will say so before I learn it on your budget.

mainsoren/stackchore(stack): drop two tools, add none16 tools · 4 groups

Stack

What I reach for, how long I have used it and how often. If a tool is not here, I will say so before I learn it on your budget.

mainsoren/stackchore(stack): drop two tools, add none16 tools · 4 groups

Stack

What I reach for, how long I have used it and how often. If a tool is not here, I will say so before I learn it on your budget.

mainsoren/stackchore(stack): drop two tools, add none16 tools · 4 groups

How to read the levels

Daily
On most working days. Ask me anything.
Weekly
In regular use. I ship with it without looking things up.
Comfortable
I can deliver with it, a little slower.
Languages4 tools
ToolYearsLevelWhat I use it for
TypeScript8 yrDailyStrict mode, no any. Types are the first draft of the docs.
JavaScript8 yrDailyThe platform underneath everything else, and still where the bugs live.
CSS8 yrDailyGrid, container queries and custom properties before any library.
GLSL4 yrWeeklyShaders for charts and the occasional hero that earns its place.
Frameworks4 tools
ToolYearsLevelWhat I use it for
React8 yrDailyServer components where they help, plain state where they do not.
Next.js6 yrDailyThe default for products that need a server and a deadline.
Astro3 yrWeeklyFor docs and content sites that should ship almost no JavaScript.
Svelte2 yrComfortableSmall tools and prototypes; I read it more often than I write it.
Tooling4 tools
ToolYearsLevelWhat I use it for
Vite5 yrDailyFast feedback is a feature. Builds measured in seconds, not coffee.
Node.js7 yrWeeklyBuild scripts, small APIs and the glue between services.
Storybook6 yrWeeklyEvery component in isolation, with its states written down.
Figma7 yrWeeklyI read design files fluently and push tokens back into them.
Testing4 tools
ToolYearsLevelWhat I use it for
Playwright5 yrDailyEnd-to-end tests on the flows that make money, on every pull request.
Vitest4 yrDailyUnit tests that run before I have switched windows.
Testing Library6 yrWeeklyTests that use the interface the way a person does.
Lighthouse CI5 yrWeeklyA performance budget the build enforces, so nobody has to argue.

Years are counted from the first paid project, not the first tutorial.

How to read the levels

Daily
On most working days. Ask me anything.
Weekly
In regular use. I ship with it without looking things up.
Comfortable
I can deliver with it, a little slower.
Languages4 tools
ToolYearsLevelWhat I use it for
TypeScript8 yrDailyStrict mode, no any. Types are the first draft of the docs.
JavaScript8 yrDailyThe platform underneath everything else, and still where the bugs live.
CSS8 yrDailyGrid, container queries and custom properties before any library.
GLSL4 yrWeeklyShaders for charts and the occasional hero that earns its place.
Frameworks4 tools
ToolYearsLevelWhat I use it for
React8 yrDailyServer components where they help, plain state where they do not.
Next.js6 yrDailyThe default for products that need a server and a deadline.
Astro3 yrWeeklyFor docs and content sites that should ship almost no JavaScript.
Svelte2 yrComfortableSmall tools and prototypes; I read it more often than I write it.
Tooling4 tools
ToolYearsLevelWhat I use it for
Vite5 yrDailyFast feedback is a feature. Builds measured in seconds, not coffee.
Node.js7 yrWeeklyBuild scripts, small APIs and the glue between services.
Storybook6 yrWeeklyEvery component in isolation, with its states written down.
Figma7 yrWeeklyI read design files fluently and push tokens back into them.
Testing4 tools
ToolYearsLevelWhat I use it for
Playwright5 yrDailyEnd-to-end tests on the flows that make money, on every pull request.
Vitest4 yrDailyUnit tests that run before I have switched windows.
Testing Library6 yrWeeklyTests that use the interface the way a person does.
Lighthouse CI5 yrWeeklyA performance budget the build enforces, so nobody has to argue.

Years are counted from the first paid project, not the first tutorial.

How to read the levels

Daily
On most working days. Ask me anything.
Weekly
In regular use. I ship with it without looking things up.
Comfortable
I can deliver with it, a little slower.
Languages4 tools
ToolYearsLevelWhat I use it for
TypeScript8 yrDailyStrict mode, no any. Types are the first draft of the docs.
JavaScript8 yrDailyThe platform underneath everything else, and still where the bugs live.
CSS8 yrDailyGrid, container queries and custom properties before any library.
GLSL4 yrWeeklyShaders for charts and the occasional hero that earns its place.
Frameworks4 tools
ToolYearsLevelWhat I use it for
React8 yrDailyServer components where they help, plain state where they do not.
Next.js6 yrDailyThe default for products that need a server and a deadline.
Astro3 yrWeeklyFor docs and content sites that should ship almost no JavaScript.
Svelte2 yrComfortableSmall tools and prototypes; I read it more often than I write it.
Tooling4 tools
ToolYearsLevelWhat I use it for
Vite5 yrDailyFast feedback is a feature. Builds measured in seconds, not coffee.
Node.js7 yrWeeklyBuild scripts, small APIs and the glue between services.
Storybook6 yrWeeklyEvery component in isolation, with its states written down.
Figma7 yrWeeklyI read design files fluently and push tokens back into them.
Testing4 tools
ToolYearsLevelWhat I use it for
Playwright5 yrDailyEnd-to-end tests on the flows that make money, on every pull request.
Vitest4 yrDailyUnit tests that run before I have switched windows.
Testing Library6 yrWeeklyTests that use the interface the way a person does.
Lighthouse CI5 yrWeeklyA performance budget the build enforces, so nobody has to argue.

Years are counted from the first paid project, not the first tutorial.

Start a project

Three quick picks so the first reply is useful. You finish the message on the contact page.

What do you need?

Rough budget

brief.tsdraft, not sent

Brief so far: nothing picked yet

or write to hello@sorenhale.dev

Nothing is sent from this page. Your picks are kept in this browser tab and wait for you on the contact form.

Start a project

Three quick picks so the first reply is useful. You finish the message on the contact page.

What do you need?

Rough budget

brief.tsdraft, not sent

Brief so far: nothing picked yet

or write to hello@sorenhale.dev

Nothing is sent from this page. Your picks are kept in this browser tab and wait for you on the contact form.

Start a project

Three quick picks so the first reply is useful. You finish the message on the contact page.

What do you need?

Rough budget

brief.tsdraft, not sent

Brief so far: nothing picked yet

or write to hello@sorenhale.dev

Nothing is sent from this page. Your picks are kept in this browser tab and wait for you on the contact form.

Footer

Local time, Oslo

Footer

Local time, Oslo

Footer

Local time, Oslo

Create a free website with Framer, the website builder loved by startups, designers and agencies.