AI · Interaction · 2026

Rascalo

My twin nephews needed a birthday gift. Something they wouldn't lose, couldn't break — but still had that moment of not knowing what's underneath.

Try it

Drag to scratch. Try different amounts and messages.

What it is

I needed to give my twin nephews a gift that was an experience — not a physical card they'd immediately lose. I wanted something digital that would last at least a month, could be downloaded if they wanted to print it, but still had that moment of suspense built in. The scratch card mechanic felt right: the analogue anticipation of not knowing what's underneath, translated to a screen. They could scratch it with a finger on their phones, reveal the surprise, and keep it. It worked. They both loved it.

How I built it

Built in a day. The core interaction is a Canvas API scratch effect — a layer drawn on canvas, erased progressively by mouse or touch events to reveal what's underneath. Cards are stored in MongoDB with a TTL index that auto-expires them after 30 days. The editor covers full customisation: recipient name, scratch texture (silver, gold, rainbow), background colour or image, title, message, and signature. Once created, each card gets a unique URL and a QR code — shareable by link, email, or native share on mobile. Deployed on Railway with auto-deploy from the main branch.

Built with

  • Node.js + Express
  • MongoDB
  • Canvas API
  • html2canvas
  • Nodemailer
  • Railway
  • HTML / CSS / JS