← Return to ledger
Specimen SheetNo. RP-2024-0001

Crafteako

where photography meets the web

Plate I

fig. 1. field camera, bellows type. The instrument of observation.

Catalog of Work · R. Poudel, Collector · Lawrence, Kansas

No. RP-2024-0001

Crafteako

where photography meets the web

Collected
field work, self-directed, 2024 –
Locality
Lawrence, KS
Collectors
R. Poudel (solo)
Method
ongoing practice
Substrate
HTML · CSS · JavaScript
Status
live

Field Notes

Crafteako is the home for my photography and videography. Every portfolio template I looked at felt generic (sliders, grids, lightboxes), so I built the site from scratch to give the work its own visual language.

No framework, deliberately. I had been writing React for months and wanted to rediscover what frameworks actually abstract. CSS Grid, custom properties, and the animation API turned out to cover far more ground than expected.

Photography sites are image-heavy by nature, so performance was a constraint from day one: lazy loading, responsive srcset sizing, and a Lightroom-to-Squoosh compression pipeline keep first load fast on slow connections.

Dissection

A static site with no build step. Custom CSS for layout and theming; JavaScript only where paper can't do the job (lightbox, contact form, scroll observation).

Hand-written HTML/CSS
Custom grid layouts, hand-tuned design tokens via custom properties, zero utility classes.
Vanilla JavaScript
Gallery lightbox, Intersection Observer scroll reveals, and form handling. Nothing else.
Image pipeline
Lightroom exports compressed with Squoosh, served with responsive srcset so each viewport gets the right size.

Annotations

ann. 2024. Vanilla CSS is underrated. Grid, custom properties, and clamp() cover most of what a framework gives you, at zero runtime cost. · R.P.
ann. 2025. Getting a photography site under 2MB first load while still looking right is a craft of its own. Every step of the pipeline is a decision. · R.P.