Kobe Virgen Tattoos
A booking system built like the artist's business card.
Portfolio, booking with body-map placement, and a flash-day slot board for a black-and-grey tattoo artist.
- Industry
- Tattoo · Creative services
- Timeline
- 2026
- Services
- Web Development · Booking system · Brand system
- Stack
- Next.js 16 · TypeScript · Tailwind CSS · Postgres · Resend · Vercel

Overview
Kobe is a black-and-grey artist in Pasadena whose entire identity fits on a matte-black business card with a spot-gloss spiderweb. The site derives everything from that card — and replaces DMs-and-screenshots booking with a system he can actually run his business on.
Challenge
Bookings arrived by Instagram DM with blurry reference photos and no placement info. Flash days sold out by comment-thread chaos, with double-bookings and no record of who claimed what. The site had to feel like the card, not like a template, and make booking painless on a phone.
Approach
Palette and type come straight from the card: ink, bone, oxblood, gilt; a copperplate wordmark over letterspaced serif caps. The signature is a gloss web that is invisible until the pointer 'rakes light' across it. Booking asks for placement by tapping a body diagram — submitting both a human label and raw coordinates. Flash days are a clickable flyer: a slot board whose double-booking prevention lives in a Postgres unique constraint, so two concurrent claims can never both commit. Everything runs locally with zero setup on PGlite and in production on Postgres.
Result
A site that reads as the artist's brand at a glance, a booking flow that captures what Kobe actually needs to quote a piece, and a flash-day board that sells slots without a comment thread — with a clear path to email notifications and an admin view.
In the product




On the phone




What we built
Not a list of features — a system.
- Brand system derived from the business card
- Gloss-web signature interaction with reduced-motion fallback
- Portfolio with fresh / healed comparison
- Booking form with tap-to-place body map
- Flash-day slot board with database-enforced single claims
- Typed content modules — no CMS to maintain