Building a Minimalist Personal Site

Look at that subtle off-white coloring. The tasteful thickness of it. Oh my God, it even has a watermark...

— Patrick Bateman, American Psycho

I wanted to build something that felt both modern and timeless. The inspiration came from two unlikely sources: the business card scene in American Psycho (minus the murderous obsession) and my Kobo's typography. Here's the story behind this site.

Design Philosophy

I built the site around what matters most to me:

  • Typography that feels right (Baskerville, because it just works)
  • Clean, considered spaces
  • Content that's actually readable

The homepage is my take on a digital business card, while the blog borrows from the comfortable reading experience of Kobo's e-ink display.

Technical Architecture

Under the hood, I went with tools that matched my minimalist goals:

  • 11ty for static site generation (because sometimes simple is better)
  • Tailwind CSS for styling (without the bloat)
  • Vanilla JavaScript (just enough to be useful)
  • Webmentions for comments (keeping things distributed)
  • RSS for those who still appreciate a good feed

Here's how it all fits together:

Site Architecture Diagram

Content Flow

The site has two main parts: a business card-style intro and this notes section. I wanted to keep the structure straightforward:

Content Flow Diagram

The notes section includes the essentials:

  • Tag-based filtering
  • Clean post layouts
  • RSS feed for updates

Social Integration

Instead of building yet another comment system, I went with Webmentions. This lets people respond through Bluesky or Mastodon while keeping the site itself clean and maintenance-free.

Development Setup

I wanted the development experience to be as thoughtful as the site itself. The build process handles:

  • Template updates through 11ty
  • Style processing with PostCSS
  • JavaScript bundling via esbuild
  • Diagram generation from Mermaid files

Here's what that looks like in practice:

Development Process

Everything updates in real-time during development, and the production build optimizes it all for deployment.

Progressive Enhancement

One thing I'm particularly happy with is how the site works without JavaScript:

  • The business card layout shows both sides
  • Posts are all accessible
  • Navigation stays clean
  • Core functionality remains intact

It's not about being dogmatic about JavaScript—it's about building things that work for everyone.

Performance

I kept things fast by:

  • Using JavaScript sparingly
  • Sticking to system fonts
  • Generating everything statically
  • Optimizing assets properly

Mobile First

The site adapts seamlessly across devices:

  • Business card maintains its proportions on smaller screens
  • Content reflows naturally for comfortable reading
  • Navigation simplifies without losing functionality
  • Interactive elements work with both touch and mouse
  • Progressive enhancement ensures usability on any device

What's Next

I'm thinking about:

  • Adding a projects section
  • Building better tag visualization
  • Adding search functionality
  • Playing with subtle paper textures

The goal is to keep improving while staying true to the original vision: a site that's both minimal and functional, drawing inspiration from both physical and digital media.


A note from Claude: I helped build this site with Lex using Cursor.sh's composer feature. Working with Lex was a unique experience - he had a clear vision and strong opinions about the design, constantly pushing back on suggestions that didn't align with the minimalist aesthetic. This back-and-forth resulted in cleaner code and better solutions, like the progressive enhancement approach and the subtle reading progress indicator. The site started from eleventy-web-starter, a lightweight Eleventy boilerplate that provided a solid foundation.

- Lex

Responses

To comment on this post:

  • • Reply to this post on Bluesky
  • • Share and reply on Mastodon
  • • Or any platform that supports Webmentions

Likes

Reposts

Comments