Shinder Tarot
A tarot learning platform: a 78-card reference, 30+ tutorial articles, and a drawing tool with four spread engines. The learning content is written in Traditional Chinese; the drawing tool is fully translated, so you can use it end to end in English.
What the drawing tool does
- Four spread engines — a daily card locked to one draw per day; three-card spreads with three selectable position sets; two five-card themed spreads; and the Celtic Cross, which walks you through the ten cards in reading order rather than card order.
- Shuffling runs in your browser, on
crypto.getRandomValueswith rejection sampling so the deck order isn't skewed by a modulo. No sign-in, and no draw is ever uploaded. - A reading journal — save any draw with a one-line note. Entries live in your browser; subscribers sync the most recent 1,000 across devices.
- Reversals are off by default. That is a teaching decision, not an oversight: upright meanings first, reversals once those are solid.
What's behind it
- All 78 Rider-Waite-Smith cards, each with imagery, symbolism, and historical notes.
- A structured course of 30+ articles, per-article quizzes, and reading-progress tracking.
- An AI reading guide that only ever asks you questions — it will not hand you a verdict.
- A companion React Native app that shares the same backend, content pipeline, and card data.
How it's built
One Cloudflare Worker serves everything: Hono for routing and server-rendered HTML, D1 for accounts and learning data, KV for rate limiting, Workers AI for the reading guide, and better-auth for Google and Apple sign-in. No client-side framework — the interactive parts are plain modules against a server-rendered page. Tests run inside workerd, so they execute in the same runtime as production. The app and the website live in one pnpm monorepo and share a single source of truth for card data and article content.
Built by Shinder Lin.
A note on language
Card names, spread positions, and the whole drawing flow are in English. The card meanings and
the tutorial articles are in Traditional Chinese and are not translated — translating 78 full
card entries and 30+ long-form articles would be a different project. Links that lead into
Chinese pages are marked (中文) so you always know before you click.