Our own product · Live on Google Play

Glenby
Microadventures, honestly verified

An Android app that hands out small nature tasks and verifies proof via GPS and timestamp. Plus a bilingual marketing website that carries the calm tone of the product.

Glenby is our own product. This case study covers the website. The app has its own case study.

Next.js 16 React 19 Tailwind v4 GSAP + Lenis
34
Rendered pages
11 marketing + 6 legal routes, DE + EN
<14
Days to launch
First commit to live operation
0 KB
WebGL in the bundle
Marble and portal look built from pure CSS
2
Languages
German as default, English mirrored
Glenby homepage: forest hero with serif headline and Google Play button

glenby.de homepage: a forest at dusk instead of a stock mountain panorama

The product

Glenby hands out small outdoor tasks every day: a stream, a view, a tree. Proof is a photo with a GPS pin and a timestamp. The app deliberately avoids competitive pressure and daily streak anxiety.

Honest proof

GPS position plus timestamp as evidence. Deliberately no AI species detection, because real proof cannot be invented.

Daily tasks

Small nature tasks nearby: a stream, a view, a tree. No competition, no global leaderboard.

Weekly streaks

Streaks count per week, not per day. A missed day breaks nothing. Calm instead of casino mechanics.

Private & EU-hosted

All app data lives in Frankfurt. End-to-end encrypted notes and chats, Consent Mode v2 with deny-by-default.

Co-op parties

Shared tasks with friends in real time, including party chat.

Trailmates (18+)

Moderated co-op matching by experience instead of photos. No swipe carousel, no attractiveness ranking.

Marble without WebGL

The design brief called for gold-veined dark marble as the recurring brand material and a portal flight in the hero. The first draft planned a WebGL shader for it.

We shipped the same look without Three.js: background-clip on text, mask gradients, mix-blend-mode and GSAP timelines. Zero WebGL in the bundle, LCP stays clean, and every scene has a static fallback for reduced motion.

Typography: Fraunces as a variable display face with optical sizing, Hanken Grotesk for body text. Both self-hosted via next/font.

Glenby website section with gold-veined marble background built from pure CSS
<TechStack />

Tech stack in detail

Next.js 16 Framework

App Router with cacheComponents, dynamic OG images via next/og, hosted on Vercel

React 19.2 UI

Server components by default, client islands only for consent, waitlist and animations

TypeScript 6 strict Language

Strict mode, zod-validated environment variables via @t3-oss/env-nextjs

Tailwind CSS v4 Styling

Design tokens via @theme, 16px radius ceiling, a single easing curve

GSAP + Lenis Motion

ScrollTrigger scenes with smooth scroll, every animation ships a reduced-motion fallback

Supabase Backend

iOS waitlist via RPC in an isolated schema, no direct table access

Resend Email

Double opt-in for the iOS waitlist with honeypot, timing check and rate limiting

Strict CSP Security

Hand-built security headers, CSP violation reporting, HSTS preload, security.txt

More than a landing page

Security headers

Hand-written CSP with violation reporting, HSTS preload, COOP/COEP/CORP and security.txt per RFC 9116.

Legally sound

6 legal pages in both languages, including the German §356a cancellation button and 18+ labeling per JMStV.

GEO-ready

llms.txt, 28 AI crawlers explicitly allowed by name in robots.ts, and JSON-LD without invented ratings.