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.
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.
Tech stack in detail
App Router with cacheComponents, dynamic OG images via next/og, hosted on Vercel
Server components by default, client islands only for consent, waitlist and animations
Strict mode, zod-validated environment variables via @t3-oss/env-nextjs
Design tokens via @theme, 16px radius ceiling, a single easing curve
ScrollTrigger scenes with smooth scroll, every animation ships a reduced-motion fallback
iOS waitlist via RPC in an isolated schema, no direct table access
Double opt-in for the iOS waitlist with honeypot, timing check and rate limiting
Hand-built security headers, CSP violation reporting, HSTS preload, security.txt
More than a landing page
Hand-written CSP with violation reporting, HSTS preload, COOP/COEP/CORP and security.txt per RFC 9116.
6 legal pages in both languages, including the German §356a cancellation button and 18+ labeling per JMStV.
llms.txt, 28 AI crawlers explicitly allowed by name in robots.ts, and JSON-LD without invented ratings.