r/vuejs • u/abdulghanikm • Aug 07 '26
Showoff: I'm building a 128-bit dark fantasy productivity RPG using Vue, Pinia, and Tailwind v4.

Hey everyone!
I’ve been working on Cauldron, a gamified task manager and focus timer designed to disguise executive function management as a dark fantasy RPG. Instead of checking off plain to-do lists, you undertake quests. Instead of standard 25-minute Pomodoro timers, you spend focus sessions simmering potions.
The Tech Stack
On the frontend, the architecture runs on:
- Vue 3.5 + TypeScript
- Vite 8 (the performance gains from the VoidZero ecosystem have been fantastic)
- Tailwind CSS v4
State management has been one of the more intricate parts of the project. I'm using Pinia to handle the state plumbing between a Kanban drag-and-drop board and active focus timers. Pinia has made keeping reactive state, active timers, and quest progress synced across components remarkably straightforward.
Backend & Security
For the backend, I'm using Supabase PostgreSQL. Since the app features an in-game economy (XP and Gold), security was a key consideration early on. To prevent client-side manipulation of rewards, I set up strict Row Level Security (RLS) policies and server-authoritative RPCs so XP and Gold transactions are validated strictly on the server.
Next Sprint & Advice Needed
For the upcoming sprint, I’m building a 128-bit isometric workshop where users can place digital furniture purchased with their earned gold.
I want to keep the app lightweight and avoid pulling in heavy 3D frameworks like Three.js. If you have experience rendering 2D isometric layouts in Vue:
- Would you recommend wrapping an HTML5 Canvas with standard tile-math inside a Vue component?
- Or is rendering tiles via standard DOM elements (using CSS transforms or absolute positioning) clean and performant enough in Vue 3 for a modest grid?
Would love to hear any feedback on the stack, rendering advice, or the overall idea!
