← Back to thoughts

Started building whoami.page this summer. Here's how it went.

Why I Built It

I was sending my resume and project links to a potential client. Multiple files, different formats, links scattered across emails. There had to be a better way to present my work in one place.

Profile

Named it after the Unix whoami command. Seemed fitting for a developer profile platform.

What I Wanted to Learn

Set some technical goals before starting:

  • Use Next.js Server Actions (they were still in alpha)
  • Focus on production optimization and performance
  • Implement Tanstack Query for data fetching
  • Write more TypeScript, get better at it

Design Process

Read.cv was a big inspiration. Clean, minimal, focused on the content. Used Figma to design the interface, referenced sites like Mobbin for UI patterns.

The platform needed to do four things:

  1. Professional profiles that aren't just static resumes
  2. A place to write short posts and updates
  3. Project showcases with proper context
  4. Basic networking features

Tech Stack

Went with what I knew:

const techStack = {
  frontend: "NextJS",
  language: "TypeScript",
  orm: "Prisma",
  styling: "TailwindCSS",
  database: "PostgreSQL",
  hosting: "Vercel"
};

Server Actions Were Rough

Next.js server actions were my first real problem. The docs said alpha, I thought "how bad could it be?"

Pretty bad, actually. The React docs helped, but debugging was painful. Hours lost to weird state handling issues. Functions that worked locally but broke in production. Classic alpha experience.

But I learned a lot about how server components actually work. How data flows between server and client. Where the boundaries are. Worth the struggle in hindsight.

Home

Where Things Stand

After a few weeks, I had the basic structure working. Authentication, database schema, main pages. Nothing fancy yet, but the foundation was solid.

The hard parts were still ahead. Building the actual features, making the UI responsive, handling edge cases. You know, the real work.

What's Next

Part 2 will cover the actual build process. TypeScript battles, performance optimization, deployment issues. The stuff that took 90% of the time after that first 10% was "done."

The project is live at whoami.page if you want to see where it ended up.