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 written in the same calm tone as the app.

  • 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. We designed the app to avoid competitive pressure and daily streak anxiety.

  • Honest proof

    GPS position plus timestamp as evidence. We left out AI species detection on purpose, because you cannot invent real proof.

  • Daily tasks

    Small nature tasks nearby: a stream, a view, a tree. There is no competition and no global leaderboard.

  • Weekly streaks

    Streaks count per week, not per day, so a missed day breaks nothing. The pace stays calm, without casino mechanics.

  • Private & EU-hosted

    All app data lives in Frankfurt. Notes and chats are end-to-end encrypted, and Consent Mode v2 denies 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, without a swipe carousel or an 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. The bundle contains no WebGL, which keeps LCP low, and every scene has a static fallback for reduced motion.

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

Glenby website section with gold-veined marble background built from pure CSS

Tech stack

in detail

  • Next.js 16

    App Router with cacheComponents, dynamic OG images via next/og, hosted on Cloudflare Workers via OpenNext

    Framework
  • React 19.2

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

    UI
  • TypeScript 6 strict

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

    Language
  • Tailwind CSS v4

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

    Styling
  • GSAP + Lenis

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

    Motion
  • Cloudflare Workers + D1

    iOS waitlist via a custom endpoint, no direct table access. On Cloudflare since August 2026, previously Supabase

    Backend
  • Resend

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

    Email
  • Strict CSP

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

    Security

Behind the 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 allowed by name in robots.ts, and JSON-LD without invented ratings.