Orbit · Explore

Web Dev · by Midnight Otter · 2026-09-17

Why does css feel easy for everyone except me on a budget?

Part of me wanted the fancy version with all the tools. The better version was boring: one notebook, one reminder, and a willingness to be clumsy with the first draft for a while.

A few notes from my attempt:
- keep the first step visible
- remove one annoying decision
- celebrate the boring repeat

100 sparks · 42 comments

Comments

Diego García · 14 likes

Try making a tiny reproduction with no framework code. If it still fails, you found the core issue; if not, add pieces back one at a time. My friend tried it in Nairobi and had the opposite result.

Thandi Mokoena · 8 likes

I would log the input, the expected output and the actual output first. Once those three are visible, the bug usually stops feeling mysterious. I am curious whether css still feels good next month.

Midnight Otter · 1 likes

That is a much better way to say it.

Rohan Mehta · 0 likes

@curious_thandi This is the gentle version of my rant.

Gentle Baker · 7 likes

I would log the input, the expected output and the actual output first. Once those three are visible, the bug usually stops feeling mysterious. Honestly, the simplest version wins for me.

Rachel Tan · 6 likes

Totally agree, especially for beginners.

Urban Fern · 4 likes

I would pin this if I could.

Felix Weber · 5 likes

I am curious what changed your mind.

Mia Anderson · 2 likes

@otterPilot56 Small caveat: context changes the answer a lot.

Felix Weber · 0 likes

That is a good boundary.

Mia Anderson · 1 likes

This is the gentle version of my rant.

Felix Weber · 1 likes

@au_sparrow69 Same here. It took me too long to learn.

Chinedu Adeyemi · 0 likes

I like this more than the top-level advice.

João Pereira · 0 likes

I like this more than the top-level advice.

Gentle Baker · 1 likes

I laughed, but you are not wrong.

Chloe Davis · 4 likes

Anecdote beats theory here.

Midnight Otter · 4 likes

Kind of wild how often honestly is the whole issue.

Siti Lestari · 1 likes

I needed the reminder to start smaller.

Liam Eriksson · 0 likes

Fair pushback.

Silver Comet · 6 likes

The safe answer is to keep the API boring: clear names, explicit errors and one behavior per function. My only addition is to make the first step visible.

Ren Suzuki · 6 likes

Big fan of this approach. It sounds small, but the first draft matters. I would love to see the benchmark numbers.

Miguel Santos · 5 likes

Try making a tiny reproduction with no framework code. If it still fails, you found the core issue; if not, add pieces back one at a time. I would love to see a follow-up after 8 weeks.

Milan Visser · 12 likes

This is the kind of disagreement I like.

Aarav Sharma · 1 likes

Respectfully, I see it the other way.

Avery Johnson · 4 likes

Try making a tiny reproduction with no framework code. If it still fails, you found the core issue; if not, add pieces back one at a time. I noticed the same thing in Toronto.

Mango Coder · 4 likes

I think the bad version of this advice causes a lot of frustration. A little friction removed goes a long way.

Kabir Khan · 2 likes

Thanks, that actually helped.

Khalid Al Zahrani · 3 likes

Start by reducing it to the smallest reproducible piece, then change one variable at a time. Most people skip the boring setup, but that setup is what makes the good habit survive a busy week.

- Write down the exact error and the input that caused it.
- Make a tiny example, then add pieces back slowly.
- Keep the final fix boring and well-named.

Come back with what happened; the details will make the next answer better.

Emir Kaya · 3 likes

The safe answer is to keep the API boring: clear names, explicit errors and one behavior per function. The social part surprised me too.

Léa Bernard · 3 likes

The safe answer is to keep the API boring: clear names, explicit errors and one behavior per function. I am curious whether ux still feels good next month.

Tiny Comet · 1 likes

That is a good boundary.

Paolo Garcia · 3 likes

The safe answer is to keep the API boring: clear names, explicit errors and one behavior per function. This would have saved me a lot of trial and error.

Priya Nair · 3 likes

Try making a tiny reproduction with no framework code. If it still fails, you found the core issue; if not, add pieces back one at a time. I would test it for 7 days before deciding.

Midnight Otter · 2 likes

The safe answer is to keep the API boring: clear names, explicit errors and one behavior per function. The social part surprised me too.

Maya Putri · 2 likes

I would log the input, the expected output and the actual output first. Once those three are visible, the bug usually stops feeling mysterious. I am curious whether backend still feels good next month.

Silver Comet · 1 likes

Useful intention, poor execution. The first week version is even more interesting.

Omar Hassan · 1 likes

This feels like advice from a patient friend.

Giulia Rossi · 1 likes

Try making a tiny reproduction with no framework code. If it still fails, you found the core issue; if not, add pieces back one at a time. My only addition is to make the first step visible.

Urban Runner · 1 likes

Mildly negative take: the simple version is sometimes just underexplained. That is where the boring checklist helps. This is exactly the kind of tradeoff teams argue about for weeks.

Priya Nair · 0 likes

This. Exactly this.

Kabir Khan · 1 likes

I would log the input, the expected output and the actual output first. Once those three are visible, the bug usually stops feeling mysterious. I would love to see a follow-up after 8 weeks.

Midnight Runner · 0 likes

Try making a tiny reproduction with no framework code. If it still fails, you found the core issue; if not, add pieces back one at a time. I keep a note about performance for exactly this reason.