尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Gift wish list platform — create, share, and reserve gifts without duplicates. Mobile first, zero friction for guests.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
A wishlist sharing platform — create wishlists, share them with anyone, and let people reserve gifts without spoiling the surprise.
Podaruj.me solves a universal problem: buying gifts without duplicates and awkward guessing. A user creates a wishlist for any occasion — birthday, holidays, wedding — shares a link, and guests can browse and reserve items instantly. No account required for guests. Three privacy modes let the list owner control exactly how much they see, from full transparency to complete surprise.
🎬 See it in action
🔊 Unmute for English voiceover · 🇵🇱 Wersja polska查看完整 README ↗A wishlist sharing platform — create wishlists, share them with anyone, and let people reserve gifts without spoiling the surprise.
Podaruj.me solves a universal problem: buying gifts without duplicates and awkward guessing. A user creates a wishlist for any occasion — birthday, holidays, wedding — shares a link, and guests can browse and reserve items instantly. No account required for guests. Three privacy modes let the list owner control exactly how much they see, from full transparency to complete surprise.
🔊 Unmute for English voiceover · 🇵🇱 Wersja polska
https://github.com/user-attachments/assets/08b42f80-7438-4cbd-ac0a-e5829cdee67f
Three things that make this more than a CRUD app:
🔒 Privacy modes enforced at the database level — three reservation visibility tiers, including a Full Surprise mode where even the list owner can't see who reserved what
🎯 Guest-first access — no account needed to browse or reserve. One tap from a messenger link and you're in
🤖 Built through agentic orchestration — zero hand-written code, fully documented process from prompt to production (see docs/)
Gift lists sound simple — until you think about privacy. Who sees what? Can the birthday person find out what's coming? What happens when the event passes? These questions turned a "simple CRUD app" into a product with real UX depth: three privacy modes, a Full Surprise lifecycle with draft/publish/reveal stages, guest access without sign-up walls, and a celebration screen after the event.
I wanted a portfolio project that demonstrates product thinking, not just code output — something with real user flows, edge cases worth solving, and a UI polished enough to pass as a shipped product.
Built in 3 days — from concept to deployed product, using document-driven agentic orchestration.
The core differentiator. Each list has one of three reservation privacy modes, enforced server-side — not just hidden in the UI:
Full Surprise lists have a dedicated lifecycle: they start as drafts (invisible to guests), and once published, items are locked to prevent the owner from reverse-engineering reservations through edits.
Guests arrive via a shared link or QR code and can browse and reserve immediately — no sign-up, no login wall. Just enter a nickname and go. This was a deliberate UX decision: most users arrive through a messenger link on their phone, and any friction means drop-off.
@dnd-kit, plus 8 sort optionsmailto: with a pre-composed friendly messageLists aren't just static pages — they have a full lifecycle:
Full English and Polish support with a language switcher. Built with next-intl.
Passwordless authentication via Google OAuth or magic link. Profile settings with display name, avatar (synced from Google), and full account deletion with cascade cleanup.
Owner Guests
│ │
├─ Creates list │
├─ Adds items │
├─ Chooses privacy mode │
├─ Shares link / QR / email ──→│
│ ├─ Opens link (no account needed)
│ ├─ Browses items
│ ├─ Reserves with nickname
│ │
├─ Sees reservations │
│ (per privacy mode) │
├─ Event passes → list closes │
└─ Celebration + reveal 🎉 ┘
I deliberately chose to build this through document-driven agentic orchestration rather than writing code by hand. The goal was to explore and demonstrate a workflow that's becoming increasingly relevant: treating AI agents as an implementation team that you direct through structured documentation, iterative review, and precise prompts.
This isn't about avoiding code — it's about operating at a higher level of abstraction. Defining the product, validating the output, maintaining quality, and steering agents when they drift. The same skills that make a good tech lead or product engineer, applied to a new kind of toolchain.
Built in 3 days. Zero hand-written code. Full product control.
prompt.md → design.md → my review → plan.md → execution → AI code review → E2E tests → validation
(intent) (AI spec) (approve/ (AI plan) (AI agents) (iterative) (Playwright) (manual QA)
correct)
↑ │
└──────────────────────────── iterative feedback loop ───────────────────────────────────────────────┘
Each feature was built as an atomic delivery — a small, well-scoped task with a clear prompt, generated design, and execution plan. This modular approach prevents context drift and keeps AI output consistent and predictable.
Orchestrating AI agents is a distinct engineering skill. It requires product thinking to define what to build, UX intuition to evaluate whether it's good, prompt engineering to communicate what you want precisely, and quality standards to catch what's wrong. The code is agent-generated. The product vision, UX quality, and relentless iteration are mine.
📁 The full development trail — prompts, AI-generated designs, and execution plans — is documented in
docs/.
This project was deliberately built through full agentic orchestration — an experiment in pushing that workflow as far as it goes. It's great for rapid prototyping, validating product ideas, and shipping MVPs fast. For production-grade work requiring tighter control over architecture and code quality, I use a different workflow: AI pair programming with human-in-the-loop review at every step. You can see that approach in my other repositories.
I didn't make the architectural decisions — the AI agents did. But my product requirements forced non-trivial solutions:
These weren't engineering decisions I made — they were product constraints I defined that shaped the architecture.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Server Actions) |
| Language | TypeScript 5 |
| UI | React 19 |
| Styling | Tailwind CSS 4 + shadcn/ui |
| Backend & Auth | Supabase (PostgreSQL, Auth, RLS) |
| Auth Providers | Google OAuth, Magic Link |
| i18n | next-intl (EN + PL) |
| Drag & Drop | @dnd-kit |
| Testing | Playwright (E2E) |
| Hosting | Vercel |
# Clone the repository
git clone https://github.com/przemg/podaruj.me.git
cd podaruj.me
# Install dependencies
npm install
# Set up environment variables
cp .env.example .env.local
# Fill in your Supabase URL, anon key, and Google OAuth credentials
# Run the development server
npm run dev
Open http://localhost:3000.
| Variable | Description |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase anonymous key |
SUPABASE_SERVICE_ROLE_KEY | Supabase service role key (server-side only) |
NEXT_PUBLIC_BASE_URL | App base URL (e.g. http://localhost:3000) |
This project is for portfolio and educational purposes.