CrewQuery is a multilingual Next.js app for organization-based chat, document workflows, and AI-assisted collaboration. It uses Convex for the backend, Better Auth for authentication, and Google Gemini for chat/document processing.
- Next.js 16 + React 19
- Convex
- Better Auth
- next-intl for localization
- Tailwind CSS and shadcn/ui-style components
- Google Gemini
- Install dependencies.
bun install-
Make sure your local environment is configured.
-
Start the Convex backend in one terminal.
bunx convex dev- Start the Next.js app in another terminal.
bun dev- Open the app at http://localhost:3000.
Create or update .env.local with values like these:
CONVEX_DEPLOYMENT=dev:your-convex-deployment
NEXT_PUBLIC_CONVEX_URL=https://your-project.convex.cloud
NEXT_PUBLIC_CONVEX_SITE_URL=https://your-project.convex.site
NEXT_PUBLIC_SITE_URL=http://localhost:3000
SITE_URL=http://localhost:3000
GEMINI_API_KEY=your-gemini-api-keyNotes:
CONVEX_DEPLOYMENTis used byconvex dev.NEXT_PUBLIC_CONVEX_URLis used by the client Convex provider and auth helpers.NEXT_PUBLIC_CONVEX_SITE_URLmust point to the.convex.siteendpoint.NEXT_PUBLIC_SITE_URLis the public app URL used by the client.SITE_URLis used by the Better Auth server configuration.GEMINI_API_KEYis required for Gemini-backed features.
bun dev
bun run build
bun run lint
bunx convex dev- Locale-aware landing, sign-in, and sign-up pages.
- Organization management, including creation, members, channels, and data views.
- Chat pages backed by Convex streaming.
- Invitation-based organization joining.
- Better Auth integration with Convex-backed session handling.
/{locale}: landing page/{locale}/signin: sign in/{locale}/signup: sign up/{locale}/organization: organization list/{locale}/organization/new: create an organization/{locale}/organization/{slug}: organization overview/{locale}/organization/{slug}/channels: channel management/{locale}/organization/{slug}/data: document and data management/{locale}/organization/{slug}/members: team members/{locale}/chat/{slug}: organization chat/{locale}/invite/{invitationId}: invitation acceptance
Supported locales are de, en, fr, nl, pl, and tr.
- If auth fails, confirm
SITE_URLandNEXT_PUBLIC_CONVEX_SITE_URLare both set and that the Convex site URL ends in.convex.site. - If chat or document features fail, check that
GEMINI_API_KEYis present. - If Convex types or generated files look stale, rerun
bunx convex dev.