Drag-and-drop tile builder
Build a lesson the way you'd sketch one. Drag a tile onto the canvas, type your prompt, drop in an image, and you're done. No timelines, no layers, no learning curve.
- Drag-and-drop tile ordering
- Inline editing — click anything to change it
- Live preview as you build
- Autosave on every change (debounced ~1s)
- Unlimited undo / redo (Ctrl+Z, Ctrl+Shift+Z)
- Copy / paste / duplicate elements and whole tiles
- Element locking + z-order controls
- Welcome coach marks + help modal for new users
Join codes, no email collected
Create a class, get a join code, share it with the room. Students join with a nickname — no email, no login, no parental-consent paperwork. The flow is COPPA-safe by design.
- One join code per class, copy or share as a link
- Students join via /join/[code] with just a nickname
- No student emails collected — ever
- Roster view shows every member and last activity
- Assign decks to a class so plays attribute back to the right student
- Remove or rename members anytime
Watch every session as it happens
Open the deck's Live page and watch every active session in real time. Polled every few seconds while the tab is visible — pauses when you switch away so it doesn't burn battery.
- Live progress bars while students play, tile by tile
- Score, accuracy, and current position per session
- Recent completed plays listed underneath
- Background-tab pause keeps it light
- Open the share modal in one click to add more students
- Spot misconceptions before students log off
See what stuck. See what didn't.
After the bell, dig into the data. Reports aggregate across every play of a deck — by student, by tile, by date window — so you can see what stuck and what didn't.
- Per-student summary: plays, average, best, last seen
- Per-tile accuracy ordered worst-first so problem tiles bubble up
- Common wrong answers surfaced for multi-choice tiles
- Date filters: 7 days, 30 days, 90 days, all time
- Filter by class roster or by individual student
- Per-student slide-over with their full play history
CSV, Sheets, Quizlet — into a playable deck
Already have a vocab list, a spelling list, or a Quizlet set? Paste two columns of text and get a playable deck in seconds. Auto-detects tabs, commas, or pipes.
- Paste from Excel, Google Sheets, Numbers, or Quizlet
- Auto-detects the column separator
- Live preview before you commit
- Pick the tile type: flashcard, multi-choice, fill-the-blank
- Up to a few hundred rows in one paste
- Drops you straight into the studio to polish and share
One layer paints the whole deck
Mark any card as the template and its element layer paints onto every other card in the deck — backgrounds, watermarks, headers, mascots. Edit it once, and the whole deck updates.
- is_template flag on any card in the studio
- Shared elements apply to every other card automatically
- Per-card elements still render on top
- Perfect for branded headers, footers, and decorative motifs
- Toggle off any card if you want a one-off layout
Voice baked in, on every tile
Speech is built in. Upload your own audio clips, or let the browser read text aloud on the TTS Button tile. A Recording Prompt tile is available for capturing student voice.
- Upload MP3, WAV, or M4A — stored in R2
- Text-to-speech via browser SpeechSynthesis with rate control
- Recording Prompt tile for student voice capture
- Audio Trigger tiles for tap-to-play playback
Style every card without leaving the studio
Lessons can look like a worksheet, a storybook, or a game show. Every card is fully styleable without leaving the studio — backgrounds, borders, patterns, and the brand palette are all built in.
- Per-card background colors and uploaded images
- 12 SVG borders, recolorable to match your theme
- 11 SVG background patterns with opacity control
- Full color, alignment, weight, and size controls on every text element
- 5-color brand palette built into the editor (coral, mustard, mint, lavender, navy)
- Image uploads via presigned R2 URLs — fast, no proxying
- Tile-level accessibilityText for screen readers
Links, PIN codes, QR — drop anywhere
Lessons share as plain links and 6-character PIN codes — they drop into any LMS, chat, or email. Native LMS integrations (roster sync + grade passback) are on the roadmap.
- Plain share links work in Google Classroom, Canvas, Schoology, Teams
- Public PIN codes via /go/{pin} for non-LMS classrooms
- QR code generated for every share
- Set expiry dates and max-plays per link
- Native LMS integrations — coming
Built in, not bolted on
Alt text and screen-reader descriptions are first-class fields on every element, not afterthoughts. OpenDyslexic ships with the editor and every tile is keyboard- and touch-friendly.
- alt text on every image element
- altText field on every interactive element
- Tile-level accessibilityText for screen readers
- OpenDyslexic font built in
- role="region" and aria-label on every tile
- Touch-friendly targets — works on phones and tablets
Cover-tile grid over any deck
A grid of cover tiles overlaid on a deck. Students tap a cover to flip into the underlying card. A second deck format alongside the canvas studio.
- Grid of cover tiles with custom colors and labels
- Each cover maps to an existing card
- Plays alongside the standard canvas studio
Same content, multiple ways to play
A content-driven deck format where you supply pairs of items and pick a Play Mode. Same content, multiple ways to play.
- Pairs shape: term + definition rows
- Play Modes: Flashcards, Matching Pairs, Spin Wheel, Whack-a-Mole
- Quiz, groups, sequence, and open-list shapes are still separate formats
Mix any of these on a single tile
Every element is touch-friendly, accessible, and works without setup.