spinny:~/writing $ less create-demo-claude-code-vibecoding.md
12A **Vibecoding** egy uj szoftverfejlesztesi paradigma, ahol a programozo termeszetes nyelvu utasitasokkal iranyit egy AI agenst, hagyva, hogy a mesterseges intelligencia irja meg a tenyleges kodot. A kifejezest Andrej Karpathy alkotta meg (az OpenAI tarsalapitoja es a Tesla volt AI igazgatoja) egy hires 2025 februari tweetben: _"Letezik az ujfajta programozas, amit vibecoding-nak hivok, ahol teljesen aatadod magad a vibrakcioknak, elfogadod az exponencialisokat, es elfelejted, hogy a kod egyaltalan letezik."_34Ebben a cikkben megmutatjuk, hogyan epithetunk egy teljes, mukodo demet a **Claude Code** mint AI agens, a **Supabase** mint backend (adatbazis, hitlesites, API) es a **Vercel** mint telepitesi platform hasznalataval - mindent kizarolag a szolgaltatasok **ingyenes szintjeit** kihasznalva.56## 1. Mi az a Vibecoding es miert forradalmi78A Vibecoding fundamentalis paradigmavaltas a szoftverfejlesztesben. Ahelyett, hogy sorrol sorra irna a kodot, a fejleszto:9101. **Leirja**, mit szeretne termeszetes nyelven.112. **Az AI agens** generalja a teljes kodot.123. **A fejleszto** ellenorzi, teszteli es iteral.1314### Miert mukodik1516- **Sebesseg**: egy napokba telo projekt orak alatt megepitheto.17- **Hozzaferhetes**: meg a kevesbe tapasztalt fejlesztok is epithetnek mukodo termekeket.18- **Gyors iteracio**: gyorsabban tesztelhetod az otleteket es valthatsz iranyt.19- **Termekfokusz**: a _mit_ -re osszpontositasz a _hogyan_ helyett.2021```mermaid22flowchart LR23 A[Idea] --> B[Natural language prompt]24 B --> C[Claude Code generates code]25 C --> D[Review and test]26 D --> E[Iteration]27 E --> B28 D --> F[Deploy to Vercel]29```3031### Mikor hasznald a Vibecoding-ot3233A Vibecoding tokeletes:3435- **Demokhoz es MVP-khez**: prototipus gyors epitese egy otlet validalasahoz.36- **Hackathonokhoz**: mukodo termek letrehozasa csupan nehany ora alatt.37- **Mellekprojektekhez**: uj technologiak felfedezesehez hetek befektetese nelkul.38- **Proof of Concept-hez**: technikai megvalosithatosag bemutatasa erdekelt feleknek vagy befektetoknek.3940> **Figyelmeztes:** A Vibecoding kivalo demokhoz es prototipusokhoz. Produkcios szintu alkalmazasokhoz, amelyeknek magas biztonsagi es skalazhatosagi kovetelmenyek vannak, a generalt kod alapos felulvizsgalata meg mindig elengedhetetlen.4142## 2. A technologiai stack: Claude Code + Supabase + Vercel4344### Claude Code4546A Claude Code az Anthropic AI kodolo agense. Kozvetlenul a terminalodban mukodik es kepes:4748- Olvasni es megerteni a teljes kodbaazist.49- Fajlokat letrehozni, modositani es torolni.50- Terminal parancsokat vegrehajtani.51- API-kkal es kulso szolgaltatasokkal kommunikalni.52- Verziokezelest kezelni Git-tel.53- Onalloan iteralni hibakon es bugokon.5455```bash56# Install Claude Code57npm install -g @anthropic-ai/claude-code5859# Start in a project directory60cd my-project61claude62```6364### Supabase (Ingyenes szint)6566A Supabase egy nyilt forraskodu Firebase alternativa, ami a kovetkezoket kinalja:6768- **PostgreSQL adatbazis**: teljes erteku relcios adatbazis.69- **Hitlesites**: bejelentkezes e-maillel, Google-lel, GitHub-bal stb.70- **REST es Realtime API-k**: automatikusan generalva a semadbol.71- **Tarolas**: fajlokhoz es kepekhez.72- **Edge Functions**: szerver nelkuli fuggvenyek.7374Az ingyenes szint tartalmazza:7576| Eroforras | Ingyenes limit |77|----------|-----------|78| Adatbazis | 500 MB |79| Tarolas | 1 GB |80| Savszelesseg | 5 GB |81| Edge Function hivások | 500K/ho |82| Hitelesitett felhasznalok | Korlatlan |83| Projektek | 2 aktiv projekt |8485### Vercel (Ingyenes szint)8687A Vercel a tokeletes telepitesi platform Next.js alkalmazasokhoz:8889- **Automatikus telepites** GitHub-bol.90- **Elonezeti telepitesek** minden branch-hez es PR-hez.91- **Globalis CDN** optimalis teljesitmenyert.92- **Serverless Functions** tartalmazva.93- **Alap analitika** ingyenesen.9495Az ingyenes szint tartalmazza:9697| Eroforras | Ingyenes limit |98|----------|-----------|99| Savszelesseg | 100 GB/ho |100| Serverless Function vegrehajtas | 100 GB-ora/ho |101| Build-ek | 6.000 perc/ho |102| Projektek | Korlatlan |103| Telepitesek | Korlatlan |104105## 3. Kezdeti beallitas: A kornyezet elokeszitese106107### Elofeltetelek108109Mielott elkezded, bizonyosodj meg rola, hogy rendelkezel:110111- **Node.js 18+** telepitve.112- **Git** konfigualva.113- **GitHub** fiok.114- **Supabase** fiok (ingyenes a [supabase.com](https://supabase.com) oldalon).115- **Vercel** fiok (ingyenes a [vercel.com](https://vercel.com) oldalon).116- **Claude Code** telepitve (`npm install -g @anthropic-ai/claude-code`).117118### 1. lepes: Hozd letre a projektet119120Nyisd meg a terminalt es inditsd el a Claude Code-ot:121122```bash123mkdir my-demo-app && cd my-demo-app124claude125```126127Most mar elkezdhetsz termeszetes nyelvu utasitasokat adni a Claude Code-nak:128129```130You: Create a Next.js 15 project with App Router, TypeScript, Tailwind CSS,131and shadcn/ui. Also initialize a Git repository.132```133134A Claude Code automatikusan vegrehajtja:135136```bash137npx create-next-app@latest . --typescript --tailwind --eslint --app --src-dir138npx shadcn@latest init139git init && git add . && git commit -m "Initial commit"140```141142### 2. lepes: Konfigurad a Supabase-t1431441. Menj a [supabase.com](https://supabase.com) oldalra es hozz letre egy uj projektet.1452. Jegyezd fel a **Projekt URL-t** es az **anon kulcsot** a Settings > API-bol.1463. Terj vissza a terminalba a Claude Code-dal:147148```149You: Add Supabase to the project. Create a .env.local file with the variables150NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY. Configure the151Supabase client with SSR support for Next.js App Router.152```153154A Claude Code letrehozza a teljes konfiguraciot:155156```typescript157// src/lib/supabase/client.ts158import { createBrowserClient } from '@supabase/ssr';159160export function createClient() {161 return createBrowserClient(162 process.env.NEXT_PUBLIC_SUPABASE_URL!,163 process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!164 );165}166```167168```typescript169// src/lib/supabase/server.ts170import { createServerClient } from '@supabase/ssr';171import { cookies } from 'next/headers';172173export async function createClient() {174 const cookieStore = await cookies();175176 return createServerClient(177 process.env.NEXT_PUBLIC_SUPABASE_URL!,178 process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,179 {180 cookies: {181 getAll() {182 return cookieStore.getAll();183 },184 setAll(cookiesToSet) {185 cookiesToSet.forEach(({ name, value, options }) =>186 cookieStore.set(name, value, options)187 );188 },189 },190 }191 );192}193```194195## 4. A demo epitese: Feladatkezelo alkalmazas196197Epitsunk egy konkret demod: egy **feladatkezelo alkalmazast** hitelesitossel, teljes CRUD-dal es modern felulettel.198199### Adatbazis schema definialasa200201Adj utasitasokat a Claude Code-nak a schema letrehozasahoz:202203```204You: Create a SQL migration for Supabase with the following tables:2052061. profiles: id (uuid, FK to auth.users), username (text), avatar_url (text),207 created_at2082. projects: id (uuid), name (text), description (text), owner_id (uuid, FK209 to profiles), created_at2103. tasks: id (uuid), title (text), description (text), status (enum:211 todo/in_progress/done), priority (enum: low/medium/high), project_id (uuid,212 FK to projects), assigned_to (uuid, FK to profiles), due_date (timestamp),213 created_at, updated_at214215Enable Row Level Security on all tables and create appropriate policies.216```217218A Claude Code teljes migraciot general:219220```sql221-- Create enum types222CREATE TYPE task_status AS ENUM ('todo', 'in_progress', 'done');223CREATE TYPE task_priority AS ENUM ('low', 'medium', 'high');224225-- Profiles table226CREATE TABLE profiles (227 id UUID REFERENCES auth.users ON DELETE CASCADE PRIMARY KEY,228 username TEXT UNIQUE,229 avatar_url TEXT,230 created_at TIMESTAMPTZ DEFAULT NOW()231);232233-- Projects table234CREATE TABLE projects (235 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,236 name TEXT NOT NULL,237 description TEXT,238 owner_id UUID REFERENCES profiles(id) ON DELETE CASCADE NOT NULL,239 created_at TIMESTAMPTZ DEFAULT NOW()240);241242-- Tasks table243CREATE TABLE tasks (244 id UUID DEFAULT gen_random_uuid() PRIMARY KEY,245 title TEXT NOT NULL,246 description TEXT,247 status task_status DEFAULT 'todo',248 priority task_priority DEFAULT 'medium',249 project_id UUID REFERENCES projects(id) ON DELETE CASCADE NOT NULL,250 assigned_to UUID REFERENCES profiles(id),251 due_date TIMESTAMPTZ,252 created_at TIMESTAMPTZ DEFAULT NOW(),253 updated_at TIMESTAMPTZ DEFAULT NOW()254);255256-- Enable RLS257ALTER TABLE profiles ENABLE ROW LEVEL SECURITY;258ALTER TABLE projects ENABLE ROW LEVEL SECURITY;259ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;260261-- Profiles policies262CREATE POLICY "Users can view own profile"263 ON profiles FOR SELECT USING (auth.uid() = id);264CREATE POLICY "Users can update own profile"265 ON profiles FOR UPDATE USING (auth.uid() = id);266267-- Projects policies268CREATE POLICY "Users can view own projects"269 ON projects FOR SELECT USING (auth.uid() = owner_id);270CREATE POLICY "Users can create projects"271 ON projects FOR INSERT WITH CHECK (auth.uid() = owner_id);272CREATE POLICY "Users can update own projects"273 ON projects FOR UPDATE USING (auth.uid() = owner_id);274CREATE POLICY "Users can delete own projects"275 ON projects FOR DELETE USING (auth.uid() = owner_id);276277-- Tasks policies278CREATE POLICY "Users can view tasks in their projects"279 ON tasks FOR SELECT USING (280 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())281 );282CREATE POLICY "Users can create tasks in their projects"283 ON tasks FOR INSERT WITH CHECK (284 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())285 );286CREATE POLICY "Users can update tasks in their projects"287 ON tasks FOR UPDATE USING (288 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())289 );290CREATE POLICY "Users can delete tasks in their projects"291 ON tasks FOR DELETE USING (292 project_id IN (SELECT id FROM projects WHERE owner_id = auth.uid())293 );294```295296Ezt a migraciot kozvetlenul a Supabase vezrlopultrol (SQL Editor) vagy a CLI-n keresztul futtathatod.297298### TypeScript tipusok generalasa299300```301You: Generate TypeScript types from the Supabase database and save them to src/types/database.ts302```303304```bash305npx supabase gen types typescript --project-id YOUR_PROJECT_ID > src/types/database.ts306```307308### A felhasznaloi felulet epitese309310Most jon a vibecoding legerosebb resze. Adj magas szintu utasitasokat a Claude Code-nak:311312```313You: Create a dashboard page for the task management app with:3143151. Sidebar with navigation between projects3162. Kanban view with 3 columns (Todo, In Progress, Done) with drag & drop3173. Modal to create/edit tasks3184. Header with user avatar and logout3195. Modern design with shadcn/ui and Tailwind320321Use data from Supabase with React Server Components where possible322and Client Components only where interactivity is needed.323```324325A Claude Code felepiti a teljes feluletet, komponensrol komponensre.326327### Hitlesites hozzaadasa328329```330You: Add a complete authentication system with:3313321. Login page with email/password and GitHub login3332. Registration page3343. Middleware to protect authenticated routes3354. Automatic redirect for unauthenticated users3365. Automatic profile creation after registration337```338339A Claude Code konfiguralja a Next.js middleware-t es a hitelesitesi oldalakat:340341```typescript342// src/middleware.ts343import { createServerClient } from '@supabase/ssr';344import { NextResponse, type NextRequest } from 'next/server';345346export async function middleware(request: NextRequest) {347 let supabaseResponse = NextResponse.next({ request });348349 const supabase = createServerClient(350 process.env.NEXT_PUBLIC_SUPABASE_URL!,351 process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!,352 {353 cookies: {354 getAll() {355 return request.cookies.getAll();356 },357 setAll(cookiesToSet) {358 cookiesToSet.forEach(({ name, value }) =>359 request.cookies.set(name, value)360 );361 supabaseResponse = NextResponse.next({ request });362 cookiesToSet.forEach(({ name, value, options }) =>363 supabaseResponse.cookies.set(name, value, options)364 );365 },366 },367 }368 );369370 const { data: { user } } = await supabase.auth.getUser();371372 if (!user && !request.nextUrl.pathname.startsWith('/auth')) {373 const url = request.nextUrl.clone();374 url.pathname = '/auth/login';375 return NextResponse.redirect(url);376 }377378 return supabaseResponse;379}380381export const config = {382 matcher: ['/((?!_next/static|_next/image|favicon.ico|auth).*)'],383};384```385386## 5. Halado Vibecoding mintak387388### Iterativ prompting389390A hatekony vibecoding titka az **iteracio**. Ne probald mindent egyetlen promptban leirni. Halaj lepesrol lepesre:391392```3931. lepes: "Create the base layout with header and sidebar"3942. lepes: "Add the project list in the sidebar with a button to create new ones"3953. lepes: "Create the Kanban view in the main area"3964. lepes: "Add drag & drop between columns"3975. lepes: "Implement the modal to create new tasks"3986. lepes: "Add toast notifications for user feedback"399```400401> **Tipp:** Minel specifikasabb es kontextualizaltabb a prompt, annal jobb az eredmeny. A Claude Code hozzafer a teljes kodbazishoz, igy koherensen integrálhatja az uj funkcionalitasokat.402403### Hibakezelés404405Ha valami nem mukodik (es elofordul), egyszeruen mondd:406407```408You: I'm getting this error in the console: "TypeError: Cannot read property409'map' of undefined" in the TaskList component. Fix it.410```411412A Claude Code elemzi a kodot, azonositja a problemat es javitja.413414### Refaktoralas AI-val415416```417You: The Dashboard component has become too large. Split it into smaller,418reusable components while maintaining the same functionality.419```420421### Teszteles422423```424You: Add tests with Vitest for utility functions and Playwright tests for425the authentication and task creation flow.426```427428## 6. Telepites Vercelre: A kodtol a vilgaig429430### 1. lepes: Push GitHubra431432```433You: Create an appropriate .gitignore, commit everything, and push to a new434GitHub repository called "my-demo-app".435```436437```bash438git add .439git commit -m "feat: complete task management demo"440gh repo create my-demo-app --public --push --source=.441```442443### 2. lepes: Csatlakoztasd a Vercelt4444451. Menj a [vercel.com](https://vercel.com) oldalra es kattints az "Add New Project"-re.4462. Importald az imnt letrehozott GitHub repozitorit.4473. Add hozza a kornyezeti valtozokat:448 - `NEXT_PUBLIC_SUPABASE_URL`449 - `NEXT_PUBLIC_SUPABASE_ANON_KEY`4504. Kattints a "Deploy"-ra.451452```mermaid453flowchart LR454 A[GitHub Push] --> B[Vercel Build]455 B --> C[Automatic Deploy]456 C --> D[Public URL]457 D --> E[Global CDN]458```459460### 3. lepes: Egyeni domain konfigurálása (Opcionalis)461462A Vercel ingyenes URL-t biztosit, mint peldaul `my-demo-app.vercel.app`. Egyeni domainhoz:463464```465You: Add the configuration for a custom domain in vercel.json466```467468### Elonezeti telepitesek469470Minden alkalommal, amikor Pull Requestet nyitsz GitHubon, a Vercel automatikusan letrehoz egy **elonezeti telepitést** egyedi URL-lel. Tokeletes a valtozasok bemuatasahoz merge elott.471472## 7. Optimalizaciok a demodhoz473474### Teljesitmeny475476```477You: Optimize the app's performance:4781. Add loading states with Suspense and skeletons4792. Implement caching with Next.js unstable_cache4803. Optimize images with next/image4814. Add SEO metadata for each page482```483484### Realtime Supabase-szel485486Egy funkcio, ami mindig lenyugoz a demokban, az a **realtime**:487488```489You: Add realtime synchronization for tasks using Supabase Realtime.490When a user updates a task, all other users should see the change491in real time without refreshing.492```493494```typescript495'use client';496497import { useEffect, useState } from 'react';498import { createClient } from '@/lib/supabase/client';499import type { Task } from '@/types/database';500501export function useRealtimeTasks(projectId: string) {502 const [tasks, setTasks] = useState<Task[]>([]);503 const supabase = createClient();504505 useEffect(() => {506 const channel = supabase507 .channel('tasks-changes')508 .on(509 'postgres_changes',510 {511 event: '*',512 schema: 'public',513 table: 'tasks',514 filter: `project_id=eq.${projectId}`,515 },516 (payload) => {517 if (payload.eventType === 'INSERT') {518 setTasks((prev) => [...prev, payload.new as Task]);519 } else if (payload.eventType === 'UPDATE') {520 setTasks((prev) =>521 prev.map((t) =>522 t.id === payload.new.id ? (payload.new as Task) : t523 )524 );525 } else if (payload.eventType === 'DELETE') {526 setTasks((prev) =>527 prev.filter((t) => t.id !== payload.old.id)528 );529 }530 }531 )532 .subscribe();533534 return () => {535 supabase.removeChannel(channel);536 };537 }, [projectId, supabase]);538539 return tasks;540}541```542543### Sotet mod544545```546You: Add dark mode support with a toggle in the header.547Use Tailwind dark classes and save the preference in localStorage.548```549550## 8. Bevalt gyakorlatok a hatekony Vibecoding-hoz551552### 1. Legy specifikus a promptjaidban553554```555❌ "Make a nice page"556✅ "Create a landing page with a hero section with a purple-blue gradient,557 a features section with 3 cards with icons, and an orange CTA button"558```559560### 2. Biztosits kontextust561562```563❌ "Add authentication"564✅ "Add authentication with Supabase Auth. The project uses Next.js 15 App565 Router with TypeScript. I want email/password login and OAuth with GitHub.566 Use the SSR pattern with @supabase/ssr"567```568569### 3. Iteralj kis lepesekben570571Ne probald mindent egyetlen promptban megepiteni. Haladj inkrementalisan:5725731. Alap elrendezes5742. Egyszerre egy funkcio5753. Stilizalas es csiszerolas5764. Hibakezelesek5775. Teszteles578579### 4. Nezd at a generalt kodot580581A Vibecoding nem azt jelenti, hogy nem olvasod a kodot. Mindig ellenorizd:582583- **Biztonsag**: RLS szabalyzatok, input validacio, adat szantialás.584- **Teljesitmeny**: N+1 lekerdezsek, felesleges kliens oldali komponensek.585- **Bevalt gyakorlatok**: projekt struktura, elnevezesi konvenciok.586587### 5. Hasznald a Gitet strategikusa588589```590You: Commit the changes with a descriptive message after each completed feature.591```592593Ez lehetove teszi a visszaallast, ha valami rosszul sil.594595## 9. Koltsegek: Tenyleg minden ingyenes?596597Ime a koltsegek reszletezse minden szolgaltatashoz:598599| Szolgaltatas | Ingyenes csomag | Mikor fizetsz |600|---------|-----------|-------------|601| **Claude Code** | Anthropic csomagot igenyel ($ 20/hotol) vagy API kulcsot | Azonnal, de az erteke hatalmas |602| **Supabase** | Nagyvonalu ingyenes szint (2 projekt, 500MB DB) | Az ingyenes hataron tul |603| **Vercel** | Ingyenes szint szemelyes projektekhez | Csapatok vagy kereskedelmi hasznalat eseten |604| **GitHub** | Ingyenes publikus es privat repokhoz | Valllalati funkciok |605606> **Megjegyzes:** A Claude Code elofizetesto vagy API krediteket igenyel, de a befektetes megterlese a fejlesztesi sebesseg szempontjabol rendkivuli. Egy demo vagy MVP eseten az osszköltseg $20 kornyeken van.607608### Ingyenes AI alternatival609610Ha a koltsegeket abszolut nullan akarod tartani, hasznalhatod:611612- **Cursor** (ingyenes szint korltozásokkal).613- **GitHub Copilot** (ingyenes diakok es nyilt forrás szamara).614- **Codeium/Windsurf** (nagylelku ingyenes szint).615616## 10. Demotol a termekig: Kovetkezo lepesek617618Amint a demod elo, igy folytasd:619620```mermaid621flowchart TD622 A[Live Demo] --> B{User Feedback}623 B --> C[Product Iteration]624 C --> D[Product-Market Fit]625 D --> E[Scaling]626 E --> F[Supabase Pro Plan]627 E --> G[Vercel Pro Plan]628 E --> H[Custom Domain]629```6306311. **Gyujts visszajelzest**: oszd meg a demod potencialis felhasznalokkal es gyujts velemenyt.6322. **Iteralj gyorsan**: hasznald a vibecoding-ot a kert valtoztatások implementalasahoz.6333. **Figyeld a metrikakat**: a Vercel Analytics es a Supabase Dashboard nellkulozhetetlen adatokat ad.6344. **Skalazz, amikor szukseges**: csak akkor valts fizetős csomagra, amikor validaltad a keresletet.635636637## Osszefoglalas638639A Vibecoding Claude Code-dal, Supabase-szel es Vercel-lel hatalmas kombinaciot jelent demok es MVP-k rekordido alatti epitésehez. Ami korabban hetekbe telt, most csupan nehany ora alatt megvalositható, meglepoen magas minosegi szinten.640641A kulcs az, hogy a vibecoding-ot a megfelelo hozzaallassal kozelitsd meg: nem arrol van szo, hogy "nem tudsz programozni", hanem arrol, hogy **felerosited a kepessegeidet** AI eszkozokkel. Minel tobbet tudsz az alapveto technologiakrol (React, SQL, hitlesites, telepites), annal hatekoynabban iranyithatod az AI agenst a kivant eredmeny fele.642643A szoftverfejlesztes jovoje itt van, es az indulas koltsege meg soha nem volt ilyen alacsony. Hozd letre a demod, validald valodi felhasznalokkal, es epitsd meg a kovetkezo nagy termeked.644645> **Ellenorzo lista az elso demodhoz:**646>647> - [x] Claude Code telepitve es konfiguraálva648> - [x] Supabase projekt letrehozva adatbazis semaval649> - [x] Next.js projekt inicializalva shadcn/ui-val650> - [x] Hitlesites konfiguralva651> - [x] Teljes CRUD implementalva652> - [x] Modern es reszponziv UI653> - [x] Telepitve a Vercelre654> - [x] Megoszthato URL keszen a visszajelzesre655
:Hogyan epits demet Claude Code-dal: Vibecoding Supabase-szel es Vercel-lellines 1-655 (END) — press q to close