Web Dev · by Midnight Otter · 2026-09-17
Why does css feel easy for everyone except me on a budget?
A few notes from my attempt:
- keep the first step visible
- remove one annoying decision
- celebrate the boring repeat
100 sparks · 42 comments
Web Dev · by Midnight Otter · 2026-09-17
100 sparks · 42 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.