尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A Play Store / Web Store style web application built with Next.js 16, featuring a complete app browsing, search, and review experience.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| Animations | Framer Motion |
| Icons | Lucide React |
| Components | Radix UI (custom styled) |
| Forms | React Hook Form + Zod |
| Database | SQLite (via libSQL) |
| ORM | Prisma v7 |
| Auth | NextAuth.js (Credentials) |
/ to focus), category chip rail, segmented sort, price/rating filters, load-more paginationWarm paper canvas (paper #F3F0E8), ink type (ink #14120F) and a single tangerine signal colour (signal #F04A16, signal-ink #B4300C for text) used only for actions, ranks and focus. Dark night bands add rhythm. Type: Schibsted Grotesk (display), Geist (body), Geist Mono (labels/data). Tokens live in app/globals.css; per-app tints, category styles and copy helpers in lib/design.ts.
# Install dependencies
npm install
# Run database migrations
npx prisma migrate dev
# Seed with 38 apps, 8 categories, 5 users, 100+ reviews
npx ts-node --compiler-options '{"module":"CommonJS"}' prisma/seed.ts
# Start dev server
npm run dev
Open http://localhost:3000.
Email: [email protected]
Password: demo1234
appvault/
├── app/
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Home page (server)
│ ├── providers.tsx # SessionProvider
│ ├── components/ # Page sections (hero, featured, trending...)
│ ├── explore/ # Browse/search page
│ ├── app/[id]/ # App detail page
│ ├── category/[slug]/ # Category page
│ ├── login/ register/ # Auth pages
│ ├── profile/ # Protected profile
│ └── api/ # REST API routes
├── components/
│ ├── ui/ # Button, Badge, Card, Input, Dialog, Tabs...
│ ├── layout/ # Header, Footer, Sidebar
│ ├── apps/ # AppCard, AppGrid, FeaturedCarousel
│ ├── reviews/ # ReviewCard, StarRatingInput
│ ├── search/ # SearchBar with autocomplete
│ └── common/ # StarRating, Skeletons, EmptyState
├── lib/
│ ├── prisma.ts # Prisma client (libSQL adapter)
│ ├── auth.ts # NextAuth config
│ ├── utils.ts # Utilities (cn, formatDownloads, etc.)
│ └── validations.ts # Zod schemas
├── types/index.ts # Shared TypeScript types
├── hooks/use-toast.ts # Toast hook
└── prisma/
├── schema.prisma # DB schema
└── seed.ts # Seed script
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/apps | List with ?search, ?category, ?sort, ?price, ?minRating, ?page |
| GET | /api/apps/[id] | Single app + reviews |
| GET | /api/apps/featured | Featured apps |
| GET | /api/apps/trending | Top by downloads |
| GET | /api/categories | Categories with counts |
| POST | /api/reviews | Submit review (auth required) |
| GET | /api/reviews/user | User's reviews (auth required) |
| GET | /api/search/suggest?q= | Autocomplete |
| POST | /api/auth/register | Register |
| GET/PATCH | /api/user/profile | Profile (auth required) |
DATABASE_URL="file:./prisma/dev.db"
NEXTAUTH_SECRET="your-secret-here"
NEXTAUTH_URL="http://localhost:3000"