Turn shareable links into structured GitHub issues without requiring reporters to have GitHub accounts. Built with Next.js (Vercel), Convex, and OpenAI. Email is out of scope in MVP.
git clone https://github.com/spenceriam/Koustos.git
cd Koustosnpm installCreate environment variables in Vercel/Convex (or a local .env for development):
CONVEX_DEPLOYMENT=
OPENAI_API_KEY=
# RESEND_API_KEY not required in MVP
ENCRYPTION_KEY= # 32-byte hex for AES-256
NEXT_PUBLIC_URL=https://koustos.dev
# Optional if using Convex HTTP client via URL (server-side):
# CONVEX_URL= https://<deployment>.convex.cloudYou can copy .env.example to .env locally and fill in the values.
# Terminal A (Convex)
# npx convex dev
# Terminal B (Next.js)
# npm run devSet these in Convex so functions can run:
npx convex env set ENCRYPTION_KEY <64-hex>
npx convex env set OPENAI_API_KEY <openai-key>
# no email env required
npx convex env set NEXT_PUBLIC_URL https://koustos.devGenerate a 32-byte hex key:
openssl rand -hex 32
# or
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"- No emojis in UI, emails, or issue titles/bodies.
- Public GitHub repos only; English-only AI prompts.
- Rate limit: 10 reports/hour per project (server-side in Convex).
- Visit
/setupand provide:- GitHub Personal Access Token (public_repo scope)
- Repository in
owner/repoformat - Maintainer email
- After setup, copy the generated URL
koustos.dev/f/{slug}and share it. - Reporters open the URL, submit a description, and answer exactly two AI follow-up questions.
- The system formats the report, creates a GitHub issue, and emails both the maintainer and the reporter (no emojis).
- Database: Convex (encrypted PAT at rest)
- Hosting: Vercel (Next.js 14)
- AI: OpenAI via official SDK
- Email: not implemented in MVP
- GitHub: REST API v3
- Rate limit: 10 reports/hour per project (enforced in Convex)
- English-only; public repositories
- See
AGENTS.mdanddocs/for architecture, flows, and guardrails
