Join the Agent Deck Discord Server!
Check out the Agent Deck community on Discord – hang out with 357 other members and enjoy free voice and text chat.
The home for AI communities. Host yours, onboard your people, and grow together.
SocialTypeScript · JavaScriptGitHub @ai-tech-communityOnlineOwner 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.
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.Read the full 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.