← Back to home
Post

Building attiSomething

attiSomething website

This site didn't come from a template, a website builder, or a theme marketplace. It's plain HTML, CSS, and JavaScript — written from scratch, hosted on Vercel, and deployed through GitHub. No framework, no build step, no lock-in. Just files.

I built it that way on purpose. The goal wasn't to ship the fastest possible portfolio. It was to understand every decision that went into it — and to demonstrate that I could make those decisions well.

The Design

The aesthetic started with a simple constraint: black and white, typographic, no visual noise. The fonts are Playfair Display for headings and the nav — a serif with enough personality to carry the site's tone — and Inter for body text, which stays clean and readable at small sizes.

The decorative layer came later. Ink-drawn tree illustrations sit fixed in the margins, giving the page a sense of depth without competing with the content. Floating illustrated rocks animate through the header with independent drift paths, each on a slightly different timing so they never feel synchronized. The whole thing is meant to feel like a page from a slightly unusual book — editorial, considered, a little strange.

There's also an easter egg. Click the profile image.

The Stack

Everything is intentionally minimal:

  • HTML/CSS/JS — no framework, no compiler, no node_modules folder the size of a small country
  • Vercel — free hosting with automatic deploys on every GitHub push, custom domain, and HTTPS out of the box
  • GitHub — private repo, version control, the source of truth
  • Formspree — handles the contact form submissions and routes them to email, no backend required
  • Vercel Serverless Function — a single Node.js function that fetches my YouTube channel's RSS feed and returns clean JSON, so videos appear in the content feed automatically when published

The content feed on the home page merges YouTube videos and text posts, sorted by date. YouTube pulls live from the RSS feed via the serverless function. Text posts are managed through a simple feed.json file in the repo — add an entry, push, done.

What Makes It Work

The thing I'm most satisfied with isn't any single feature. It's that the site is genuinely maintainable. Adding a new post takes about two minutes. Adding a new project page means duplicating a template file and filling in the content. Deploying a change means pushing to GitHub. There are no dashboards to log into, no plugins to update, no subscriptions to manage.

It's also fast. No JavaScript framework means no bundle to parse. No external dependencies means no third-party scripts slowing down the initial load. The fonts are the only external request that matters, and they're preconnected.

The mobile experience got real attention too — the header collapses cleanly, the feed grid reflows, the decorative elements hide at narrow viewports, and the easter egg game has touch controls. It's the kind of thing that's easy to skip and noticeable when you don't.

What's Next

The site will grow alongside the work. Atti Cakes — a fictional breakfast QSR concept built to demonstrate conversational AI commerce — is coming next, and it'll live here when it's ready. Posts and videos will accumulate as the channel and writing practice develop.

The foundation is solid enough that none of that requires revisiting the architecture. That's the point.