I’ve always wanted to write a book. Not sure how those aspirations started, but when I look at the colorful spines, ordered neatly on the shelves, I want to see my name on one of them. But I feared it would just be another pile of paper that people would pass by.
I wanted to create something of value, a text that would be remembered or at least placed in a more notable space in someone’s home library. So I couldn’t just go into the mountain and come back with a text like Moses. That’s not how it works.
This is the story of how my first book, Tao of React, came to be.
They say great ideas come when seemingly unrelated concepts meet each other. My epiphany came when my startup experience met writing. I had made the mistake of working on something without prior validation too many times to repeat it. So I couldn’t just pick a topic from thin air and write in seclusion. I had to make sure there’s an audience for it first.
I knew the book was going to be technical, but that’s too broad. I needed a niche.
Introductory content was out of the question. There are too many amazing books and courses that can teach you the basics of a tool. Advanced concepts, on the other hand, can be too business-specific. If your company doesn’t use the outlined approach, the knowledge in the book won’t be applicable.
Intermediate-level content, though, was scarce, and most developers in this phase of their careers are trying to improve the quality of their code.
I had always been fascinated by the topics of software design and architecture. Writing code that’s not only understandable by the compiler but for the developers after you. Knowing how to structure a project and design it so you can extend it without rewriting.
Software design is a skill on its own, and we often overlook it in favor of algorithmic prowess.
Naming variables well, creating intuitive function signatures, and building reusable abstractions are crucial for any large application. Becoming better at them is like improving your writing style - it doesn’t happen by accident. It requires deliberate attention and effort.
I thought there was a need for content that goes beyond the common advice from “Clean Code”. Improving the way you write code and build applications is transferable knowledge, and the potential audience could be huge. It’s also something that I would love to research and write about. So I decided to test the waters.
I wrote down some of the common principles that I follow when writing code. I outlined practices about structuring functions and creating abstractions then posted them on social media.
What helped me was that I had already been posting frequently on LinkedIn and Twitter, so I had an audience. Small but enough to validate the idea. Some developers agreed with my advice, others rejected it but most importantly - people engaged. That meant people cared, or they would have just ignored the posts.
I expanded the posts to articles but what worried me was that the topic was still too broad. I could share wisdom on designing better functions, but that won’t be applicable in all environments. In fields like front-end development, most work is done in a context-specific environment.
I narrowed further and focused entirely on React. I’ve been working actively with it for the past five years, and I had a lot to share. This is where most people believe a serious building effort is justified - they’ve got a niche. But too often, we mistake interest for validation and our passion for other people’s needs.
I decided to write a longer article, a few thousand words, sharing principles on building React applications. If people were interested in reading that, then they would read a complete book.
I put together the piece, called it Tao of React, published it on social media, and went to bed. The next morning I woke up to hundreds of upvotes and messages. Some of my favorite newsletters shared it as well.
I had my validation.
I didn’t follow a strict writing routine, nor did I have a goal in mind. I didn’t want a deadline looming over my head, stressing me out if I’m not running on schedule. Instead, I focused on my habits. I decided that I will write each day. I will put some words in the document, and day by day, I will get closer to the book being published.
Some days that meant a hundred words, others it meant a thousand. But I did it every day, with no exception.
When I was doing the first draft, I just wanted to get my thoughts out. The book was probably twice as long, but I was confident that I had written everything remotely related to the topic. Then I had to do the hard part - edit it and remove anything that didn’t bring value.
Writing the first draft gave me a lot of joy. The work on the second and third drafts was grueling. I removed entire chapters and rewrote every single page. I wrote every sentence anew. I removed repetitive thoughts and realized how much I love using the word “just”.
The big question in front of me was whether I find a publisher or I do everything myself. I already knew a thing or two about the process before I started writing the book - I had been a technical reviewer for a publishing house in the past.
My desire to write on my own deadline-free schedule was in conflict with how traditional publishing works. Retaining control over the content was important to me. I didn’t want to cut or extend it based on someone else’s judgment.
Those factors combined with the fact that publishers keep 80% of the profit pushed me away from that route, at least for Tao of React.
I decided to self-publish, knowing that I’ll have to do the design, promotion, formatting, and distribution on my own. Looking back, I would do the same thing. The fact that my own two hands did everything about the book made the process incredibly emotional. I had never been more invested in a personal project.
Being in control meant that I set my own price and give discounts whenever I wanted. It meant that I could publish an early release that is still raw. It meant that for once, my work didn’t depend on anyone, and that was liberating.
Being a one-man show isn’t a problem when it comes to getting things done. In fact, I usually move a lot faster this way. But promotion was something that I struggled with a lot. I still do.
I’m an introvert by nature, so I don’t reach out to people that much. I was afraid that posting about the book would look like bragging. So while I was looking for inspiration on IndieHackers, I found out about the “Build in Public” movement.
It’s about building your projects out into the open, sharing behind-the-scenes stories, and humanizing your product. People who build in public share their successes, their metrics and often sales too, for everyone to see.
But it’s not just the wins that matter. Losses and failures are a natural part of the process. Creating something is never a frictionless experience. Building in public is about showing that there’s a person behind your product, not just a bright logo and a Twitter account.
I couldn’t write a hundred pages, put a price tag on them and toss them in people’s faces. No, people love a story. They love being a part of the process. They want to see what happens before and after. That’s why we watch all those analysts’ shows around sports events.
Sharing public updates made me feel accountable. People waited for this book, and each time doubt crept in, a supportive message motivated me to continue. There’s a high chance that if I hadn’t told everyone that I’m writing a book, I would have abandoned it at some point.
Putting those hundred and twenty pages together has been one of the most challenging things I’ve done. But writing them was not the hardest part - publishing them was. Just a glance at the text is enough to notice all the minor stylistic imperfections.
At one point, I was stuck in the perfectionist’s cycle - editing the paragraphs over and over again, telling myself that I can’t put the book for sale before it’s perfect. But it could never be because each rewrite grows you as a creator.
It didn’t help that for the first time, my thoughts would be the product. Each reader will become intimately familiar with my thinking and habits. They will notice the words I use frequently and the opinions I hold so dearly. They will get to know me, but I will never get to know them, and that can be terrifying.
I hesitated to press the button because it wasn’t just about the money. It was about putting something valuable out there. Then a friend of mine reminded me of the saying about Pietà, the famous Michelangelo sculpture. Ever since its creation, anything else is insignificant in comparison. So I pushed the button.