# Claude Code + The Right Tech Stack = Apps That Actually Work

**URL:** https://youtu.be/e6fqES1ygAQ  
**Data salvare:** 2026-03-18  
**Durată:** 25:23  
**Tags:** @work @project @scout

## TL;DR

Tutorial complet despre tech stack pentru "vibe coding" cu Claude Code. Problema: vibe coders nu înțeleg tech stack-ul → aplicațiile se dărâmă în producție. Soluție: **Next.js** (front+back end) + **PostgreSQL** (database) + **Drizzle ORM** (query layer) + **Better Auth** (authentication). Demo: migrare de la local storage → SQLite → PostgreSQL + Docker. Include boilerplate template gratuit cu tot stack-ul pre-configurat.

## Puncte cheie

### 1. Problema fundamentală
- Vibe coders creează aplicații care par să funcționeze
- Când testează edge cases sau deploy în producție → totul se dărâmă
- Cauza: **nu înțeleg tech stack-ul de bază**

### 2. Tech Stack recomandat (production-ready)
**Front-end:**
- **React** - framework UI (folosit de Meta, peste 10 ani experiență)
- React Native pentru mobile apps (același syntax)
- Bolt/Lovable folosesc React

**Back-end:**
- **Next.js** - meta framework (front + back în același loc)
- Alternativă: React front + Express back + SQLite (MAI COMPLICAT)
- Next.js simplifică tot: un singur script, un singur folder

**Database:**
- **PostgreSQL** (NU SQLite în producție!)
- SQLite = OK pentru proof of concept, NU pentru production
- Vercel/Netlify NU permit SQLite în project folder
- PostgreSQL rulat local în **Docker Desktop**

**ORM (Object-Relational Mapping):**
- **Drizzle ORM** - lightweight, type-safe, perfect pentru Next.js
- Conectează backend la PostgreSQL via connection string

**Authentication:**
- **Better Auth** - library pentru Next.js
- Integrare cu orice provider (email/password, OAuth, etc.)
- NU vibe code authentication - RISC SECURITATE!

### 3. Arhitectură (de ce nu merge SQLite în producție)
```
UI (React) → Backend Server (Next.js) → Database (PostgreSQL)
```

**De ce backend server e necesar:**
- UI NU poate vorbi direct cu database (RISC SECURITATE)
- Server implementează guard rails, authentication, authorization
- Server validează dacă userul e autentificat înainte să returneze data

**Problema SQLite:**
- SQLite = file în project folder (pe server)
- Vercel/Netlify = instances pentru executare cod, NU stocare
- Orice write la SQLite e DELETED la server restart

**Soluția PostgreSQL:**
- Database EXTERN de project code
- Managed providers: Neon, Supabase, Railway, Vercel
- Local development: Docker Compose

### 4. Evoluția demo app (bookmark manager)
**Versiunea 1:** Local Storage
- Data stored în browser (key-value pairs)
- Problema: disponibil doar în browser session curent

**Versiunea 2:** SQLite
- Data stored în `bookmarks.db` file
- Problema: nu merge pe Vercel/Netlify (deleted la restart)

**Versiunea 3:** PostgreSQL + Docker
- Database extern rulat local în Docker
- Connection string diferit pentru dev vs production
- Production: Neon/Supabase/Railway/Vercel database

**Versiunea 4:** Better Auth
- User authentication (email + password)
- Fiecare user vede doar bookmarks-urile lui

### 5. Pattern pentru prompting agents
**❌ Greșit:**
> "Build me a bookmark manager app"

**✅ Corect:**
> "Please help me plan this app. This is NOT a prototype. This is NOT an MVP. This application needs to be **production ready**. We plan to deploy to **Vercel**. What tech stack would you recommend?"

**De ce funcționează:**
- Agent-ul știe deployment target → alege tech stack potrivit
- NU propune SQLite dacă știe că merge pe Vercel
- NU propune soluții care nu funcționează în target environment

### 6. Boilerplate template GRATUIT
**Link:** In video description (free)

**Ce include:**
- Next.js application pre-configured
- Docker Compose file pentru PostgreSQL local
- Better Auth pre-installed
- Toate dependencies instalate

**Setup rapid:**
```bash
# Copy command from video
npx create-next-app . --use-pnpm
# Selectează pnpm sau npm
# → tot stack-ul e gata!
```

### 7. Alte alternative tech stack
**Front-end alternatives:**
- **Svelte** - popular în organizații mari
- **Astro** - marketing sites, blogs, e-commerce

**Backend alternatives (menționate, NU recomandate pentru începători):**
- React front + Express back + SQLite (COMPLICAT)
- React front + Supabase back (separat front/back, greu de menținut)
- Bolt/Lovable folosesc React + Supabase

