Skip to content
Home/Resources/Build guides/Portfolio website in a day
Build guide

Build a Portfolio Website for Free in One Day: Step by Step

By Younus FardeenUpdated 31 Oct 20263 min read
Short answer

Write a one-page site in plain HTML and CSS with about, projects, skills and contact sections, push it to GitHub and publish with GitHub Pages or Cloudflare Pages. Add a custom domain if you own one, run Lighthouse and fix the top issue. Total cost is zero unless you buy a domain.

You will buildA one-page portfolio with your projects, skills and contact details, live on a public URL with a performance score above 90.
Time4 to 6 hours
Cost₹0 (a domain is optional, about ₹800 a year)
LevelBeginner

Tools you need

The 10 steps

01

Decide the content first

Write, in a text file: a two-line intro, three projects (name, one line, link, what you did), skills grouped by type, and how to contact you. Copy is harder than code; do it first.

02

Create the files

Make a folder with index.html, style.css and an images folder. Use semantic sections: header, section id="projects", section id="skills", footer.

03

Write the HTML

One h1 with your name and role, then sections with h2 headings. Each project is an article with a title, one line, a live link and a repository link. Add alt text to every image.

04

Style it

Pick one font from Google Fonts and two colours. Use a max-width container (about 760px), generous spacing and a single column on mobile with @media (max-width: 700px). Resist adding animations.

05

Optimise images

Export screenshots as WebP or compressed PNG under 200 KB and set width and height attributes so the page does not jump while loading.

06

Push to GitHub

Create a repository named <username>.github.io for GitHub Pages, or any name for Cloudflare Pages. Commit and push.

07

Publish

GitHub Pages: in repository Settings, open Pages and choose the main branch. Cloudflare Pages: connect the repository, leave the build command empty and set the output directory to /. Your site is live in a minute.

08

Add a custom domain (optional)

Buy a domain, then add it in Pages settings and create the DNS records the host shows you. HTTPS is issued automatically.

09

Measure and fix

Run PageSpeed Insights on the live URL. Fix the top issue (usually image size or render-blocking fonts) and re-run until performance is above 90.

10

Make it findable

Add a title, a meta description, Open Graph tags and a robots.txt. Submit the URL in Google Search Console. Put the link on LinkedIn, GitHub and your resume.

Make it yours

  • Add a blog with a static site generator such as Astro or Eleventy.
  • Add a projects page that pulls your pinned repositories from the GitHub API.
  • Add a downloadable PDF resume generated from the same content.

Troubleshooting

ProblemFix
404 on GitHub PagesThe repository name or branch is wrong, or index.html is not at the root.
Fonts load slowlyLoad one font family with two weights and add display=swap.
Images look blurry on phonesExport at 2x the display size and compress; set width and height.

Frequently asked questions

Which is better for a portfolio, GitHub Pages or Cloudflare Pages?

Both are free and fine for a static site. GitHub Pages is simplest; Cloudflare Pages adds faster global delivery and easy redirects.

Do I need a framework for a portfolio?

No. Plain HTML and CSS loads faster and is easier to maintain. Use a framework only if you want a blog or dynamic content.

Should I put my portfolio link on my resume?

Yes, at the top with GitHub and LinkedIn. Make sure every project link on the site works.

Continue learning

Project guide · Software

Software projects

Full-stack apps with auth, tests, real-time features and CI.

Open guide →23 ideas
Free tools

Free resume builders

ATS-friendly resume makers that do not charge to download.

See the list →10 tools
Free tools

Free design tools

Design graphics, interfaces and video at no cost.

See the list →12 tools