neha sharma

Behind the Scenes: How I Built My Personal Website

3 min read

Building a website is a fun and creative process, but no one tells you that "starting" is the hardest thing to do.

For me, starting and publishing was also the hardest thing to do (it's a shame as a front-end dev). A year ago, I overcame this fear laziness by taking a "self 7 days challenge" and signing up for 7 days, 7 videos.

My goal was to "Just Publish and not focus on perfection."

Now, this blog is a year old. I get a few messages from people who want to know my blog's tech stack and process. So, here it is (sharing with the hope that you will publish your blog).

Tech Stack

Short description (for the quick readers):

1 . I used the NextJS blog template as a base.

2 . Wrote a lot of CSS, Tailwind CSS, and Next.js wherever I needed. Example: Bookshelf, blogs, blog filters, etc., are customized as per my requirements.

3 . Hosted on Vercel and using GitHub Actions.

4 . Illustrations are done by me (using iPad).

5 . Domain is from Google Domains.

Long description (for people who love reading and are curious):

1 . Base template is NextJS blog.

2 . I did a lot of customization on my website and blog. The code is HTML/CSS, JavaScript, React.js, and Tailwind CSS.

3 . I am using Vercel for hosting (to simplify my process). Now that my blog is a year old, I will think about moving it away from Vercel.

4 . Bookshelf has a custom backend to get the books list from an API. I was doing manual updates of books in 2025, and I wanted to avoid manual updates this year. So, I built a python backend. A HTMl/CSS admin to manage books (running at localhost) and update API.

5 . Bookshelf's API is an docker image and hosted on self hosted server. Database is postgres. Database is also hosted on server (self hosted server). There is lot of work left in the bookshelf. So, this is going to be my focus of 2025.

6 . GitHub to host code. It is a private repo. Why private? because, it has a lot of issues I created , lot of PRs in drafts, etc. So, this is not ready to be public.

7 . Google Analytics for analytics.

8 . Built on Mac Apple M2. Using VSCode.

9 . iPad for graphics.

10 . Vibe coding? It is 10% vibe coded (python backend, adding SEO tags, and code review).

Here is the process:

Neha Sharma

How often I blog?

I try to publish one or two blog posts a month. However, I don’t push myself to be overly consistent. Blogging, for me, should come naturally. If I force myself to publish every week or month, it starts to feel like a job, and the quality of my content would suffer.

Currently, I have more than 20 blog posts in draft. I take my time to write, research, and publish thoughtfully. I also don’t use AI much, because I don’t want my blog to feel AI-generated. I have one or two regular readers who give me feedback on every post, and they’ve been very clear: they want to read what Neha is writing, not AI.

Happy Learning!!