Blog Written Aug 29, 2025  •  Updated Feb 13, 2026

Do You Really Need a Personal Website?

A personal website is your digital business card—simple, affordable, and the best way to showcase projects, ideas, and stand out professionally.


“You can’t wait for inspiration, you have to go after it with a club.”

— Jack London

There’s this little field that shows up everywhere: networking events, conference badges, job applications, LinkedIn profiles. “Personal Website.” Most people leave it blank. But maybe they shouldn’t.

In my academic years, I’ve hosted a personal web page through my university’s web server, through Github Pages, and through other third-party vendors, all for free, to showcase academic achievements, but never really considered using my own domain. In this blog, I discuss why you should select your own domain and the benefits.

People Actually Look

Here’s what I didn’t expect: people genuinely visit personal websites. I get asked about things I do that there’s simply no room for on a one-page resume. During phone calls, I’ll mention a project or research I’ve written about, and I can hear them clicking around in the background, and they’ll be intrigued to the point that they’ll want to explore more about you. What better place to explore than a personal website?

A website lets you showcase so much more than what fits on a resume. I can write blogs about tech, document projects in detail, add a Projects button that links directly to my Github repos. When someone asks about a specific project, instead of trying to explain it over the phone, I can just say “check out my blog on my site about my current project.”

It’s become this natural extension of my professional presence—a place where there’s actually room to showcase more than meets the surface.

You Don’t Need to Break the Bank

The beauty of having a personal website in 2025 is that it doesn’t require server admin skills or a monthly budget.

Sure, you could go the full route—rent a VPS, set up NGINX, configure SSL certificates, and pay monthly fees. You’d get your own IP address, full control, and the satisfaction of running your own server. But for most of us, that’s overkill, and probably outside most recent graduates’ budget.

The simple approach? Buy a domain from GoDaddy (or your registrar of choice) for maybe $15-25 a year, and host it on GitHub Pages for free. You can even use GitHub Pages without your own domain, but it’s a bit ugly using a github.io domain name. I used Jekyll Now to get this site up and running in about an hour, then heavily customized the code. No monthly fees, no server management, no headaches.

Beyond Just a Website

Once you have your own domain, a whole world of possibilities opens up. Your registrar may recommend an Outlook subscription, but you could instead use other providers such as Zoho Mail for free to send and receive email from your own domain.

You can use your domain as your Bluesky username, making your social media presence more professional and memorable. Some services even let you connect your domain to other platforms, creating a cohesive online identity that’s entirely under your control.

It’s like having your own little corner of the Internet that grows with you.

It’s Your Digital Business Card

Think of it as professional presence in the modern world. When you meet someone at a conference or get introduced through a mutual connection, having a website gives them somewhere to go to learn more about you. You’re not just a candidate like every other candidate, but a thumb that truly sticks out.

And your website doesn’t need to be fancy. A clean layout with some information about you (even fun things like your hobbies), and maybe a blog where you write about things you’re learning or problems you’ve solved, can really make you stand out. The key is that it exists and represents YOU.

The Creative Outlet

Having a personal website is genuinely fun.

I’m not going to build the next Facebook or create some mega-million dollar web application with a complex backend. But I can experiment with this site. I can write blog posts (like this one), tweak the design, add new features, and just… play around.

If I want to spend an evening just improving something small—maybe the way links look when you hover over them, or adding a new section to showcase a project, then I can do just that. It’s rewarding in its own way. Below are some fun examples to improve this blog.

Code Block

I can create a fancy-looking code block.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>

int main() {
    std::cout << R"(
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠙⠻⢶⣄⡀⠀⠀⠀⢀⣤⠶⠛⠛⡇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⠀⣙⣿⣦⣤⣴⣿⣁⠀⠀⣸⠇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣡⣾⣿⣿⣿⣿⣿⣿⣿⣷⣌⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣷⣄⡈⢻⣿⡟⢁⣠⣾⣿⣦⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⠘⣿⠃⣿⣿⣿⣿⡏⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠈⠛⣰⠿⣆⠛⠁⠀⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣦⠀⠘⠛⠋⠀⣴⣿⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣾⣿⣿⣿⣿⡇⠀⠀⠀⢸⣿⣏⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣠⣶⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠀⠀⠀⠾⢿⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⡿⠟⠋⣁⣠⣤⣤⡶⠶⠶⣤⣄⠈⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢰⣿⣿⣮⣉⣉⣉⣤⣴⣶⣿⣿⣋⡥⠄⠀⠀⠀⠀⠉⢻⣄⠀⠀⠀⠀⠀
⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣋⣁⣤⣀⣀⣤⣤⣤⣤⣄⣿⡄⠀⠀⠀⠀
⠀⠀⠀⠀⠙⠿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠋⠉⠁⠀⠀⠀⠀⠈⠛⠃⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
    )" << std::endl;
    return 0;
}

Here’s some C code that calculates two numbers:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// math.c
// Obfuscated C code that does maths
%:include <stdio.h>
%:include <stdlib.h>
%:define V void
%:define I int
%:define U unsigned I
%:define S char*
%:define Z 0XF
%:define M ~(0X1<<0X1F)
%:define N __FUNCTION__
%:define F(x, y) (printf("%-5s(%d, %d): ", N, x, y))
%:define G(p) (sizeof(p)/sizeof(*p))
%:define A(s) atoi(s)
%:define ERR stderr
%:define E(m) (fprintf(ERR, "%s: %s", N, m))
%:define R return
%:define W while
%:define C if

