ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
Twenty questions, twenty watermelon types. Find the one hiding under your rind, and what it says about how you operate.
OtherPython · TypeScriptGitHub @Pansony67OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
The repo, Vercel project and URL (watermelon-mbti.vercel.app) keep the original name on purpose: Search Console verification and the submitted sitemap are tied to that URL.
A free personality quiz: twenty statements, twenty watermelon types. Next.js 16 (App Router), TypeScript, Tailwind v4, react-three-fiber, Neon Postgres.
The site works without a database; the landing count tile and the results page's stats simply don't render until one is configured.Read the full README ↗The repo, Vercel project and URL (watermelon-mbti.vercel.app) keep the original name on purpose: Search Console verification and the submitted sitemap are tied to that URL.
A free personality quiz: twenty statements, twenty watermelon types. Next.js 16 (App Router), TypeScript, Tailwind v4, react-three-fiber, Neon Postgres.
npm install
echo 'DATABASE_URL=postgres://…neon.tech/…?sslmode=require' > .env.local
echo "BETTER_AUTH_SECRET=$(openssl rand -base64 32)" >> .env.local
echo 'BETTER_AUTH_URL=http://localhost:3000' >> .env.local
npm run db:migrate # creates / updates the quiz and account tables (idempotent)
npm run dev
The site works without a database; the landing count tile and the results page's stats simply don't render until one is configured.
Optional sign-in (/sign-in) via Better Auth, stored in the same Postgres. Visitors who don't sign in are shown as Guest. Config is in lib/auth.ts, rules in lib/auth-rules.ts.
Environment variables (Vercel: Project, Settings, Environment Variables):
| Variable | Value |
|---|---|
BETTER_AUTH_SECRET | 32+ random bytes, e.g. openssl rand -base64 32. Signs session cookies; never commit it. |
BETTER_AUTH_URL | https://watermelon-mbti.vercel.app |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Google Cloud Console, APIs & Services, Credentials, OAuth client (Web). |
FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET | developers.facebook.com, your app, Facebook Login. App ID and App Secret. |
LINE_CLIENT_ID, LINE_CLIENT_SECRET | developers.line.biz, a LINE Login channel. Channel ID and Channel secret. |
Each social button appears only once both of its variables are set. When creating each app, the redirect / callback URL is https://watermelon-mbti.vercel.app/api/auth/callback/<google|facebook|line> (add the http://localhost:3000/... versions for local testing).
Passwords follow OWASP and NIST SP 800-63B-4: 15+ characters, up to 128, no composition rules, and breached passwords (Have I Been Pwned) refused. Sign-in and sign-up are rate-limited per IP.
contactEmail and jurisdiction in lib/legal.ts (Privacy and Terms read from it).DATABASE_URL in the Vercel project and run npm run db:migrate against it (again after this update: it adds the account tables).BETTER_AUTH_SECRET and BETTER_AUTH_URL in Vercel, plus the keys for any social sign-in you want (see Accounts).npm run lint
npx tsx --test lib/scoring.test.ts lib/types.test.ts
npx tsx scripts/simulate-quiz.ts # balance: share of each family and type for simulated players
npm run build
app/ routes: landing, /quiz, /quiz/results, /types, /types/[slug], /how-it-works, /about, /sign-in, /privacy, /terms, API routes under app/apicomponents/ UI, including the 3D melon (Watermelon3D.tsx) and the quiz flowlib/ questions, scoring, types, database access, auth, operator detailsscripts/db-migrate.mjs schema (runs before every build)scripts/simulate-quiz.ts balance check for the branching quiz