Skip to content
Eduvek — Learn. Grow. Evolve.
← Back to portfolio

Live: spacepocket.ca

Space Pocket: a reserve-online, pay-at-pickup squishy shop

A playful, space-themed online shop for a Toronto squishy business, with online reservations, cash pickup at a subway station, signed digital handovers and a full admin dashboard.

spacepocket.ca website screenshot

What it is

Space Pocket is a small Toronto shop selling squishies and fidget toys to teens, tweens and their parents. Customers browse the Catalogue, reserve online, and meet the seller at Sherbourne subway station, where they inspect their items, pay in cash and sign the handover on their own phone. Around the shop sit a 122-article blog (the Space Journal), customer reviews, member accounts and Mission Control, a private dashboard that runs the business day to day.

The challenge

Most e-commerce assumes online payment and shipping. Space Pocket needed the opposite: no card payments, no addresses, cash only, all sales final, and many customers under 18. That meant designing a sale that's trustworthy for both sides without a payment processor: reservations that hold stock without selling it, a clear record of what was handed over and paid, protection against no-shows, and careful handling of minors' data. On top of that, the brand had to feel like a glossy, magical space adventure, not a template store, and look good on phones first.

What I built

I designed and built the whole product: brand look, homepage experience, storefront, member area, admin dashboard, database and emails, directing the development with Claude Code.

The homepage opens with a cinematic intro I produced from AI-generated clips, cut and colour-matched so its final frame hands over seamlessly to the live page. There, the squishies and the astronaut are separate animated layers that float and react to every tap, and the navigation is seven glowing planet bubbles over the artwork.

The core of the shop is the pickup flow. A reservation holds stock without reducing it, and expired reservations are held until they're checked and released. At pickup, the customer answers inspection questions and types their legal name in their own account. The database decides whether an answer is a problem, signing is only possible after the seller confirms the cash, and a versioned acknowledgement and PDF are stored for both sides. Totals use Canadian 5¢ cash rounding, and every time is shown in Toronto time.

Security is enforced in the database rather than in the interface: row-level security on every table, admin checks inside the database, column-level permissions so members can only edit their own details, and signed orders that can never be edited or deleted. All 21 schema changes are versioned migrations, each reviewed before it was run.

Key features

Reserve online, pay at pickup

  • Cart and reservation with a final-sale agreement and guardian confirmation for minors
  • Order numbers, a 3-day hold, automatic reminder and expiry emails
  • Customer-side inspection and typed e-signature, once per order, with a stored PDF
  • Canadian 5¢ cash rounding on totals, receipts and the signed record

Inventory & orders

  • Simple stock model: on hand, reserved, damaged and available, calculated from orders
  • No-shows held until released and never counted as sales
  • Order editing, handover cancel, cancel with reason, and a full status history
  • Quick Sale mode for in-person events, with an undo and an end-of-event cash summary

Storefront & members

  • Catalogue with filters, colour variants and cut-out product photos on the space background
  • Hot Pocket weekly featured product
  • First-login "What do you like?" preferences with personalised picks
  • My Space: profile, preferences, order history and signed acknowledgements

Trust & reviews

  • Reviews only from completed orders, approved before they appear, shown as first name + initial
  • Review prompt right after signing, plus a Google review button
  • Customer-reported complaints with photos, tracked by the shop as open or resolved

Homepage experience

  • Desktop intro video with Skip, sized to line up exactly with the homepage art
  • Live animated squishies and astronaut, replaying their animation on every tap
  • Glowing planet-bubble navigation; reduced-motion respected throughout

Mission Control (admin)

  • Dashboard: awaiting pickup, past deadline, pending reviews, open problems, weekly cash
  • Products, orders, reviews, members, blog, events and settings, readable on desktop and phone
  • Admin access enforced on the server and in the database

Content, SEO & performance

  • 122-article Space Journal with "Shop This Squishy" product links
  • Sitemap, robots, Open Graph previews, branded 404, alt text throughout
  • Mobile Lighthouse: accessibility 99–100, SEO 92–100
  • All text in a translation file, ready for another language

Tools

  • Next.js (App Router), TypeScript
  • Supabase (Postgres, Auth, Storage, row-level security)
  • Vercel (hosting)
  • Resend (transactional email, own domain)
  • React Markdown, Sharp (WebP images)
  • Kling AI and ChatGPT (intro video and artwork)
  • Claude Code (AI-assisted development)
Visit project →