For the last four months, I stepped away from my usual life in Prague to help my parents with several legal and health issues in Sri Lanka. This took a very heavy toll on me and while taking some time off to recover after getting back to Prague, I thought it might be interesting to share my journey with this blog. So here we go.

Hand drawn sketch of a stick figure falling below a marker named 2 years

An unexpected start (Late 2022)

In September 2022, I quit my job at Wargaming Prague. I had a simple plan: To build a small app to solve a problem I had and then monetize it to make enough to survive. In hindsight, this was incredibly naive but I had consumed enough indie hacker literature to think that it could work. So I took the leap.

It all began during the first COVID lockdown. To keep myself occupied, I built a small app to track the effort I spent on long-term tasks. This helped me be more consistent so I kept trying to improve it. Eventually, I felt that others might also find this practice helpful so I thought I could build a new public version of the app and be profitable from it.

After quitting my full-time position, I realized that building the app would take time. I had saved enough to keep me going for around a year but having zero income was scarier than I thought. So I decided to sign up as a mentor on several online mentoring platforms to have at least some income. I got accepted into Codementor and declined by MentorCruise but then I had trouble finding mentees. My profile had no reviews and no history and the competition was fierce for the relatively small number of mentees. Maybe I could have gotten through this phase with some grinding but I wanted a smarter way out.

At this point, I remembered the 30x500 course which I had partially completed a year before. The authors of the course, Amy Hoys and Alex Hillman, advocated for creating an online blog and posting content regularly to build an audience. I thought that having a blog would help me establish some credibility and that I could eventually make some income from paid books or courses. So I decided to start Frontend undefined.

To put the site online, I quickly extended my personal blog to support multiple themes and sites. To this day, Frontend undefined still lives in a repo named bashlk-final. I named the repo that way to deter me from endlessly switching tech stacks and so far it has worked.

Early days (Early 2023)

Initially I wrote about common issues in React. I based these posts on common questions that people asked on the /r/reactjs subreddit and similar issues I could think of based on my experience.

While scouring /r/reactjs for more topic ideas, I came across a list of libraries for React that someone had put together. I didn't recognize many of the names on it. So I decided to dig deeper into them and write a post about them while including other libraries that I felt should also be mentioned.

Writing that post took me nearly a month. Digging into the new libraries took me much longer than I thought and as the project dragged on, I wondered whether the time I spent on it was worth it. Eventually, I ended up with a 2000+ word post. I felt certain that no one would read such a wall of text so I wanted to add a bit of flair to make it more approachable. Graphic design was never my strong suit, neither was drawing but I felt that I could manage a few crude sketches like this one.

Hand drawn sketch of a stick figure pointing out some self-deprecating text

Self-promotion is heavily frowned upon on Reddit and after spending years on the site, I have taken that rule to heart. But after spending so much time on this post, I didn't want it to collect dust on the site like the other posts had done so far. So I gathered some courage and hit the post button. I figured that a few people would see it before a mod took it down. But it did much more than that.

Initially, the criticism rolled in. Many said that the post was unreadable because it was literally unreadable. One of the things I had overlooked while designing and implementing the site from scratch was the readability of long text, especially on mobile. Some commenters helpfully suggested small CSS changes which I implemented straightaway. It must have made a difference since the comments started to be more positive and the post started to rise in the subreddit.

By the time the traffic died down a few days later, the libraries post had over 4000 views. This number blew my mind since I had never gotten that much traffic on anything I had put online before. The most views I have had on anything I had written before was around a hundred. I later found out that the post had also been featured in several newsletters and I was absolutely humbled when Sehyun Hwang asked whether she could translate the post into Korean.

Screenshot of graph showing monthly pageviews in early 2023
Wait, how much?

I think there are many things I could have done better in the libraries post. But the reaction that post got gave me some confidence that maybe my writing skills are just good enough and that this blog might go somewhere. Many people liked the crude sketches I made so I decided to keep making them to make the site stand out a bit.

Niching down and the toll of working alone (Mid - Late 2023)

Since there were many blogs about React already, I felt that I should focus on a more niche topic. I discovered keyword research tools around this time and after playing around with them for longer than I should have, I decided to focus on the deployment of React apps. So I wrote several posts about using Docker for deploying React apps and about React's build process.

In the meantime, I still kept working on my effort tracking app while trying other ideas like YouTube shorts and live streams about frontend. Traffic to the blog was not growing and I kept having crises of faith about how I could monetize it. I didn't want to run ads and the only monetization options I was willing to consider were paid books or courses. But with the amount of traffic I had, I felt that I wouldn't be able to sell many copies of them. So I kept trying other ideas and getting disillusioned with them.

Eventually, I finished an MVP version of the effort tracking app and shared it in several groups to get feedback. I got some positive feedback but no long-term users; it was just not intuitive or "sticky" enough. I had many ideas on how I could improve it. But I had also lost the motivation to continue working on it. Somewhere during development, I had lost track of the core idea of the app and the current MVP version was an incomplete and confusing mess. I also realized that the app had to be extremely focused and polished to stand out amongst the sea of free competitors and it was nowhere close to that.

Around this time, I also noticed that my mental health had completely tanked. I constantly felt tired and miserable and I was always on the edge. In retrospect, this was not surprising. I had no fixed working hours and worked long hours with little to no downtime. I had no money coming in and no idea when it would start coming in. I was not sure whether the work I was doing was meaningful or useful.

Going back to work

