I've been writing blogs for quite some time now. But the eagerness or the interest to create my own blog page started in office while I happened to read a blog. It was about a simple act of kindness or a travel in a bus, which I cannot recall exactly right now. But the way it was written was engaging and I remember completing long blog posts at one go. I was never a fan of reading books so the attention span is like very little to none for me. In the age of reels and shorts, I envy people who have the habit of reading books even now. This eagerness led to my first blog post.
You must be wondering now if you have landed on the wrong post, or probably even thinking about why I am even talking about my first blog here where the title says how I built an app. Yes, that's where the idea actually got planted in my head, but the execution was slightly delayed (only by 15 years).
While I was writing and posting my blogs on my Blogger profile, I wanted a beautiful landing page for it. Something like a portfolio page and then have a section for all my social media profiles, which I have in the form of a menu in the current theme. But the portfolio page is still not built, or basically I do not have enough achievements to boast about myself. I'm content with the brand that it is now. As I kept expanding my social presence from blogs to vlogs to podcasts, I kept adding the menu items. So wherever I get an opportunity to post a link — be it WhatsApp, Facebook, or Instagram — I paste my blog link (www.zakapedia.in) so people can land on my blog and, if they happen to see the menu, they go around to explore my other avenues. Then one day, about two years back, I happened to come across the Linktree app. It was a simple concept — a landing page with URLs to all your social media profiles. No portfolio page, no content, just the links. A simple solution but one that added more value. I could have easily created another profile in the app and added my links, but me being me, I thought why not build my own webpage on the same concept. No additional app, no additional permission of my Google profile to another app — just a simple HTML page that would sit in my Blogger page. The idea remained unimplemented.
Cut to 2026 — today the world revolves around AI, and chasing it, I even ended up paying for a subscription for the first time ever.
I was recently introduced to Claude at my workplace and it was instant love at first sight. I am so much in love that I have installed it on all my personal devices.
Now that I have subscribed to the Pro plan, I cannot let it go to waste, right? I made a vow to use it meaningfully (value for money — typical middle-class mindset). So I keep discussing some random thoughts, ideas, and stuff with it whenever I get free time. I started using it for everything and every time, and that's how I built InkNeighbour (live) and WellNest (parked for now). OK, what next? That's when I remembered Linktree. Now with Claude, I can go back and build my own portfolio page — which was my first wish — not that I have achieved enough, but I need not worry about the content. It will fill the page with some context. But again, me being me, I thought everybody can create a portfolio page now with AI — do I do the same and be that sheep in the herd? Naaah, let's build the Linktree clone app. But it will not be just a clone app; it will be something different from Linktree. So how did I start?
Step 1: Discuss the idea with Claude
I opened the Claude Chat (there are different options available in Claude – Code, Dispatch, Cowork) and put in the idea.
"I want to build an app which is a clone of / should have features like the Linktree app. But I want some additional features as well — what do you suggest?"
The best part about Claude is that it always jumps in to give a solution like a fish wanting to get to the ocean. It tries to code wherever and whenever it senses an opportunity. Like if you give it two texts and ask it to compare, it will compare but also ask you if it can generate a quick Python script to compare and run it locally. So for my idea, it gave me a detailed feature list and also suggested an analytics feature for tracking the views and clicks on a user profile — an added feature that is different from the Linktree app. It also gave me an option to monetize the analytics feature. The profile creation would be free, but if the user wants to view the analytics, they would have to pay a premium. But then, we are building an app that is different from the original one. So I decided nothing should be paid — everything in the app should be free.
While we (me and Claude) were discussing, I remembered I had an NFC card. Basically, we can program an NFC card to trigger any automation. For example, the tap-to-pay feature in your credit and debit cards works with NFC technology. It's a cool tech to have. I thought — why not program an NFC card with the profile link that the user is creating and let them tap on others' phones to share their profile? Sounds cool, huh? So I asked Claude to add it. But now I had decided to charge the user, because I have to spend some money on buying and printing the NFC card. There is also a catch — not all phones are NFC-enabled. What can we do about that? That's when I introduced the normal visiting card option, but instead of having text, it will have a cool QR code to scan and land on the profile page. I understand that it's an overkill with people going digital and no one preferring a physical card. But that's OK — Claude is going to build the feature anyway, so let it build.
Once the features were locked in, I asked it to create a PRD.md (Product Requirement Document). Since I have already built a couple of apps before, it knows my preferences. If it's your first time, it will ask you a few questions on what technologies you want to use to build the app, and the best part is it will also suggest where to host it along with the available free options. I went with the suggested stack solely because it was literally free:
- React for the app (easy to convert to a mobile app in the future)
- Supabase for the database (two projects free with limited bandwidth — ideal for an app with a small user base)
- Vercel for deployment (unlimited deployments, free SSL certificates, and GitHub integration for automatic deployments)
Step 2: Upload the PRD to GitHub
Once the PRD is clean with the features I intended, I create a new repo in GitHub and upload it. This is our starting point. Now there are two ways you can start generating the app. I'll tell you my favourite one because this method makes me feel more productive.
I use Claude Code on mobile. It has an option to connect to my GitHub. Once connected, it can scan the repo, make changes to it, and generate code. Now that I had already uploaded my PRD and given it access to my repo, I started a new session and asked Claude to prepare a feature list from the document and start implementing them one by one. The beauty is that it automatically creates a new branch and starts building the app. The reason I asked it to implement feature by feature is that sometimes it gets overwhelmed and starts implementing everything from start to end in one go, ending up with a "context too long" error. Once the code is generated, it will ask you to do a pull request. You can either merge it to your main branch or keep it in the feature branch.
The reason I feel more productive with this approach is simple — I do this while I'm travelling or not near my laptop. I open my phone, ask Claude Code to summarise the PRD and give me a to-do list, and then just ask it to implement them one by one — all while I'm in a crowded metro, a hospital waiting area, or at a family function waiting for the ceremonies to be over.
Step 3: Clone the GitHub repo on Laptop
Once I'm home, I quickly clone the repo (download the code from GitHub) onto the laptop and build it once. Now comes the reality check. Will it work in the first go? Absolutely not. Will it be as you expected? Nope. But the good part is it will be a good boilerplate with all the features implemented, so I don't have to start from scratch.
Step 4: Open Claude CLI on the folder and start refining
the app.
So we had an idea, discussed it with Claude to make it a proper app with features to stand out, coded the app (well, asked it to code) while travelling, and now we have it up and running on our system. We can talk our way through to refine the app to our satisfaction. Now since I know some coding (trying to be humble — ahem, ahem), I can work my way through when things don't work out or when a feature isn't behaving the way I want. There are scenarios where one wrong prompt sends the entire code in circles. For example, if I spot a bug and ask Claude to fix it, it will fix it and introduce a new one. And the cycle repeats. I see this most when I'm particular about a design change — I sometimes end up burning my entire session limit just to place a logo in the right position. That's where I roll up my sleeves and get my hands dirty. Otherwise it's just pure chatting — what people call vibe coding. But in my mind, I'm Tony Stark working with Jarvis. Will build that too one day and tell you all about it. Coming back to our app — most of the development happens on the laptop and slowly you start seeing the idea come to life.
The Loop of reality
While building an app, it usually takes me about two to three weeks before it becomes fully functional. The reason is simple — I only work on weekends and try to build as much as possible. Most of the time I end up not finishing the entire list of features I intend to fine-tune. In that case, I save the code and check it in (upload it) to the same feature branch that Claude initiated, and then continue the same session on my phone with Claude Code.
Sometimes I get new ideas while doom scrolling too. In that case, I go back to the chat where the initial PRD was created and continue updating it with the new features. The loop continues — I upload the updated PRD and ask it to look for additional features and start building them.
So the cycle always goes like this: whenever a new idea pops up, I discuss it in chat and come up with a PRD. Then I upload the PRD to ChatGPT to act as a critic and validate the idea and features. It does a good job of validating, and I ask it to give me suggestions. We literally go back and forth in some cases — me justifying why a particular feature will work and it giving me a reality check. I eventually ask for suggestions based on the conversation and take them back to Claude to refine the PRD. It's always good practice to refine this document with as much detail as possible, including the tech stack, coding patterns, and UI design decisions. Because this is where we generate the boilerplate code, and if this is vague or unclear, you will have to rewrite the entire codebase — and while Claude is doing the heavy lifting, we still end up wasting tokens, which are going to be worth their weight in gold in the near future. So I spend the entire weekday refining the PRD and preparing the boilerplate, only to open my laptop on the weekend and start the actual work.
It also helps to be mindful of the session limits that Claude has in place. Sessions reset every four to five hours and there is a weekly limit as well. I plan to save the maximum weekly limit for the weekend and use it only for chatting and preparing the PRD on weekdays. My goal is always to utilise the weekly limit fully — as I said, typical middle-class mentality: get as much value as possible for the amount paid.
Step 5: Deploy it to distribute to the world
The idea is now a fully built app, but it's still running on my laptop. We have to deploy (host) it somewhere so the world can see it. Again, as the AI suggested, there are a couple of free platforms where we can deploy the app:
- Netlify
- Vercel
I chose Vercel simply because it connects to both Supabase and GitHub.
Why am I building Tap in the first place
Well, to be honest, I don't have a grand reason. I did not build it to start a revolution or create a standout product. I had a dream, and instead of adopting a product already available in the market, I now have the power to build it with my own hands. It is as simple as that. I can add whatever features I want and remove anything I no longer need. With generative AI, everything is possible — the only limits are your creativity, and knowledge is now democratised.
It can change lives, for sure. But the caveat is that it isn't cheap. AI is definitely a costly affair and we are going to feel that in the coming years. I hope it becomes more of an empowerment tool for the common person rather than an unlimited money machine for a select few.
What did I learn out of it?
If you ask me whether I technically learned a new technology (React and PostgreSQL), the answer is like MS Dhoni answering about his IPL retirement — definitely not. But I definitely learned how to orchestrate AI to be the captain who steers the ship. I now know when to clear a session, when to create a skill, and when and how to use a plugin. I also know about the various MCPs available and how to invoke them. I certainly refined my craft of creating a well-documented PRD that magically turns into a working app within a week.
I have also learned about the AI models available, what suits best in various scenarios, how to connect them to my app, what the cost implications are, and how to control them. Most importantly, I learned how to handle a bullying AI — I have personalised ChatGPT to be my critic. I hope the learning doesn't stop here and I keep going.
What do I ask from you as a reader
If you think my apps are useful or make sense to you, try them out. Your feedback always gives me an additional perspective and room to improve when I build my next app. There is a deep sense of satisfaction in building something and seeing it out there in the world.
There are times when emotions take over and you start questioning yourself — why are you doing this when you could be spending time with family and kids? You spent the entire week working at the office, and on the weekend you're at it again. It's not that I don't enjoy it, but there are times when things don't go your way. Fifteen years ago, I wanted a simple page for my blog. I had the skills to build it, but not enough motivation to spend weeks turning a small idea into working software. AI changed that equation.
Today I built an app while waiting in hospitals, travelling in metros, and sitting through family functions. AI has reduced the distance between an idea and its execution
Sooooooo what I'm trying to say izzzzz — chinna paiyaan, enna support pannunga!
As people usually say Like karo, Share karo, Subscribe karooo. In my case also login and use it.
To my well-wishers:
Thank you for your feedback and support. I started this blog keeping in mind that one message that came in after my last couple of posts. Though it is a time-consuming process in this AI era, the human touch will be missed soon and I hope to keep that legacy alive 🤪. And for the folks who sent texts and made calls after the Average IT Guy blog and have been waiting for the next one — I won't disappoint you. Coming soon. Until then, goodbye, take care, and bye bye…
Before you leave here’s what I built.. Tap.Zakapedia




.png)

0 Comments