Hey, I’m Rifat! I’m super passionate about web development and love building tool-based websites that actually help people. Today, I’m gonna share a wild ride I went on recently: building my very first portfolio website from scratch. Spoiler alert — it was way harder than I thought but also 100% worth it. This post is gonna break it all down for you: what went right, what broke my brain, what I wish I knew, and the gold nuggets I picked up along the way.
Let’s dive in!
What Even Is a Portfolio Website, and Why Should You Care?
If you’re diving into web dev like I am, a portfolio website is your personal digital billboard. It’s where you show off your skills, tell people who you are, and flex your coolest projects. For me, it was a way to say: “Hey world, I’m Rifat, and I build cool stuff.”
But building one from scratch? Whole different game than just throwing something together with a drag-and-drop builder. I didn’t just want a website that worked — I wanted one that taught me how websites work.
Planning Is Not Boring, It’s the Secret Weapon
Okay, confession: I skipped planning at first. I thought I could just open VS Code and vibe it out. Wrong move.
Eventually, I had to hit pause and actually sketch things out. Not just the design, but:
- What sections my site needed (About, Projects, Contact, etc.)
- What tech stack I was gonna use
- How I was gonna structure my files
Once I laid that out, everything started making more sense. I used pen and paper (yes, old school) to draw wireframes. Suddenly I wasn’t staring at a blank screen anymore.

HTML & CSS: The Building Blocks (And My Initial Struggles)
HTML was kinda okay. It’s like the bones of your site. But when I hit CSS? Chaos. Styling everything to look even halfway decent took hours.
One big tip: learn Flexbox and Grid early. Seriously. These two things made my life soooo much easier. Here’s a simple comparison I made while learning:
Feature | Flexbox | Grid |
---|---|---|
Best For | 1D Layouts (rows OR columns) | 2D Layouts (rows AND columns) |
Learning Curve | Medium | Slightly harder |
Use Case | Navbars, simple content layouts | Complex sections, cards, galleries |
I used Flexbox for my navbar and project cards, then Grid for the main content area. Worked like a charm after some trial and error.
JavaScript: The Magic (and the Misery)
So, I knew a bit of JavaScript. But connecting it with my HTML/CSS in a real project? That was a first.
I used JS for a few things:
- A dark/light mode toggle (because why not?)
- Form validation in my contact section
- A simple image gallery slider for my projects
At first, my code was a mess. Functions everywhere, console errors galore. Then I started organizing things better. Using querySelector
smartly, keeping logic modular, naming things clearly — that helped a lot.
Also, pro tip: console.log()
is your best friend. Don’t be afraid to use it like 100 times.
Hosting & Domain: Making It Live
Once my site looked decent locally, I wanted to put it online. Cue the next big adventure.
I bought a domain from Namecheap (wasn’t expensive at all) and used GitHub Pages for hosting. Here’s what I learned:
- GitHub Pages is free and surprisingly easy to use
- Custom domains take a bit of setup but aren’t scary
- SSL (https) is a must and GitHub makes it easy to enable
Uploading my code, setting up the DNS, and finally seeing my site on the internet? Best feeling ever.
Responsive Design: Looks Matter Everywhere
This is where I got humbled.
My site looked amazing on my laptop. But on a phone? Disaster. Buttons out of place, text overflowing, images breaking.
I went back and learned the magic of media queries. Something like this:
@media (max-width: 768px) { .project-section { flex-direction: column; } }
Mobile-first design isn’t just a buzzword. It’s a mindset. I started designing for small screens first, then adding styles for larger screens. Way more effective.
SEO: Getting Found Online (Because What’s the Point Otherwise?)
Okay, so I have a site. But how do people find it? Time to learn the basics of SEO.
No, I didn’t go full keyword-stuffing robot mode. I just did a few smart things:
- Used proper
<title>
and<meta>
tags - Added
alt
text to images - Made sure my site loaded fast
- Structured content with headings (h1, h2, etc.)
It’s all about helping Google understand your site, and making sure visitors don’t bounce right off.
My Biggest Mistakes (So You Don’t Make Them)
Let’s be real. I made a bunch of mistakes. The kind that hurt, but teach you stuff.
- Didn’t plan before coding
- Ignored mobile design until the end
- Overused animations (they looked cool but slowed down the site)
- Didn’t compress my images, so my site was slow at first
The biggest one? Trying to do everything at once. It’s okay to learn as you go. You don’t have to be a full-stack wizard from day one.
The Tools That Saved My Life

Here are a few tools I now can’t live without:
Tool | What It Does |
---|---|
VS Code | My go-to code editor |
GitHub | Version control + hosting via GitHub Pages |
Figma | Quick mockups and wireframing |
Netlify | Another great free hosting platform |
Google Fonts | For making my site look less boring |
Final Thoughts: Was It Worth It?
A million times yes.
Building my portfolio site from scratch taught me more than any YouTube tutorial ever could. It forced me to face real problems and figure out real solutions.
Now I have a website I’m proud of. It reflects my personality, shows my skills, and grows as I grow.
And you know what? If I can do it, so can you.
FAQs
Q: How long did it take to build your site?
A: From scratch, around 3 weeks. That includes planning, building, debugging, and redesigning.
Q: Should I use a website builder instead?
A: If you’re just getting started, sure. But building from scratch teaches you so much more.
Q: What if I don’t know how to design?
A: Keep it simple. Focus on layout and readability. Use sites like Dribbble or Figma for inspiration.
Q: Do I need to learn backend for a portfolio site?
A: Not really. HTML, CSS, JS are enough for a great static site. You can add backend later if needed.
Q: Will you update your site?
A: Definitely! It’s a living thing. I’m already planning a blog section and maybe a tool page soon.
Q: How do I make my site load faster?
A: Optimize your images, use minimal libraries, and compress your code. Also, consider using a CDN for faster global delivery.
Q: Should I make my site responsive?
A: Absolutely! Most visitors come from mobile devices, so make sure your site looks great on all screen sizes.
Q: What was the hardest part of building your site?
A: Balancing design with functionality. It’s tricky to make it look good without overcomplicating things.
Q: Do you use a CSS framework like Tailwind or Bootstrap?
A: Yes, I experimented with both. Tailwind makes it easy to keep everything consistent.
Q: Any tips for showcasing work on a portfolio site?
A: Use clear images, short descriptions, and show real results. Don’t just list tools—tell the story behind each project.
Q: How can I get feedback on my site?
A: Share it with friends, mentors, or communities like Reddit’s r/webdev. Honest feedback is super valuable.
Q: Should I use animations or keep it static?
A: Subtle animations can make your site feel alive, but don’t overdo it. Keep them smooth and purposeful.
Q: How do I handle SEO for a personal site?
A: Use descriptive titles, meta tags, and alt text for images. Share your site on relevant platforms to get backlinks.
So that’s my story of building a portfolio website from scratch. If you’re thinking about making your own, do it. You’ll learn more by doing than anything else. if you need any helps related to web developments then please kindly comment down bellow
Thanks for reading, and happy coding!
– Rifat
I am curious to find out what blog system you are utilizing?
I’m having some minor security issues with my latest blog
and I’d like to find something more safeguarded. Do you have any suggestions?