←︎ nyp·at / back to index
Case study · nyp.at, this site, honestly · 2026
Case study / 03 Vienna · 2026 Design & code 5 min read

The site you're
on. Built to edit,
not to impress.

I wanted a portfolio that didn't feel like a portfolio. Static files, one FTP upload, no build step, no CMS. Every section a plain HTML block I can rewrite in five minutes on a train.

RoleDesign & code
TeamMe + Claude
StackHTML · CSS · vanilla JS
Year2026

The brief I
gave myself.

Every personal site I've built before rotted. React versions, framework churn, broken builds two years later. This time: three folders, static files, FTP, done.

Every section is a banner-commented HTML block. Every behaviour is attribute-driven: data-mail, data-clock, data-img-slot. If I want to move, swap, or delete something, I open a file and do it. No build, no deploy script, no dependency graph.

01 · Scope
One homepage, a few cases
Decided up front: no blog, no tag system, no dark-mode toggle, no newsletter. If it adds a dependency, it waits.
02 · Type
Syne + Instrument Serif
Set the display face first, then the body, then the mono. Everything else is derivative. Colour system in OKLCH: ink, paper, one accent.
03 · Code
Claude as pair-programmer
Wrote the structure and the copy; Claude did the CSS fine-tune and wired Last.fm. Three JS files, zero bundling, one config.
04 · Ship
FTP to world4you
Upload, refresh, done. If it breaks in two years, index.html will still open. That's the whole bet.

uhm.. why don't you
just…
look at the page?

you're already on it · refresh for the full tour
project/~45kb critical path
project/ ├── index.html · home, seven sections ├── css/ │ ├── base.css · tokens, cursor, topbar │ ├── home.css · home-only layout │ ├── case-study.css · every case page │ └── about-long.css · long-form article ├── js/ │ ├── config.js · one object, all the knobs │ ├── base.js · cursor, clock, fade, copy, img │ └── lastfm.js · now-playing + top 5 fallback └── pages/ ├── about-long.html ├── case-professional-shitposting.html ├── case-sip.html └── case-nyp-at.html ←︎ you are here
0
Build steps
Save, FTP, refresh. If Windows Notepad can open it, it's in scope.
3
JS files, total
config · base · lastfm. Loaded in that order. No minifier.
~45kb
Critical path
Home page, before fonts hydrate. Loads anywhere, on anything.

Credits &
colophon.

Design & code
Niklas Yann Pühringer
Pair
Claude (Opus 4.7), CSS & JS fine-tune
Host
world4you, plain FTP, no CI
Type
Syne · Instrument Serif · JetBrains Mono
Colour
OKLCH tokens: ink, paper, one accent
Live
Last.fm now-playing, Vienna clock