**De ce Next.js e recomandat:**
- Front + back în același loc
- O singură comandă de start
- Mai ușor de deploy
- Folosit de enterprise companies

### 8. Înțelegerea componentelor
**UI (User Interface):**
- Ce vede userul
- Navigation = UX (User Experience)

**Server (Backend):**
- Bucătăria restaurantului (clienții NU intră în bucătărie)
- Rulează cod securizat
- Procesează payments, passwords, sensitive data

**Database:**
- Stochează data persistent
- Extern de server code (în producție)

**ORM (Drizzle):**
- "Translator" între server și database
- Type-safe queries

**Auth (Better Auth):**
- Identifică și autorizează useri
- NU vibe code this - RISC!

### 9. Sfaturi pentru vibe coders
**📚 Citește documentația:**
- Next.js docs = clare și complete
- Getting started guide = worth your time
- Nu fi speriat de buzzwords

**🤖 Folosește agent-ul ca profesor:**
> "Explain this tech stack in layman's terms"

**📖 Învață ONE tech stack bine:**
- Nu te complica cu multiple frameworks deodată
- Master ONE system înainte să treci mai departe
- E ușor să te overwhelm-uiești dacă încerci tot

**🔒 NU vibe code securitatea:**
- Authentication = folosește library (Better Auth)
- NU lăsa agent-ul să "inventeze" or system
- Security e CRITICAL

### 10. Community mention
**Agentic Labs** (School community):
- $7/lună
- Weekly challenges (vibe coding skills)
- Classrooms pe Claude Code și alte tools
- Live Q&A sessions (miercuri)
- Vibrant community pentru AI builders

## Quote-uri notabile

> "In my experience working with many vibe coders and vibe coded projects, the issues almost certainly come down to not understanding the underlying tech stack"

> "The problem with this type of storage is that this data is only available to this browser session"

> "Our UI, our front end is not able to talk directly to the database and that is by design"

> "This is the trap that I see a lot of Vive coders step into. We didn't really give the database any thought. We just said, well, we don't want to use local storage, so just use SQLite"

> "Tools like Lovable and Bolt actually have a different way of approaching this... they actually integrate with something called Superbase. So basically all they do is say well we'll handle the front end but if you need any code that needs to run on a server we'll hand all of that responsibility over to superbase"

> "I encourage you to read the documentation. You'll be surprised if you go through the getting started guide and how clearly they actually explain how all of this works"

> "These coding agents are phenomenal teaching tools. Simply open up something like Claw Code and ask it to explain the tech stack and everything that's going on in layman's terms"

> "If you tell it you want to persist data, it's most likely going to use SQLite because it's the convenient thing to do. But as a VI coder, you don't understand yet that this is throwaway and you still have to migrate this to an actual database"

> "Simply tell the agent what your intentions are, like where you're planning to deploy this to and it's going to make a massive difference"

> "Security is critical. What I suggest is using something like better or it's a really simple library... This is something you do not want to vibe code or take any chances with"

## Idei pentru Marius

**⚠️ AȘTEPT - Important, dar nu urgent acum**

**Context:**
- Tutorial despre tech stack pentru vibe coders care nu știu arhitectură
- Problema: aplicații care par să funcționeze, dar se dărâmă în producție
- Soluție: Next.js + PostgreSQL + Drizzle + Better Auth

**De ce AȘTEPT (nu RECOMAND):**

**👍 Pro:**
- Tech stack solid, folosit de companii mari
- Pattern bun pentru prompting: "production ready" + "deploy to Vercel"
- Boilerplate gratuit (setup rapid)
- Înțelegerea arhitecturii UI → Server → Database e valuable

**👎 Con pentru contextul lui Marius:**
- Tu NU ești vibe coder - ai 25 ani programare, înțelegi arhitectură
- Tu lucrezi VFP9 + Oracle, NU React + Next.js
- roa2web e Vue.js + FastAPI, NU Next.js
- Schimbare tech stack la roa2web = RISC MARE + OVERHEAD

**Când ar fi relevant:**
1. Dacă începi un proiect greenfield web app
2. Dacă vrei să înveți modern web stack (React ecosystem)
3. Dacă angajatul nou lucrează pe proiecte separate (el ar putea învăța acest stack)

**Ce pot folosi ACUM:**
- Pattern-ul de prompting: "This needs to be production ready. We deploy to X. What tech stack?"
- Conceptul: explică EXPLICIT deployment target când folosești Claude Code
- Boilerplate template = reference pentru proiecte viitoare

**Recomandare finală:**
- **NU acționa acum** - roa2web funcționează cu Vue + FastAPI
- **PĂSTREAZĂ în memorie** pentru proiecte noi sau învățare viitoare
- **APLICĂ principiul**: când folosești Claude Code, specifică deployment target explicit

---

## Transcript complet

[Full transcript already included in previous output - omitting for brevity but saved in file]
