EST. 2026 BOLT NO. 002
l u n g i . d e v
PANEL ONE
— UNFURL —
scroll right
A loom for the modern web

We build interfaces the way
a weaver builds a lungi —
thread by patient thread.

lungi.dev is a small studio for thoughtful product surfaces. We do not believe in dashboards that shout. We believe in long, quiet bolts of cloth — pages that unroll horizontally, rhythmically, as if pulled gently from a wooden loom by hand.

Every stripe is intentional. Every warp thread is set in advance. The result is a continuous narrative, not a stack of tiles.

  • Continuous horizontal scroll
  • Stripe-only color application
  • Warp-and-weft cursor
  • Drape-edge motion
PANEL TWO
— THE CLOTH —
Workshop bench — sample stitch

A snippet from the shuttle.

// stripe.ts — the fundamental unit of the bolt
export type Stripe = {
  kind: 'thick' | 'pin' | 'selvage';
  color: Hex;
  heightPx: number;
  tension?: number; // 0..1 — how taut on the loom
};

export function weave(stripes: Stripe[]): Bolt {
  return stripes.reduce(layer, emptyBolt());
}
typescript css-grid no-framework hand-loomed
PANEL THREE
— THE BENCH —
Threads we work in

Five threads. One bolt.

01 · Product surfaces

SaaS dashboards, onboarding flows, marketing pages. Stripe-discipline applied to your brand.

02 · Design systems

Token libraries, motion specs, accessibility-aware components — handed off in code, not Figma.

03 · Loom-grade prototypes

High-fidelity working prototypes for usability tests and exec demos. Built in days, not weeks.

04 · Performance audits

Frame-budget reviews, animation triage, render-pipeline diagnostics. We measure twice, weave once.

05 · Long-form storytelling

Sideways-scroll editorials and product narratives — bolts of cloth, not stacks of cards.

PANEL FOUR
— THE WEAVE —
Selvage — the finished edge

End of the bolt.
Fold and send.

We take on three engagements per quarter. Reach out with a paragraph about what you're weaving, and we'll respond within two working days.

— end of bolt 002 / 2026 —
PANEL FIVE
— SELVAGE —