/colophon

How this site is made.

Every decision behind rin.contact — framework, fonts, deployment, design philosophy, and the easter eggs. A colophon is a printer's note. This is mine.

Framework & Runtime

framework
Next.js 14

Pages Router — SSG + SSR + CSR mix

runtime
Node.js

via Vercel serverless functions

language
TypeScript / JSX

strict mode where it matters

pkg manager
npm

nothing fancy

Styling

utility css
Tailwind CSS

v3 — mobile-first, purged in production

philosophy
Nothing OS aesthetic

stark, minimal, monochromatic — flat, no shadows

palette
#FFFFFF · #000000 · #FF3C3C

white · black · dot red — used sparingly

radius
none or rounded-full

never anything in between

animations
CSS keyframes

150–300ms ease-in-out — no bounce, no spring

Typography

display
Bitcount Prop Double

weight 300–600 · headlines only

body
DM Sans

weight 300–500 · reading comfort

accent
Playfair Display

editorial moments only

mono
Courier New

system fallback · terminals & labels

loader
next/font

zero layout shift, self-hosted

Deployment & Infrastructure

host
Vercel

edge network · preview deploys on every push

domain
rin.contact

registered via Namecheap

cdn
Vercel Edge Network

global, automatic

ci/cd
GitHub + Vercel CLI

git push → build → alias

analytics
none

privacy first — no tracking pixels

Third-party Services

email
EmailJS

contact form → inbox, no backend required

qr codes
api.qrserver.com

on-the-fly QR generation for /card

fonts
Google Fonts

loaded via next/font — not tracked

Performance Decisions

images
next/image

lazy loading, WebP conversion, responsive sizes

code split
dynamic imports

below-fold sections load only when needed

lcp target
< 1.5s on 4G

hero renders without any blocking resources

focus
no layout shift

font display:swap + explicit image dimensions

Hidden Routes & Easter Eggs

/resume
interactive CLI

type commands, explore career data

/fun/matrix
data science rain

∑ ∇ λ σ and friends

/fun/art
generative spiral

Fibonacci phyllotaxis

/fun/haiku
haiku collection

5–7–5 data science absurdism

/fun/coffee
/fun/roast
honest feedback

data science roasts

/fun/spin
what is Rin doing?

spin the wheel

/tools/card
draggable card

try throwing it

/ds
Rin as data science

model cards, SHAP, confusion matrices

/info/site-map
human sitemap

every page, not XML

/info/changelog
↑↑↓↓←→←→BA
Konami code

try it on the homepage

DevTools
console easter egg

open your browser console

curl
terminal view

curl rin.contact

/api/rin.json
/api/fortune
/api/roast

Design Philosophy

principle 1
Every decision is intentional

if it doesn't earn its place, it doesn't ship

principle 2
Empty space is part of the design

density ≠ quality

principle 3
Mobile-first, always

375px is the source of truth

principle 4
No gradients, no drop-shadows

flat monochrome — the Nothing way

principle 5
Accessibility is not optional

AA contrast, focus rings, descriptive alt text

principle 6
Ship it, then improve it

v5.22.4 and counting

Designed & built by Rin Huang · v5.22.4