I made a tracker for lazy writers (like me)

At any point of time during the weekend, these are the tabs open on my browser - a blog listing all of the big literary journals I must submit to, an excerpt from a book for inspiration, my email inbox to stare at the short story submissions I’d sent to magazines and journals in the past month, an incomplete short story draft and a whiteboard to map that short story. I also have a notebook lying besides the laptop, filled with notes and questions I should be referring every time I write.

It’s all too much. I need one place.

I opened up a whiteboard this weekend and decided to draw my way through my problem and this is what I ended up with.

image

In the world of product building, this would be a good time to do some problem discovery and validate this idea but I was technically solving just my own problem with this, so…I considered it validated.

I tried out Webflow and Framer but neither fit my needs. I wanted to make a website that wasn’t just for display; this was something that needed to accept inputs and remember it. So, no-code builders were a no-go. I called my brother and tried to recruit him to develop the website and after 5 minutes spent eagerly pitching the idea, he responded with, “You do know I’m a security engineer, right?” Outsourcing was a no-go.

I installed a package manager first and then installed Node. I opened up the rusty VSCode application on my laptop, the poor thing that had never been used for anything of substance until now. I stared at it. I opened up freeCodeCamp and scrolled through the hundreds of videos. I closed freeCodeCamp. I opened up Claude.

I created a React project and named it writer-roadmap, and set up a decent file structure. I began filling up each of these JavaScript files - Header, App, Goal, Checklist, AccountabilityMessage - with some code.

The Header component would take care of displaying the title and any other buttons or text I would add to the top of the page. The Goal component would need to accept a name and a deadline from the user and contain a function to update the status of the goal. Checklist contained a fixed set of questions and tasks for the two types of goals on this tracker - writing and reading. I took visual inspiration from hex.tech, so the one main CSS file I had grew steadily to tens and then hundreds of lines of code with every component I added.

Having never written code in React before, there were things that had me scratching my head and typing away to Claude like an eager but annoying student. A few hours later, I could tell that React props are a way to pass values from a parent to a child but context states can be used to avoid using props in multiple files, and that event handlers take care of what happens after a user action like clicking and that useState is used to give components the ability to handle different states or changing values. I could also open up my terminal and type node -v for no reason at all.

I never entirely understood why developers can’t just take a break, why they choose to spend hours and whole nights pecking away at a project, coding and debugging over and over again. Now, I do. I had to shuffle through hundreds of lines of code, delete and set up the project from scratch after my localhost refused to connect and work through what seemed like a million import and export errors, but by the end of the evening, I had a local project that looked and worked like this.

There are times when an idea possesses you and the only exorcism is execution. Once this was up and running, I could shake off that little devil inside of me for some time. I took a break to ask my writing group for feedback. These are some of the responses I got.

“Is the get a quote thing powered by LLM? I assume the target segment is amateur or aspiring writers. Have to find strong differentiators to take off. Love the thinking behind it, surely useful. Happy to enroll for beta testing.”

“This is an interesting concept! I have been thinking along these lines too. How to leverage tech to get me to write more. The tool I want is a nagging boss who keeps egging me proactively to finish writing, or asks updates on whether the story I am working on or the book I am reading is done.”

“I think you are onto something here. I would suggest scope it down to the writers or readers and make the UI more one-pagey a la photoshop with tabs and stuff and you may have hit gold.”

It was only after I had shared it that I realised I would have to add functionalities for user profiles and authentication. I would also need to let these people define their own goals. I quickly implemented a local storage for persistence to simulate a backend, and added a functionality for adding (reading and writing) goals.

What’s next? Well, I need to sift through the feedback and build the features that writers want. I need to set up a real database and API calls and email verifications. I also want to implement an LLM-based approach to suggestions for books and magazines and journals to submit writing to. This is for another possessed weekend. For now, I will wait and observe to decide if this little local project has successfully solved my own problem.