EPK Platform

[Independent · 2026]

A done-for-you press kit service for DJs, built as four applications instead of a page builder. Structure and appearance are separate axes, so one content file renders eighteen configurations and two artists ship on the same system.

The Nate Thousand press kit live on its own domain: name, one-line description, and a black and white portrait

Product brief

A press kit service where the artist supplies photos and a recorded conversation and receives a finished site, a one sheet, a technical rider, and stage visuals. The design decision at its center was refusing to build the builder.

An electronic press kit is what a promoter reads before deciding an artist's fee. Most DJs do not have one, and the tools that exist hand them a page builder and a blank canvas. The EPK Platform is the opposite bet: a done for you service, priced as a service, where the artist supplies photos and a recorded conversation and receives a finished site, a one sheet, a technical rider, and a set of stage visuals.

Two artists are live on it: djnatethousand.com ↗ and supremelarock.com ↗. The stage visuals app shipped on its own as Loop Wall.

The solution

01  /  04 1

Two axes that do not touch

Structure and appearance are separate inputs. The tier decides which content modules a kit ships. The theme decides color, type, and texture. Any tier runs on any theme, and two kits on the same tier are structurally identical no matter which theme they wear. Hold the template steady and cycle the themes, and only the skin moves.

The EPK Platform demo: an artist press kit below a bar of template, tier, theme, grain, and motion controls
02  /  04 2

A design system with no design file behind it

There is no Figma file for this product and there was never going to be one. A design file and a stylesheet disagree within a week, and only one of them ships. CSS custom properties hold every value; TypeScript holds only what code actually branches on. The documentation renders the shipping components against the shipping tokens, so it cannot describe a button that no longer exists.

The coded design system page, Theme 01 Signal Red, showing color primitives and semantic roles
03  /  04 3

Three programs, not three tabs

The kit builder produces the site. Stage Graphics turns an artist's logo into the animated loops that play on club screens behind a set. The Effects Lab is the three.js kit the decorative surfaces come out of, and it is where an effect is judged before it is allowed near a promoter. A fourth, an intake and pricing tool, runs the business side and is deliberately not published. Each one is a static export with no server behind it.

The System page: building blocks, tokens and themes, effects, and graphics in one place
04  /  04 4

A deploy path with no platform in it

A published kit is files. No Node process, no vendor account for the artist, no service that can change its pricing under a client. One command builds a kit and syncs it to its own repository, pruning every other artist's photographs, riders, and fixtures on the way, because the first version of that command shipped one client's press package inside another's upload.

The Supreme La Rock press kit live on its own domain

Sell the kit.
Keep the
controls.

By the numbers

The Nate Thousand technical rider, a printable one sheet with seven numbered sections

18

configurations one content file renders

4

applications in the production pipeline

2

artist kits live on their own domains

My role

I designed and built all of it: the token system and three themes, the fourteen page sections and the layout presets that order them, the typed content schema each kit is authored in, the static deploy path from a content file to a live domain, the stage graphics generator, the three.js effects kit, the business and pricing tool, and the public demo.

Role

Product Designer

Timeframe

2026

Disciplines

Product Design, Design Systems, Creative Technology

Current state

Two artists are live on their own domains. One content file renders eighteen configurations. Four applications exist where there was nothing.

Orthogonal axes

Tier decides structure, theme decides appearance. Any tier runs on any theme

Live kits

Two artists on their own domains, both static exports with no server or vendor account behind them

Documentation

Renders the shipping components against the shipping tokens, so it cannot describe a component that no longer exists

Platform

Web (Next.js, static export)

Problems & decisions

Every competitor sells DJs software to build a press kit with. This sells the finished kit and keeps the controls, which is only affordable because four applications do the work a studio would have done.

A press kit service is only a business if the second client costs less to deliver than the first. Bespoke sites do not compress, and a page builder sold to DJs turns a design practice into a support desk for people who did not want software.

Two audiences read the same artifact and must never see the same thing. A promoter deciding a fee needs an artist who looks singular. A DJ deciding whether to buy needs to see the range and picture themselves in it. Show the promoter the range and the artist looks templated at the exact moment their price is being set.

The evidence came from the second kit rather than from research. Building Supreme La Rock's site on the same tier as my own was supposed to be a re staging of identical structure in a different skin. It was not. His music page and mine rendered different section sets, and the reason was a single condition: the editorial music layout only engaged when a collection field was populated, so my kit silently fell back to a simpler variant. Nothing looked broken. The two kits had quietly become two products.

That is the failure mode the whole system exists to prevent, and it changed how correctness is defined here. Structural agreement between two kits on the same tier is not a style preference that can be settled by looking at them. It is a property that has to be checked, by diffing the rendered class sets of the two pages rather than by reading the theme files and believing them.

Should the artist get a builder, or should the controls stay with the designer? I built the system with no builder interface and no exposed values for accent, density, corner style, or image treatment. Variation ships as another named theme instead. The forcing example is small and total: the token for text on the accent color is black because black on that red measures 5.5 to 1, and a color picker that let anyone choose a darker red would make every primary button on the site unreadable, with nobody present to measure it. The tradeoff is real and I am not hiding from it. Refusing the builder means the service does not scale past my own hours.

What I will not claim is speed. That AI made it fast is the least interesting thing about it and the easiest thing to dismiss. What AI actually bought was the ability for one person to hold four applications, a token system, and a deploy pipeline in production at once, which is a scope that would otherwise have needed a team and would therefore never have been attempted. The judgment stayed where it always was: deciding what never gets exposed.

There is no booking conversion data, because the kits are new. No client has reached a renewal. Two of the four tiers are still only defined in my head, which is the honest reason the demo shows two and not four. And there is still no tier field in the code, so structural agreement between kits is checked by diffing rendered output rather than asserted by a type. That last one is a defect, not a design choice, and it is the next thing to fix.