Shortly after I started my journey in 2022, I joined a co-working space in Prague to force myself to get out of the house and preserve at least some of my sanity. (Shout out to the awesome people at Locus workspace) One day, while chatting with a fellow member in the space, I revealed that I used to be a frontend developer before doing whatever it was that I was doing at the time. His ears perked up and he told me that the company he worked for was urgently looking for a frontend developer. I told him that I was not interested.

Fabian, however, would not take no for an answer. He insisted that I have a chat with his director, Antonio, even if I wasn't interested in going back to work soon. Begrudgingly I agreed. Given the toll that having no income was having on my mental health, I started to think that returning to work might not be such a bad idea. But I also did not want to stop working on my own projects.

During our call, Antonio was very straightforward with me. One of the company's projects had gone astray and he was looking for someone to right the ship. This sounded interesting so I told him that I was willing to work a few hours a week for him. "We'll take it," he said. Looking back now, I am glad that Fabian and Antonio were so patient with me. Working for Nuvole lifted a huge load off my back and I got the chance to work on some great projects that reached hundreds of thousands of users worldwide.

However, the increased stability came with a marked decrease in urgency. Now that I had some money coming in, I didn't feel as pressured to monetize my projects as I did before. I still wanted to create and live off of something of my own and out of all the things I tried, this site was the only thing that gained at least some traction. So I decided to double down on it and declared 2024 the "year of writing".

The year of writing (and state management) (2024)

As 2024 began, I set myself the goal of having 100 posts on this site and finishing a small book or course by the end of the year. It had 17 posts at the start of the year.

Since I niched down to writing about deployment, I initially thought that I would continue in this space. But I started to realize that deployment was a one-off problem. Most developers self-hosted only one or two projects at best and they mostly went along with whatever deployment process was already in place in their workplace. Given this, I thought that not many would be interested in spending to learn about deployment. So I went back to writing about React issues.

I wrote a post about why React context is not great for managing state in React and this brought state management into my sights. I realized that there was a lot of confusion in this space, especially about choosing a state management library to use. There were many contenders and it was not obvious how each of them compared to each other. Most of my experience was with vanilla Redux since I started working with React in 2016 but now there were newer alternatives which I had no experience with. So I decided to start a series of posts to take an in-depth look at the state management libraries that have gained some traction. To do this, I would refactor a sample app to use each library.

I vastly underestimated how much time this would take. Refactoring the app took a lot of time and while I tried to keep the posts short, they always ended up being quite long. However, the community seemed to like these posts and many of them were featured in newsletters. Theo even covered one of my posts on a livestream. But they didn't leave me with time to write any other posts.

Screenshot of Theo's livestream on the zustand post
Everyone loves Zustand

Ultimately, this series of posts lasted over half a year. To conclude the series, I wrote a summary post which summed up my experience and I used some courage I had saved up to post it to Reddit again. The post immediately started getting downvoted. I asked what they didn't like and learned that some of my statements were not coming across right. I was traveling when I got this feedback and when I got in that night, I tried to fix it. At 3AM, I published the best update I could but the criticism continued the next day. I realized that I couldn't turn this around. But despite this, the post did quite well in the end in terms of upvotes and views. A silly thing that I consider an achievement was that for some time, my post ranked higher than the React 19 announcement post which was the biggest news in React in years. It is completely meaningless but hey, it happened.

Screenshot of the summary post hitting the top of the /r/reactjs subreddit
Why?

Shortly afterward, 2024 ended with Frontend undefined having 45 posts and 0 books or courses. I had missed my goal by a huge margin.

Horrible codebases (January 2025)

As the state management series ended, I started to think about what I should focus on next. I thought it might be interesting to write about my experience of slowly improving a codebase so I kicked off a new series about that. I planned to continue it for at least a few months. But unfortunately, life had other plans.

A hard reset (Present)

Originally I planned to keep writing while I was in Sri Lanka but after a few weeks, it became clear that I just won't have the capacity for it. This visit took a huge toll on me and it was one of the hardest periods of my life. As I am writing this after getting back to Prague, I can feel my mind resisting the return to the way things were so I feel that a few things need to change.

What's next?

I started this blog with the hope that I will eventually be able to generate some revenue from it. As I am writing this, it has generated exactly 0 EUR.

I kept shying away from monetization because it was scary. More specifically, monetization could concretely prove that this blog was yet another dead end for generating revenue and I didn't want to face that.

Through this blog, I discovered that I like technical writing. I always loved researching, experimenting and creating with tech and the deep dives on this blog allowed me to do just that. I genuinely would like to play a part in improving the experience of developers and users around building and using web apps. But if I'm honest with myself, writing full-time is also not for me.

The hardest part about writing this blog was the lack of feedback. I often felt like I was shouting into the void with no sound coming back. I am still not sure whether the posts I write are actually helpful.

Moving forward, I would like to focus more on monetization. I would like to pitch some of the ideas I had for books and courses and see what the community thinks of them. I would also like to focus more on community, both online and offline, to get more feedback. I would like to encourage more discussion on the forum and revive an old in-person meetup that I used to organize with a friend.

I think I will also step away from writing full-time to writing only monthly-ish. Until now, I spent quite some time writing posts that satisfied top search keywords to increase traffic to the site. These posts were not very nice to write and as far as I see, they didn't increase traffic either. So I am going to focus entirely on what I really liked, which is writing about my experience and my experiments.

2025 is an interesting and scary time to be a developer and a technical writer. Both spheres are changing fast due to gen AI and there is a lot of fear about the future of both roles. Personally, I choose to continue in both roles because I genuinely enjoy them and because I don't see any point in indulging the fear. Time will tell if this is a good decision and you will probably hear about it right here.

Prabashwara Seneviratne (bash)

Written by

Prabashwara Seneviratne (bash)

Lead frontend developer