TrekMap is a travel bucket list that lives on a world map — and an LED map that
- glows with everywhere you’ve been and everywhere you’re going. Reserve a unit and lock the launch price.
-
TrekMap Mini
$99
Desktop frame · US, CA, MX
-
TrekMap
$199
Wall map · one LED per region
-
TrekGlobe
$399
Walnut base · brass meridian
+ :root{
+ --midnight:#001F3F; --nightsky:#0B192C; --deep:#00162e;
+ --gold:#E6B800; --gold-soft:#f0cf4d; --mahogany:#6F4E37; --jungle:#1B4332;
+ --ink:#F4F1EA; --muted:#8FA3B8; --line:rgba(230,184,0,.16);
+ --max:1120px;
+ }
+ *,*::before,*::after{box-sizing:border-box}
+ html{scroll-behavior:smooth}
+ body{
+ margin:0; background:var(--midnight); color:var(--ink);
+ font:16px/1.65 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
+ -webkit-font-smoothing:antialiased; overflow-x:hidden;
+ }
+ h1,h2,h3{line-height:1.08; letter-spacing:-.025em; margin:0; font-weight:700}
+ p{margin:0}
+ a{color:var(--gold); text-decoration:none}
+ a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:6px}
+ .wrap{max-width:var(--max); margin:0 auto; padding:0 24px}
+ .eyebrow{font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:700}
+ .lede{color:var(--muted); font-size:1.08rem; max-width:34em}
+
+ /* ── nav ── */
+ header{position:fixed; inset:0 0 auto; z-index:50; backdrop-filter:blur(12px);
+ background:rgba(0,31,63,.72); border-bottom:1px solid rgba(255,255,255,.06)}
+ nav{display:flex; align-items:center; gap:28px; max-width:var(--max); margin:0 auto; padding:14px 24px}
+ .brand{display:flex; align-items:center; gap:10px; font-weight:800; letter-spacing:-.02em; font-size:1.05rem}
+ .brand i{width:10px; height:10px; border-radius:50%; background:var(--gold); box-shadow:0 0 12px var(--gold); display:block}
+ nav .links{display:flex; gap:24px; margin-left:auto; font-size:.9rem; color:var(--muted)}
+ nav .links a:hover{color:var(--ink)}
+ .btn{display:inline-block; background:var(--gold); color:#00162e; font-weight:700;
+ padding:11px 20px; border-radius:10px; border:0; cursor:pointer; font-size:.92rem;
+ transition:transform .15s ease, box-shadow .2s ease}
+ .btn:hover{transform:translateY(-1px); box-shadow:0 8px 26px rgba(230,184,0,.28)}
+ .btn.ghost{background:transparent; color:var(--ink); border:1px solid rgba(255,255,255,.18)}
+ .btn.ghost:hover{border-color:var(--gold); color:var(--gold); box-shadow:none}
+
+ /* ── hero ── */
+ .hero{position:relative; min-height:100svh; display:grid; align-items:center; padding:120px 0 80px; isolation:isolate}
+ #led{position:absolute; inset:0; width:100%; height:100%; z-index:-1; opacity:.95}
+ .hero::after{content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
+ background:radial-gradient(120% 90% at 18% 45%, rgba(0,22,46,.94) 0%, rgba(0,22,46,.72) 38%, transparent 72%)}
+ .hero-inner{max-width:38rem}
+ .hero h1{font-size:clamp(2.6rem,6.4vw,4.4rem); margin:18px 0 20px}
+ .hero h1 em{font-style:normal; color:var(--gold); display:block}
+ .cta-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:32px}
+ .hint{margin-top:26px; font-size:.82rem; color:#5f7590; display:flex; align-items:center; gap:8px}
+ .hint b{color:var(--gold); font-weight:600}
+
+ /* ── sections ── */
+ section{padding:104px 0; border-top:1px solid rgba(255,255,255,.05)}
+ .sec-head{max-width:40rem; margin-bottom:52px}
+ .sec-head h2{font-size:clamp(1.9rem,4vw,2.7rem); margin:14px 0 14px}
+
+ .steps{display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px}
+ .step{background:linear-gradient(180deg,var(--nightsky),rgba(11,25,44,.4));
+ border:1px solid var(--line); border-radius:16px; padding:28px; position:relative; overflow:hidden}
+ .step .n{font-size:.72rem; letter-spacing:.16em; color:var(--mahogany); font-weight:800}
+ .step h3{font-size:1.22rem; margin:10px 0 10px; color:var(--gold)}
+ .step p{color:var(--muted); font-size:.95rem}
+ .step::after{content:""; position:absolute; right:-40px; top:-40px; width:120px; height:120px;
+ background:radial-gradient(circle,rgba(230,184,0,.14),transparent 68%)}
+
+ /* ── pipeline ── */
+ .pipe{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; margin-top:8px}
+ .pipe div{background:var(--deep); border:1px solid rgba(255,255,255,.07); border-radius:12px;
+ padding:18px 16px; font-size:.86rem; color:var(--muted)}
+ .pipe div b{display:block; color:var(--ink); font-size:.95rem; margin-bottom:4px}
+ .pipe div span{color:var(--gold); font-size:.7rem; letter-spacing:.14em; font-weight:800}
+
+ /* ── hardware ── */
+ .skus{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:20px; align-items:start}
+ .sku{background:var(--nightsky); border:1px solid var(--line); border-radius:18px; padding:28px; position:relative}
+ .sku.featured{border-color:var(--gold); box-shadow:0 0 0 1px var(--gold), 0 24px 60px -30px rgba(230,184,0,.5)}
+ .sku .tag{position:absolute; top:-11px; left:28px; background:var(--gold); color:#00162e;
+ font-size:.66rem; font-weight:800; letter-spacing:.12em; padding:4px 10px; border-radius:100px}
+ .sku h3{font-size:1.3rem}
+ .sku .price{font-size:2.4rem; font-weight:800; margin:12px 0 2px; letter-spacing:-.03em}
+ .sku .price small{font-size:.8rem; font-weight:600; color:var(--muted); letter-spacing:0}
+ .sku p{color:var(--muted); font-size:.92rem; margin:12px 0 18px; min-height:3.2em}
+ .sku ul{list-style:none; padding:0; margin:0 0 22px; font-size:.88rem; color:#B7C6D6}
+ .sku li{padding:7px 0 7px 22px; position:relative; border-top:1px solid rgba(255,255,255,.05)}
+ .sku li::before{content:"◆"; position:absolute; left:0; color:var(--gold); font-size:.62rem; top:9px}
+ .mini{display:grid; grid-template-columns:repeat(14,1fr); gap:3px; margin-bottom:20px}
+ .mini i{aspect-ratio:1; border-radius:50%; background:rgba(255,255,255,.07)}
+ .mini i.on{background:var(--gold); box-shadow:0 0 7px rgba(230,184,0,.85)}
+ .mini i.dim{background:rgba(230,184,0,.32)}
+
+ /* ── specs ── */
+ .specs{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1px; background:rgba(255,255,255,.07);
+ border:1px solid rgba(255,255,255,.07); border-radius:16px; overflow:hidden}
+ .specs div{background:var(--midnight); padding:26px 22px}
+ .specs b{display:block; font-size:1.7rem; font-weight:800; color:var(--gold); letter-spacing:-.02em}
+ .specs span{font-size:.84rem; color:var(--muted)}
+
+ /* ── faq ── */
+ details{border-bottom:1px solid rgba(255,255,255,.08); padding:18px 0}
+ summary{cursor:pointer; font-weight:600; list-style:none; display:flex; justify-content:space-between; gap:16px; align-items:center}
+ summary::-webkit-details-marker{display:none}
+ summary::after{content:"+"; color:var(--gold); font-size:1.3rem; line-height:1; flex:none}
+ details[open] summary::after{content:"–"}
+ details p{color:var(--muted); font-size:.94rem; margin-top:12px; max-width:52em}
+
+ /* ── final cta ── */
+ .final{text-align:center; background:
+ radial-gradient(80% 120% at 50% 0%, rgba(230,184,0,.1), transparent 62%), var(--deep)}
+ .final h2{font-size:clamp(2rem,4.6vw,3rem); margin-bottom:16px}
+ .final .lede{margin:0 auto 30px}
+ form.reserve{display:flex; gap:10px; justify-content:center; flex-wrap:wrap; max-width:30rem; margin:0 auto}
+ form.reserve input{flex:1 1 220px; background:var(--nightsky); border:1px solid rgba(255,255,255,.16);
+ color:var(--ink); padding:13px 16px; border-radius:10px; font-size:.98rem; font-family:inherit}
+ form.reserve input::placeholder{color:#5f7590}
+ .said{color:var(--gold); font-weight:600}
+
+ footer{padding:44px 0; border-top:1px solid rgba(255,255,255,.06); color:#5f7590; font-size:.86rem}
+ .foot{display:flex; gap:18px; flex-wrap:wrap; align-items:center}
+ .foot .sp{margin-left:auto}
+
+ /* ── reveal ── */
+ .rev{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease}
+ .rev.in{opacity:1; transform:none}
+ @media (prefers-reduced-motion:reduce){
+ .rev{opacity:1; transform:none; transition:none}
+ html{scroll-behavior:auto}
+ }
+ @media (max-width:720px){
+ nav .links{display:none}
+ section{padding:76px 0}
+ .sku p{min-height:0}
+ }
+
+
+
+
+
+
+
+
+
+
Pre-order · first production run
+
Hang your travels on the wall.
+
TrekMap is a travel bucket list that lives on a world map — and an LED map
+ that glows with everywhere you’ve been and everywhere you’re going. One list, two places:
+ your phone and your wall.
+
+
● bright = been there · ● dim = on the list · move your cursor across the map
+
+
+
+
+
+
+
How it works
+
Wish it. Time it. Make it happen.
+
Most travel apps are a log of where you’ve been. TrekMap is built around
+ the part that comes first — wanting to go.
+
+
+
01 / WISH ITSave it in one tap
+ Share an Instagram or TikTok reel straight from your phone. TrekMap watches the video,
+ reads the signs and the audio, works out the actual place, and files it with a cover photo.
+
02 / TIME ITSee it build up
+ Countries glow by how badly you want to go. Explorer Mode splits 57 countries into
+ states, prefectures and nations, so progress is honest instead of a flag count.
+
03 / MAKE IT HAPPENGo, and light it up
+ Flight-price thresholds nudge you when it’s time to book. Log the trip and the
+ country turns bright — in the app, and on the map on your wall.
+
+
+
+
+
+
+
+
The part nobody else does
+
Share a reel. Get a pin.
+
A 20-second clip of a restaurant with no caption and no tag still becomes a
+ real, mapped, searchable place.
+
+
+
01DownloadPulls the video and audio from the share sheet.
+
02Scene detectSplits it into frames worth reading.
+
03Read itVision model reads signage; Whisper reads the voiceover.
+
04DecidePicks the actual venue, drops "a city over a close-up".
+
05EnrichCaptions, embeds and geocodes it, then finds a cover photo.
+
+
Every saved spot is embedded as a vector, so you can
+ search your own list by vibe — “quiet places near water” — not just by name.
+
+
+
+
+
+
+
The hardware line
+
Your list, in the room with you.
+
Individually addressable LEDs, one per country or region, synced live from the
+ same account. Wishlist glows dim; visited burns bright.
+
+
+
+
+ TrekMap Mini
+ $99 pre-order
+ Picture-frame sized. Sits on a desk or a workbench and still shows the whole picture.
+ - Continental US, Canada, Mexico
- One LED per state or region
- WiFi or USB sync
+ Reserve — $99
+
+
+ MOST POPULAR
+
+ TrekMap
+ $199 pre-order
+ The wall map. Laser-cut cell geometry, one lit cell per state, province and region.
+ - US, Canada, Mexico + islands
- Laser-cut / 3D-printed cells
- Live sync from the app
+ Reserve — $199
+
+
+
+ TrekGlobe
+ $399 pre-order
+ A full world globe on a walnut base with a brass meridian ring. Every country addressable.
+ - Per-country LEDs, whole planet
- Walnut base, brass meridian
- Librarian’s Midnight glass
+ Reserve — $399
+
+
+
None of the three have shipped yet. Reserving costs
+ nothing today and holds your place in the first run at the launch price.
+
+
+
+
+
+
+
57Countries split to region level
+
3Hardware form factors
+
ESP32-S3Firmware on every unit
+
ZeroPaid map APIs — OpenStreetMap only
+
+
+
+
+
+
+
Questions
Straight answers.
+
+
Is the hardware shipping?
+ Not yet — all three units are pre-launch. Reserving puts you in the first production
+ run at the launch price, and you’re not charged until it ships.
+
Does the app work without buying hardware?
+ Yes. The app at trekmap.co is the product; the LED map is a physical view of the same
+ data. Plenty of people will only ever use the app.
+
Who can see my travel list?
+ Only you, and friends you accept. Boards are private by default. You can publish an
+ individual spot to a public feed if you want to share one — notes, reminders and price
+ thresholds never leave your account.
+
What if a reel is ambiguous?
+ It gets dropped rather than guessed. A city-wide pin attached to a close-up of a plate
+ isn’t useful, so the pipeline throws those away instead of cluttering your map.
+
How does the map know what I’ve visited?
+ Your passport is a separate list from your wishes, so marking somewhere visited doesn’t
+ create an empty wish or change the glow. The hardware polls the same account and lights up to match.
+
+
+
+
+
+
+
Pre-order
+
Get in the first run.
+
Leave an email. We’ll tell you the moment the run opens — no charge,
+ no newsletter, no other use for the address.
+
+
+ Or just email hello.trekmap@corben.world
+
+
+
+
+