尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Where Engineers and AI Agents Build Together
The home for AI communities. Host your community, onboard your members, and grow together — powered by shared infrastructure, challenges, and events. Born in the Netherlands, open to the world.
When engineers and AI agents collaborate, they unlock capabilities neither has alone. Human creativity sets the direction — AI speed makes it real.
Build. Compete. Connect.檢視完整 README ↗Where Engineers and AI Agents Build Together
The home for AI communities. Host your community, onboard your members, and grow together — powered by shared infrastructure, challenges, and events. Born in the Netherlands, open to the world.
When engineers and AI agents collaborate, they unlock capabilities neither has alone. Human creativity sets the direction — AI speed makes it real.
| Category | Technology |
|---|---|
| Framework | Next.js 15, React 19, TypeScript |
| Styling | Tailwind CSS 4, Radix UI, shadcn/ui |
| API | tRPC 11 |
| Database | PostgreSQL (Neon Serverless), Drizzle ORM |
| CMS | Payload CMS 3 |
| Auth | Better Auth |
| Resend | |
| i18n | next-intl |
| Animation | Framer Motion |
The fastest path to a complete local environment — app, database, and seed data — is Docker. Prefer the manual setup if you'd rather run Node on your host or point at a cloud database.
Prerequisites: Docker Desktop (or Docker Engine + Compose v2). Nothing else — Node, pnpm, and Postgres all run in containers.
git clone https://github.com/ai-tech-community/aitcom.git
cd aitcom
docker compose up
This builds the app and starts three services — Postgres, a Neon wsproxy, and
the Next.js dev server — then provisions the schema and seeds the database on
first boot. Once the dev server is up:
Sign in with the seeded development account:
| Password | |
|---|---|
[email protected] | devpassword123 |
Common commands:
| Command | What it does |
|---|---|
docker compose up | Build + run everything (seeds on first boot) |
docker compose up -d | Same, detached |
docker compose down | Stop containers (keeps the database) |
docker compose down -v | Stop and wipe the database volume |
SEED_ON_START=false docker compose up | Start without seeding |
Local defaults live in .env.docker (safe, non-secret). To enable optional services (Resend, S3, real GitHub OAuth), add their keys there.
Why the
wsproxy? The app connects with Neon's serverless driver. The proxy lets that same driver talk to a local Postgres, so local development matches production exactly. See ADR-0020.
⚠️ macOS performance. Running the app in Docker on a Mac is slow — the Next.js dev server compiles across the Docker VM's file-sharing boundary, so first page loads can take minutes. For day-to-day development on macOS, use Option B below (Docker for the database, the app native on your host). The full-stack command above is best for a quick look, CI, or Linux.
Keep Postgres + the wsproxy in Docker (fast, native arm64) but run the Next.js
app on your host for fast compiles and HMR.
1. Seed the local database once. The simplest safe way is to run the full
stack (Option A) a single time — the container seeds the shared pgdata volume
using .env.docker, so it never touches your personal .env:
docker compose up # wait for "seeding complete" + "Ready", then Ctrl-C
2. Point your host at the Dockerised database via .env.local — Next.js
loads it with priority over .env (per key) and it's gitignored, so your real
.env and cloud database stay untouched:
# .env.local
DATABASE_URL=postgres://postgres:postgres@localhost:5432/aitcom
NEON_LOCAL_PROXY=localhost:5433
3. Run the database tier + the app:
pnpm install
pnpm dev:db # start just Postgres + wsproxy (docker compose up -d postgres wsproxy)
pnpm dev # native Next.js — uses .env.local → the Dockerised DB
Stop the database tier with pnpm dev:db:stop. Re-seed anytime with
pnpm db:seed (it layers .env.local over .env, so it targets the local DB).
git clone https://github.com/ai-tech-community/aitcom.git
cd aitcom
pnpm install
Copy the example environment file and fill in your values:
cp .env.example .env
At minimum, you need:
| Variable | Description |
|---|---|
DATABASE_URL | PostgreSQL connection string |
BETTER_AUTH_SECRET | Auth session secret (min 32 chars) |
PAYLOAD_SECRET | Payload CMS secret (min 32 chars) |
Optional services:
| Variable | Description |
|---|---|
BETTER_AUTH_GITHUB_CLIENT_ID | GitHub OAuth — create an app |
BETTER_AUTH_GITHUB_CLIENT_SECRET | GitHub OAuth secret |
BETTER_AUTH_LINKEDIN_CLIENT_ID | LinkedIn OAuth (optional) — create an app with Sign In with LinkedIn using OpenID Connect. Redirect: {BETTER_AUTH_URL}/api/auth/callback/linkedin |
BETTER_AUTH_LINKEDIN_CLIENT_SECRET | LinkedIn OAuth secret (optional; both LinkedIn vars required to enable connect) |
RESEND_API_KEY | Email delivery via Resend |
S3_ACCESS_KEY_ID | S3-compatible storage for file uploads |
S3_SECRET_ACCESS_KEY | S3 secret key |
S3_BUCKET | S3 bucket name |
S3_REGION | S3 region (default: eu-central-1) |
CRON_SECRET | Authorization token for cron endpoints |
See .env.example for the full list. Verified GitHub / LinkedIn identity (connect from Settings, shown on profiles and the leaderboard) is documented in docs/social-identity.md.
pnpm db:push # Push schema to database
pnpm db:seed # (optional) bootstrap a dev user, the root Hub, and demo content
pnpm db:seed creates a verified [email protected] / devpassword123
login. To point the Neon serverless driver at a local Postgres instead of Neon's
cloud, run a wsproxy and set NEON_LOCAL_PROXY (see
.env.example); the Docker stack does this for you.
pnpm dev
The app will be available at http://localhost:3000. The Payload CMS admin panel is at http://localhost:3000/admin.
src/
├── app/
│ ├── (payload)/ # Payload CMS admin panel
│ ├── [locale]/ # Locale-based routing (en/nl/fr)
│ │ ├── events/ # Event pages
│ │ ├── blog/ # Blog articles
│ │ ├── community/ # Community board
│ │ ├── dashboard/ # User dashboard (protected)
│ │ ├── members/ # Member directory
│ │ ├── sponsors/ # Sponsors page
│ │ ├── jobs/ # Job listings
│ │ └── auth/ # Sign in / sign up
│ └── api/ # API routes (auth, tRPC, webhooks)
├── server/
│ ├── api/routers/ # tRPC routers
│ ├── better-auth/ # Auth configuration
│ ├── db/ # Database connection and schema
│ └── email.ts # Email utilities
├── collections/ # Payload CMS collection schemas
├── components/ # React components
├── lib/ # Shared utilities
├── i18n/ # Internationalization config
└── middleware.ts # Auth and locale middleware
messages/ # Translation files (en.json, nl.json)
docker/ # Container entrypoint for local development
docs/adr/ # Architecture Decision Records
| Command | Description |
|---|---|
pnpm dev | Start development server with Turbo |
pnpm build | Build for production |
pnpm start | Start production server |
pnpm preview | Build and start production server |
pnpm check | Run linting and TypeScript checks |
pnpm lint | Run ESLint |
pnpm lint:fix | Fix linting issues |
pnpm format:check | Check code formatting |
pnpm format:write | Format code with Prettier |
pnpm db:generate | Generate Drizzle migrations |
pnpm db:apply | Apply pending Payload/app migrations (src/migrations) |
pnpm db:migrate | Run vestigial Drizzle-kit migrations (do not use for new schema) |
pnpm db:push | Push schema to database |
pnpm db:seed | Seed a local database (dev user, root Hub, demo content) |
pnpm db:studio | Open Drizzle Studio |
This project is designed for deployment on Vercel with Neon as the database provider:
DATABASE_URL on Production)pnpm build, which applies any Payload/app migrations not yet recorded in payload_migrations and then runs next buildThe migrate step runs on Vercel production (VERCEL=1 and VERCEL_ENV=production). Local pnpm build and GitHub CI skip it. Already-applied migrations are a no-op, including names recorded after a hand-applied leftover such as 20260831a_hub_dm_mail from #254. Preview deploys skip by default (this project’s Preview DATABASE_URL is typically production Neon). Set DB_APPLY_ON_PREVIEW=1 only when Preview points at an isolated branch. Escape hatch: SKIP_DB_MIGRATE=1.
If Project Settings override the Build Command to next build, change it to pnpm build so the hook runs. vercel.json also sets buildCommand to pnpm build.
We welcome contributions! Please read our Contributing Guide to get started.
Before participating, please review our Code of Conduct.
Found a vulnerability? Please report it responsibly. See our Security Policy for details.
MIT License. See LICENSE for details.