S B = "\x45\x78\x70\x65\x63\x74\x65\x64\x20\x74\x77\x6F\x20\x61\x72\x67\x75\x6D\x65\x6E\x74\x73\x2E\x0A"; I ADD(I x, I y) <% F(x, y); U t; W(y) <% t=x&y; x^=y; y=t<<1; %> R(I)x; %> I SUB(I x, I y) <% F(x, y); I t; W(y) <% t=(~x)&y; x^=y; y=t<<1; %> R(I)x; %> I MULT(I x, I y) <% F(x, y); I t = y^y; W(y--) <% t+=x; %> R(I)t; %> I IDIV(I x, I y) <% F(x, y); C(!y) R(I)M; I t = y^y; W(++t && (x-=y)>=y); R(I)t; %> I Q(I i, I j) <% W(i-- && --j); R!(i || j--); %> V v(I x, I y, I (*p<::>)(), U fs) <% I i = Z^Z; W(i < fs) printf("%i\n", p<:i++:>(x, y)); %> V main(I i, S s<::>) <% I (*p<::>)() = <% ADD, SUB, MULT, IDIV %>; U fs = G(p); Q(i,(Z^0XC)) ? v(A(s<:Z^0XE:>), A(s<:Z^0XD:>), p, fs) : E(B); %>

I can make it look like I’m executing the program from a terminal window:

1
2
3
4
5
> ./math 6 3
ADD  (6, 3): 9
SUB  (6, 3): 3
MULT (6, 3): 18
IDIV (6, 3): 2
1
2
3
4
5
6
PS C:\Users\William\Playground> ./math 6 3
ADD  (6, 3): 9
SUB  (6, 3): 3
MULT (6, 3): 18
IDIV (6, 3): 2
PS C:\Users\William\Playground> 

Or just display the shell output like this:

1
2
3
4
5
6
root@willnj:~$ ./math 6 3
ADD  (6, 3): 9
SUB  (6, 3): 3
MULT (6, 3): 18
IDIV (6, 3): 2
root@willnj:~$ 
1
2
3
4
5
> ./math 6 3
ADD  (6, 3): 9
SUB  (6, 3): 3
MULT (6, 3): 18
IDIV (6, 3): 2
1
2
3
4
5
> ./math 6 3
ADD  (6, 3): 9
SUB  (6, 3): 3
MULT (6, 3): 18
IDIV (6, 3): 2
1
2
3
4
5
> ./math 6 3
ADD  (6, 3): 9
SUB  (6, 3): 3
MULT (6, 3): 18
IDIV (6, 3): 2

I can also display a directory structure without having to handtype the pipe symbols.

/(root)
 bin
  etc
   shadow
  dev
  lib
  home
   john
   jacob
   jingleheimer
   schmidt

Call to Action Buttons

I can even have buttons which can say things like “Donate” or “Subscribe” or whatever I want.

Tables

And here’s a table for different data types in C.

Type Size Example
int 4 42
float 4 3.14
double 8 3.14159

Prompts

If I’m writing a tutorial, I can add these prompts to visually alert the reader.

Tip: When using this feature, remember to always save your work frequently. This will prevent any data loss in case of unexpected errors. You can also use keyboard shortcuts like Ctrl+S or Cmd+S to quickly save. For more detailed instructions, check out our documentation.

Info: The system has been updated to include new functionality for managing your tasks. You can now filter by due date, priority, and project, and even save custom views for future use. Remember to refresh the page after making changes to see the latest updates. If you’re unfamiliar with the new layout, hover over the info icons for helpful tooltips.

Warning: Deleting this item is permanent and cannot be undone. Make sure you have backed up any important data before proceeding. Double-check the item name and details before confirming the deletion. Misclicks can cause serious issues, so proceed with caution. If you’re unsure, consult the support guide or contact the admin.

Famous People

Here are some famous people in tech.

Talk About Your Project

You can highlight all of the features of the project you’re shipping.

Powerful Core Dashboard

A unified control center to manage projects, users, analytics, and settings.

Seamless Team Collaboration

Share projects, leave comments, and track changes in real time so your entire team stays aligned and productive.

Lightning-Fast Performance

Optimized rendering and smart caching ensure your data loads instantly, even with thousands of records.

Support Us

Donations can be received anytime at example.com.

Add Badges

Include a list of badges.

Windows MacOS Linux

Getting Started

Maybe you’re a student who’s stumbled across my blog, or someone who’s genuinely interested in having a personal website. Well, here’s my simple path explained:

  1. Buy a domain - GoDaddy, Namecheap, wherever. Pick something simple and professional.
  2. Fork Jekyll Now - It’s a GitHub repository that sets up a blog in minutes.
  3. Enable GitHub Pages - Free hosting, automatic deployments.
  4. Set up extras - Custom email with Zoho Mail, use your domain for Bluesky, etc.
  5. Customize gradually - Start simple, improve over time.

That’s it. You’ll have a website that costs you maybe $15-25 a year and takes an evening to set up. Not bad for having a professional presence that’s entirely your own.

Trust me, your future self will thank you for taking that small step.

tech, life

This post is licensed under CC BY 4.0 by William N. Johnson.