Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
36
Writing semantic HTML markup is one of the first steps to writing accessible websites. Let's learn how to get started!
over a year ago

Improve your reading experience

Logged in users get linked directly to articles resulting in a better reading experience. Please login for free, it takes less than 1 minute.

More from Max Rozen

Four years of running a SaaS in a competitive market

Looking back on the last four years, what worked, what didn't.

a week ago 13 votes
OnlineOrNot Diaries 24

Looking over last year, and a first incident for 2025.

2 months ago 42 votes
OnlineOrNot Diaries 23

Working with big systems all day can slow you down.

3 months ago 83 votes
OnlineOrNot Diaries 22

Feels like I've already said everything I had to say

4 months ago 65 votes
OnlineOrNot Diaries 21

I was young, and needed to ship...

7 months ago 97 votes

More in indiehacker

Educational Products: Month 6

Highlights My book’s pre-sale succeeded (just barely). I wrote a bunch of blog posts, and I was bad at predicting their performance. Now, I need to pick a markup language for writing my book. Goal grades At the start of each month, I declare what I’d like to accomplish. Here’s how I did against those goals: Reach my $5k Kickstarter goal for Refactoring English. Result: The Kickstarter reached $6,701 from 196 backers. Grade: A+ The Kickstarter did better than I expected, making a last-minute comeback.

3 days ago 4 votes
Four years of running a SaaS in a competitive market

Looking back on the last four years, what worked, what didn't.

a week ago 13 votes
My Book's Pre-Sale Just Barely Succeeded

For the past few months, I’ve been working on a book called Refactoring English: Effective Writing for Software Developers. I didn’t want to spend a year writing the book only to find out that nobody wants to buy it, so I ran a one-month pre-order sale on Kickstarter. I structured the project so that if I didn’t hit $5k in pre-orders, the project would be canceled, and I’d walk away with nothing.

a week ago 11 votes
Messy is Perfect

I always think that I’ll be happy when everything is running smoothly. When X visitors are flowing in, conversions are steady, the app works flawlessly, and revenue is predictable. But that’s not life. And nor is business. Life is messy. And there’s no such thing as perfect. At least, not the version of "perfect" I have in my head. Messy is the perfection. Every chaotic piece, every moving part, somehow coming together to make it work. Look at our bodies: an intricate mess of cells, signals, and systems, all in constant motion, working toward a common goal. What's more, nothing runs in a chronological order. That's only our perception. Things are constantly out of sync. Dancing in the background. Building our simple reality. I want to embrace this more. The unpredictability, the imperfection. The beautiful and disorderly relentless mess of it all. I don't want inbox zero. I don't want to have my life in order.  I want to let go more. Not hold the beautiful bird on my hand every so tightly that I squeeze the bejesus out of it. Do more. Do less. Whatever. Live as it comes. PS: I wish I lived more like my writing above.

3 weeks ago 16 votes
No Longer My Favorite Git Commit

Six years ago, David Thompson wrote a popular blog post called “My favourite Git commit” celebrating a whimsically detailed commit message his co-worker wrote. I enjoyed the post at the time and have sent it to several teammates as a model for good commit messages. I recently revisited Thompson’s article as I was creating my own guide to writing useful commit messages. When pressed to explain what made Thompson’s post such an effective example, I was surprised to find that I couldn’t. It was fun to read as an outside observer, but I couldn’t justify it as a model of good software engineering.

3 weeks ago 14 votes