Web app · PWA2026Live prototype

3Days

A web app for planning 3 Days of Design in Copenhagen: two hundred events, seven districts, one day at a time.

ScopeProduct concept, UX/UI and Next.js development.

Wed 10 Jun · the whole programme123+
Amager
Christianshavn
Frederiksberg
Indre By
Nordhavn
Østerbro
Vesterbro
16:00 - 18:00Drinks & Food

Opening: Here & Now at the library

Christianshavn · Danneskiold-Samsøes Allé 50

↗ Open
01 / The programme

A list of events is not a plan.

For three days in June, 3 Days of Design fills Copenhagen with showrooms, talks and launches. The official programme is complete, but it is a list: it never tells you what fits together. 3Days starts from the same list and helps you answer a smaller question: what can I do on Wednesday?

  1. 3daysWed 10 – Fri 12 June
  2. 7districtsAmager to Østerbro
  3. 4time wavesFirst wave → Night
  4. 200+eventson a single day
02 / Build a day

Build a day in three moves.

List, map and saved show the same events with the same filters. You cut the programme, check where things are, then keep what fits. Try it here.

Cut the programme

Districts, time waves and categories are big toggles. Every tap removes tiles and the counter drops, so you always see how much day is left.

Tap the filters · the tiles reflow
Zones
Time
Categories
12events
10:00Exhibition

Nordic chairs, one hundred years

Indre By

11:00Talk

Neo-brutalism in digital spaces

Indre By

11:30Exhibition

Ceramics on the quay

Nordhavn

13:00Talk

Grid systems workshop

Vesterbro

15:30Talk

Materials after oil

Christianshavn

16:00Drinks & Food

Drinks & snacks

Christianshavn

16:00Drinks & Food

Opening: Here & Now at the library

Christianshavn

17:00Drinks & Food

Light studio launch

Indre By

17:30Drinks & Food

One year of The Form Follows

Christianshavn

18:00Exhibition

Eclos & Echos

Christianshavn

18:30Talk

Rooftop talks

Nordhavn

19:00Drinks & Food

Harbour bar night

Vesterbro

03 / The radical grid

The radical grid.

The interface takes after Superstudio's continuous grid: a 3px black line, hard offset shadows, Sora in capitals, no rounded corners. Four colours, each with its own place in the layout.

Wed 10 JunThu 11 JunFri 12 Jun
Indre ByEveningTalk
18:00Talk

Rooftop talks

⌖ Nordhavn · Sundkrogsgade 8

↗ Open
3 DAYS OF DESIGN
Type
DRINKS & SNACKSSora 800Everything you tap or scan: titles, chips, times. Always capitals.
Strandgade 91, 5th floorHanken GroteskDescriptions and addresses. The same family as this site.
3pxThe measuresThe line, the shadow, the grid step. Never thinner, never blurred.
04 / In the pocket

Built for the pocket.

It works on a desk, but the day happens on the street. The web app installs as a PWA, opens full-screen from the home screen and keeps the programme in a service worker. Favourites live in localStorage for anonymous visitors and sync through the API when you sign in.

3Days on a phone: the Wednesday schedule grouped by district
ScheduleGrouped by district
3Days on a phone: the event map of Copenhagen
MapSame filters, same markers
3Days on a phone: saved events
SavedThe shortlist for the day
  • InstallableManifest and service worker. Opens full-screen from the home screen.
  • Favourites follow youlocalStorage when anonymous, synced through the API when signed in.
  • One bottom barMap · Schedule · Saved. The three moves, one thumb.
05 / Under the hood

One list, three views.

The programme is imported into Neon Postgres once. Next.js renders it on the server and the three views filter the same array in memory, so switching list and map is instant. Mapbox GL draws the markers, favourites go through a small API route, Vercel serves it as an installable PWA.

  • Next.js 15
  • React 19
  • Neon Postgres
  • Mapbox GL
  • Tailwind CSS 4
  • PWA · service worker
  • Vercel
The programme, once
System idea

The grid makes a complex programme feel finite.

Every list row, filter and map marker sits inside the same architectural logic, so two hundred events read as one day.