LANDBANK's 26th Floor built a physical installation called Ani ng Hinaharap — "Harvest of the Future." It's a Banaue rice-terrace scene reimagined with technology: terraces that cascade as data streams, palay grains stamped with QR codes, drones made from recycled scraps, a silo built from tin cans, a solar-powered bahay kubo. Each piece was tagged with a hand-drawn sticker.
The problem: a display can be looked at, but not joined. They wanted one QR code on the installation that would explain what every element meant and let visitors leave a mark of their own — and they needed it live in a day.

From a passive display to a shared one
The answer is a mobile-first landing page that echoes the physical piece the visitor is standing in front of, then hands them the pen.
An intro splash and a full-bleed night-terraces hero with animated LED "data lines" running down the tiers — the phone screen mirrors the installation.
A short bilingual narrative connecting two thousand years of Ifugao engineering to what flows down the terraces of our time: data, energy, and ingenuity — "the future is grown from what we already carry."
The six sticker characters — Data Terraces / Payyo ng Datos, Palay + QR / Butil na May Kodigo, Recycled Drones, Can Silo, Solar Panel, Bahay Kubo / Tahanang Konektado — each with its sticker art and the meaning behind it.
A live message wall plus emoji reactions (🌾 ✨ 💚 🤖 🙌 bayanihan). Every visitor who scans sees what everyone before them wrote, in real time, on a wall that keeps growing for the life of the exhibit.
Intro splash
Night terraces hero
The Story
Join the Harvest — reactions
Leave a message
Recent notes on the wallSix seeds of one story
Each sticker on the floor has a card on the phone. Visitors find the sticker, then find its story — the QR code turns the hand-drawn tags into an index.
Data Terraces · Payyo ng Datos
Palay + QR · Butil na May Kodigo
Recycled Drones · Muling Lumilipad
Can Silo
Solar Panel
Bahay Kubo · Tahanang KonektadoHow it works
Next.js 16 on the App Router with Tailwind v4, deployed on Vercel. Sora for display type, Plus Jakarta Sans for body, and Caveat for the handwritten notes on the wall.
Shared state — messages and reaction counts — lives in Upstash Redis, provisioned through the Vercel Marketplace, with an in-memory fallback so the app runs locally with zero config. The wall self-seeds with a few welcome messages on first request so it never looks empty to the first person who scans.
Built to survive a public QR code
- Server-side English + Filipino profanity filter on every post.
- Per-IP rate limits for posting and voting.
- A 500-message cap so the wall can't be flooded into uselessness.
- Toggleable, un-spammable reactions — tap to vote, tap again to remove.
- Hardened response headers before launch.
Performance for cheap phones
Most visitors carried mid-range Android phones, so the page is tuned for them: blur-free scroll reveals, trimmed animation durations, prefers-reduced-motion respected, and an explicit opt-out from Samsung Internet / Chrome forced-dark so the gold-and-green palette isn't mangled on the very devices most people brought.
Design decisions worth noting
Photograph over illustration. The first hero was a hand-built SVG of the terraces. It was swapped for a photographic night scene once it was clear the SVG read as "illustration" while the physical piece read as "place."
A corporate pass. Rule-flanked attribution lockups, a gridded reaction selector, and steadier type made the page feel like LANDBANK rather than a hackathon demo — without losing the warmth of the stickers.
Participate first, explain second. The page was reordered from Elements → Wall to Story → Join → Wall → Elements. Participation was the whole point, so it comes before the explanation.
The whole build — from the brief to a QR code on the installation — happened in one day. Scope discipline is what made that possible: no accounts, no moderation dashboard, no CMS. A wall, a story, six cards, and a link.