← Back to Blog

Why I Built This Website from Scratch (Instead of Using WordPress)

VS Code editor showing HTML code

When I decided to start learning digital marketing seriously, I had a choice: spin up a WordPress site in an hour, or build everything from scratch. I chose scratch — and it turned out to be the best decision of my learning journey.

This post walks through why I made that choice, what I actually built, and what I learned along the way — with real screenshots from the work.

Why Not WordPress?

WordPress is a great tool. Millions of businesses run on it. But for my specific situation, it had three problems:

  • Too much abstraction. I wanted to understand what was actually happening under the hood — not just click buttons in a page builder.
  • Learning gap. If something broke on a WordPress site, I would have to Google the fix instead of understanding the root cause.
  • SEO control. I wanted full control over schema markup, canonical tags, redirects, and meta tags. WordPress plugins give you 80% of this — but not 100%.

So I decided to build everything by hand. HTML, CSS, JavaScript. From scratch.

What "From Scratch" Actually Means

I did not use React, Next.js, or any framework. I wrote every line of HTML, CSS, and JavaScript myself. The setup:

  • Code editor: VS Code
  • Hosting: Cloudflare Pages (free, global CDN)
  • Version control: GitHub
  • Domain: mizanulislam.com
  • Forms: Cloudflare Pages Function + Resend API

No page builders. No plugins. No bloat.

What I Built

The site itself is the case study. Here is what is actually running:

1. Nine Types of Schema Markup

Every page has structured data that tells Google exactly what the content means:

  • WebSite — site-wide identity
  • Person — my entity as a practitioner
  • Organization — Grow Up as a brand
  • FAQPage — homepage questions
  • Service — services catalog
  • AboutPage — about section
  • ProfilePage — portfolio page
  • Blog + BlogPosting — content pages
  • ContactPage — contact information

All cross-referenced using @id so Google understands the entity relationships: Person ↔ Organization ↔ WebSite.

2. Clean URL Architecture

Every URL is clean — no .html extensions, no query parameters, no trailing slashes. This is handled by Cloudflare Pages automatically, plus a _redirects file that catches any old URLs from the Blogspot migration.

3. Serverless Form Handling

The consultation form on the homepage does not go through a third-party service. Instead, it hits a Cloudflare Function that:

  • Validates the input
  • Sends an email via Resend API
  • Returns a success response

No dependencies, no rate limits from a third party, no tracking pixels embedded in the form.

What I Would Do Differently

Two things:

  1. Add analytics from day one. I set up GA4 and GTM a few weeks after launch, and I lost some early data because of it.
  2. Test mobile earlier. I built desktop-first, then retrofitted responsiveness. It worked, but it would have been cleaner to design mobile-first from the start.

The Real Lesson

Building teaches faster than consuming. You can watch a hundred tutorials on technical SEO — but until you actually implement schema markup, fix a broken CSP, or debug a sitemap, you do not really understand it.

If you are learning marketing, try building something small. A landing page. A tracker. A simple tool. You will learn more in a week than in a month of tutorials.

The goal is not to become a developer. The goal is to become a marketer who understands what is actually happening under the hood — and can make better decisions because of it.

Want to work through this together?

Book a free 15-minute discovery call. I'll walk you through the setup, tools, and process behind this build.

Book Free Discovery Call