Uses

Hardware, software, and services I lean on day-to-day. This list is the exact stack running yigittanriverdi.com — if it works for my site, it's on this page.

inspired by uses.tech · updated

Editor & AI

What I'm looking at for 8 hours a day.

  • VS Code ↗
    Default editor. Nothing fancy in the config — tabs = 2, format on save, that is it.
  • Claude Code ↗
    This entire site was rebuilt in a Claude Code session. I use it for real engineering work now, not as autocomplete.
  • GitHub Copilot
    TODO: on or off? (I have it off when Claude Code is driving.)

OS & terminal

  • Windows 11
    Primary workstation. WSL2 for Linux-flavoured tooling when something insists.
  • Git Bash
    My default shell. Unix-style commands on a Windows box without the WSL tax.
  • PowerShell 7
    When I want a native terminal.
  • Windows Terminal ↗
    Tabbed terminal host for Git Bash + PowerShell + the occasional wrangler tail.

Languages & runtimes

  • TypeScript
    Default language for anything bigger than a throwaway script.
  • Node.js 22 LTS
    Runtime for CLIs and local dev.
  • pnpm ↗
    Package manager. Fast, disk-efficient, strict about peer deps.
  • Wrangler ↗
    Cloudflare CLI. deploy / dev / tail / d1 execute is 90% of my day.

Web stack (this site)

Literally what yigittanriverdi.com runs on.

  • Astro 6 ↗
    SSR mode, Cloudflare adapter, zero JS on blog pages. Islands only when interactivity actually matters.
  • Tailwind CSS v4 ↗
    CSS-first @theme tokens, no config file needed for small projects.
  • Drizzle ORM ↗
    Typed queries over D1. Migrations as plain SQL files. Tiny footprint.
  • Zod v4 ↗
    Validation at every API boundary. Strict schemas, no free text.
  • Marked + rehype-sanitize + Shiki
    Markdown pipeline for the blog. Parse, sanitise, syntax-highlight, done.

Testing & tooling

  • Vitest + @cloudflare/vitest-pool-workers ↗
    Tests run inside a real Workers runtime with an in-memory D1. No mocks of Cloudflare APIs — they are the Cloudflare APIs.
  • Biome ↗
    Lint + format in one tool. Fast, opinionated, zero config drift with ESLint + Prettier.
  • TypeScript strict + noUncheckedIndexedAccess
    The combination that makes the type system actually earn its keep.

Hosting & infra

One cloud. Everything runs on it.

  • Cloudflare Workers + Static Assets ↗
    Single deployment unit. SSR HTML + API + static files out of one wrangler.toml.
  • Cloudflare D1 ↗
    SQLite at the edge for posts, projects, settings, login-attempts.
  • Cloudflare R2 ↗
    S3-compatible object storage for blog images + the CV PDF.
  • Cloudflare Web Analytics
    Free, privacy-friendly, no cookies, no consent banner. Core Web Vitals for free.
  • Cloudflare DNS
    Same dashboard, same auth, same proxy. I stopped bothering with Route 53 or NS1 for personal stuff.

Fonts I actually look at

Same fonts in the site and my editor.

  • Hanken Grotesk ↗
    Body + UI sans across the whole site. A touch more character than the usual grotesques.
  • JetBrains Mono ↗
    Editor font, and every mono caption, nav item, tag, and code block on the site.
  • Bricolage Grotesque ↗
    The big display face on the hero and page titles. Loads of personality without leaving the grotesque family.

Hardware

The physical layer.

  • Laptop
    TODO: make/model.
  • Keyboard
    TODO: make/model — mechanical?
  • Monitor
    TODO: size / refresh.
  • Headphones
    TODO: brand/model.
  • Mic
    TODO: brand/model.

What I'd pick again

If I were starting a new project tomorrow.

  • Cloudflare Workers over Vercel
    Same DX, half the cost at the traffic sizes I operate at, genuinely fullstack (D1 / R2 / KV), no cold starts worth mentioning.
  • Astro over Next.js for content-heavy sites
    Zero-JS-by-default is load-bearing for SEO + LCP. Islands when I need interactivity.
  • Drizzle over Prisma for new projects
    Lighter runtime, no separate query engine, SQL-native. Prisma still wins for teams that need migrations as a service.
  • Biome over ESLint + Prettier
    One config, one binary, 10x faster. Haven't missed any rules.
  • Claude Code as a pairing surface
    Not autocomplete. Actual engineering-level pairing. Changed how I scope side projects.