
Teodor Avadani
Founder of qodesign
I'm Teodor, the maker behind qodesign. I design and code every piece in the shop: animated React and Tailwind components for Next.js, each shipped with its source and a prompt for Cursor, v0 or Claude Code.
I've built software and products for about seven years, self-taught. I freelanced through 100+ projects, ran my own e-commerce shop, and built adapostulmeu.ro, a bomb shelter finder that reached 100,000 people in Romania in its first three days. I also run TopCalls, an AI voice agent platform.
On this blog I write about what I hit while building those pieces: motion that holds up in the App Router, the Next.js errors component libraries cause, and how to make an app made with AI tools stop looking generic.
10 posts
- Cursor Rules for a Design System: Add UI Without DriftCursor rules for your design system: a scoped .mdc rule with your tokens, a PROMPT.md spec and a drift check, so new components stop breaking your design.AI-built UI · Oct 19, 2026 · 8 min
- overscroll-behavior contain: Stop Scroll Stealing in ReactUse overscroll-behavior contain the right way: stop tables, carousels and drawers stealing page scroll in React, plus touch-action, wheel listeners and locks.Next.js fixes · Oct 16, 2026 · 8 min
- useSyncExternalStore getServerSnapshot: Next.js FixuseSyncExternalStore without getServerSnapshot breaks next build. The real error, why it happens, and tested hooks for media query, online and localStorage.Next.js fixes · Oct 14, 2026 · 7 min
- Next.js Hydration Error from Dates: 5 Tested FixesFix the Next.js hydration error from dates, toLocaleString and Math.random: the real React 19 error text, why prod differs from dev, and five tested fixes.Next.js fixes · Oct 12, 2026 · 8 min
- Accessible Login Form in React: Labels, Errors, MotionBuild an accessible login form in React and Tailwind: real labels, errors read by screen readers, focus on error, a show/hide password button, reduced motion.Animation · Oct 10, 2026 · 8 min
- Framer Motion vs CSS Animation for Micro-InteractionsFramer Motion vs CSS animation for micro-interactions: the same toggle built both ways, the bundle cost I measured, and what CSS can now do on its own.Animation · Oct 8, 2026 · 7 min
- shadcn Registry: Install Third-Party Components by URLHow to use a shadcn registry: install third-party components by URL or @namespace, check what lands in your repo first, and fix the CLI errors you'll hit.AI-built UI · Oct 6, 2026 · 7 min
- Animated Tabs with Framer Motion in Next.js App RouterAnimated tabs with Framer Motion (now Motion) in the Next.js App Router: a layoutId pill driven by usePathname, accessible and reduced-motion safe.Animation · Oct 3, 2026 · 8 min
- "use client" Error in Next.js: useState, Context, onClickFix the "use client" error in Next.js App Router: useState only works in a Client Component, createContext, event handlers in props, barrel files and useRef.Next.js fixes · Oct 1, 2026 · 8 min
- How to Make UI Not Look AI-Generated: A v0 ChecklistHow to make UI not look AI-generated in v0 and shadcn apps: the six visible tells, the code fix for each, and a script that finds them in your repo.AI-built UI · Sep 29, 2026 · 8 min