Skip to content
Mustafa Yalçın

Web app · 2025

mylcin.vercel.app

This site: a personal website with a shell built in.

Status
Live

In short

A personal website that reads like a manual page and doubles as a command line. Press ⌘K — or the console button — and the same content becomes explorable with ls, cd and cat.

Why it exists

A portfolio is usually a page you scroll once. I wanted one that is also fun to poke at: the same content, readable as a document or explorable from a prompt.

My part

All of it — design, content model, front-end and the shell.

Decisions

  1. 01

    The console mirrors the URL

    The prompt’s working directory is the current route. ls, cd and cat move through the real site structure, so the shell is an alternate interface rather than a separate app.

  2. 02

    Content is data, not components

    Projects, experience and copy live in typed files; posts are MDX compiled on the server. Adding a project or a language never touches UI code.

  3. 03

    Two languages, one set of components

    Locale-prefixed routes, dictionaries where a missing translation is a type error, and per-post translations that fall back to the original instead of a 404.

  4. 04

    No animation library

    Every transition is CSS or the View Transitions API, each one marks a state change, and all of them step aside for prefers-reduced-motion.

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • MDX
  • Vercel