This is a submission for Weekend Challenge: Dog Days Edition
What I Built
Which Dog Are You Today? — a tiny, silly personality quiz. Five daft questions about your Saturday mornings, your feelings on doorbells, and your ideal compliment, and you get crowned as one of five dog breeds: Golden Retriever, Corgi, Greyhound, Border Collie, or Pug. The goal was pure low-stakes fun with no login, no backend, no tracking — just open it, answer five questions, and get told which dog you are today. (Not forever. Today. Check back tomorrow — you might be a different dog.)
Demo
🐾 The lineup:
| Breed | You are... |
|---|---|
| 🟡 Golden Retriever | Boundless joy, zero impulse control |
| 🟠 Corgi | Short legs, tall opinions, runs the house |
| 🔵 Greyhound | Capable of 40mph, choosing 0mph |
| 🟢 Border Collie | Rest is a bug, not a feature |
| 🟣 Pug | Didn't ask to be this glamorous, happened anyway |
Code
Lanthanum89
/
dev.to-weekend-doggos
Five daft questions. One inevitable truth about your energy levels. This is a tiny, silly personality quiz built for the DEV.to Weekend Doggos challenge. Answer questions about your Saturday mornings, your feelings on doorbells, and your ideal compliment — and find out which dog breed you truly are today. (Not forever. Today.)
🐶 Which Dog Are You Today?
Five daft questions. One inevitable truth about your energy levels.
This is a tiny, silly personality quiz built for the DEV.to Weekend Doggos challenge. Answer questions about your Saturday mornings, your feelings on doorbells, and your ideal compliment — and find out which dog breed you truly are today. (Not forever. Today. Check back tomorrow, you might be a different dog.)
🐾 The lineup
| Breed | You are... |
|---|---|
| 🟡 Golden Retriever | Boundless joy, zero impulse control |
| 🟠 Corgi | Short legs, tall opinions, runs the house |
| 🔵 Greyhound | Capable of 40mph, choosing 0mph |
| 🟢 Border Collie | Rest is a bug, not a feature |
| 🟣 Pug | Didn't ask to be this glamorous, happened anyway |
Answer 5 questions, scores tally up behind the scenes, and whichever dog you matched hardest with gets crowned your spirit animal (ties broken at random, because chaos is thematically appropriate here).
🛠
…How I Built It
The stack is deliberately small: React 19 + TypeScript, Vite for dev/build, and Tailwind CSS 4 for the bold, hand-drawn look. Deploys happen automatically to GitHub Pages on every push to main via GitHub Actions.
A few decisions worth calling out:
-
Scoring is a simple tally, not a decision tree. Each answer bumps a per-breed counter (
scores[breedId]++), and after the last question the breed(s) with the highest score win. It's a flat array of five integers — easy to reason about and easy to extend with a new breed. - Ties are broken at random, not by array order, because letting the "first" breed always win on a tie felt thematically wrong for a quiz about chaos and personality.
-
No illustration library. The dog faces are hand-rolled SVGs (
<DogFace />) that take acolorand anearStyle(floppy|pointy|folded|droop) as props, so each breed gets a distinct face just by composing the same component differently — mostlytransform: rotate()on ear paths. -
Content is fully data-driven. Breeds and questions live in
src/data.tsas plain arrays/objects. Adding a new dog means adding aBreedentry and referencing itsidfrom question options — no component changes needed. - Oxlint for fast linting, keeping the toolchain lightweight for a weekend build.
Prize Categories
Not submitting to any prize categories.
Top comments (0)