Project Info

Lumixia Brief

Devpost

Inspiration

Every founder, PM, and agency team knows the moment: someone drops a one-line idea into a doc — "build me a dashboard for X" — and everyone downstream has to guess what it actually means. AI tools make this worse, not better. Feed a vague prompt to a generator and you get a polished-looking output built entirely on invented assumptions nobody signed off on. Rework follows. We wanted the opposite of "generate first, ask questions never." Lumixia Brief starts from the belief that a good brief isn't written, it's interviewed into existence — one adaptive question at a time, until the team can see exactly what's known, what's assumed, and what still needs a human decision.

What it does

Lumixia Brief turns a deliberately vague project idea into a reviewable, versioned one-page brief: Enter a rough idea. Answer 5–12 adaptive questions, one at a time — never while typing, only on submit. Watch confidence build across eight dimensions: Problem, Audience, Outcome, Scope, Constraints, Timeline, Risks, and Success criteria. Review a structured brief plus an "Alignment Improvement" summary showing what got clarified along the way. Reject any section for a focused follow-up question, or approve an immutable, versioned snapshot. Sync the approved version to a Notion page, idempotently — retrying never creates a duplicate. The model (GPT-5.6) proposes facts, assumptions, contradictions, and dimension assessments. It never decides. The server independently calculates the confidence score, enforces stop rules, and owns every workflow transition — so the process stays explainable and testable, not a black box.

How we built it

Frontend: React 19 + Vite, served from Vercel's CDN, with an EN/TH language switch and full desktop/mobile support. Backend: A single Express app running as one Vercel Fluid Compute function, with strict Zod contracts shared between client and server. Auth & data: Supabase Auth (Google OAuth + mandatory TOTP/AAL2) and Supabase Postgres with forced Row-Level Security on every table — RLS checks ownership and MFA independently of the application layer. AI: OpenAI's GPT-5.6 Responses API with Structured Outputs, store:false, and strict retry rules — swappable behind a provider interface so the app can run fully mocked for development. Integrations: Per-user Notion OAuth with AES-256-GCM-encrypted tokens, and an owner-operated Codex MCP server (/api/mcp) that lets us run the entire interview through a Codex session instead of paid API calls, gated by Supabase OAuth 2.1 consent and AAL2. Ops: Sentry with full payload redaction, Docker for local Supabase/portability checks only (not the runtime), GitHub Actions running format/lint/typecheck/unit/UI/RLS/E2E/audit/SBOM/secret-scan gates on every PR. Codex was our pair programmer for nearly the entire build — scaffolding the app, implementing the confidence engine, writing the RLS policies, and generating the test suite — with every milestone logged in a Build Ledger and every architectural decision written up as an ADR.

Challenges we ran into

No paid OpenAI credits during the build. We solved this by making the model provider fully swappable (disabled / mock / live) and building an owner-operated Codex MCP integration plus a loopback bridge so the live interview could run against a real reasoning model without ever touching OPENAI_API_KEY. Browsers don't trust HTTPS pages calling http://127.0.0.1. Our first Production rehearsal got blocked outright (ERR_BLOCKED_BY_CLIENT). We fixed it by keeping a same-origin loopback pairing popup open as a relay, so the production page never makes a mixed-scheme request directly. Auth migration mid-build. We started on a third-party auth provider and migrated to native Supabase Auth to get first-class AAL2/MFA enforcement baked into both the API and RLS — a full rip-and-replace under deadline pressure. Keeping AI honest. It was tempting to let the model's confidence claims stand on their own. Instead we built a deterministic scoring rubric (sum of dimension points / 24 × 100) entirely in server code, so the number is explainable and unit-tested, not a model's opinion.

Accomplishments we're proud of

Production fails closed: missing security or provider configuration stops the app from starting at all — no silent fallback to insecure defaults. 85%+ line/function coverage on the server, with stricter 90% gates on security-critical code, backed by unit, API, UI, Supabase RLS, and Playwright E2E suites. A fully working Codex MCP integration that lets the owner run the core product loop without spending a cent on the OpenAI API. A complete, sanitized audit trail — 22 Build Ledger milestones and 9 architecture decision records — documenting exactly what changed, why, and how it was verified. A sub-three-minute path from a vague one-line idea to an approved, Notion-synced brief.

What we learned

Separating "the model proposes, the server decides" turns AI output from a trust exercise into something you can actually test and reason about. Loopback-to-browser communication under HTTPS has real, non-obvious security constraints — an origin-bound relay window ended up being simpler and safer than trying to fight the browser's mixed-content policy. Supabase RLS plus AAL2-aware JWT claims is a powerful pattern for enforcing MFA at the data layer, not just the UI. Writing ADRs and a build ledger while iterating fast with an AI pair programmer keeps decisions traceable instead of getting lost in commit history.

What's next

Turn on the live GPT-5.6 Responses API path for all users once API budget is approved (the code path is already contract-tested and ready). Richer Notion sync — mapping brief fields to database properties, not just creating a child page. Multi-brief workspaces with team comments and shared review, not just single-owner approval. Additional languages beyond EN/TH, and a lighter mobile-first interview flow.

Analysis

Compare with all teams

View

Metric

Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.

Technology

Found in codeClaimed only
  • CSSIn code
  • ExpressIn code
  • HTMLIn code
  • JavaScriptIn code
  • OpenAIIn code
  • ReactIn code
  • SQLIn code
  • SupabaseIn code
  • TypeScriptIn code
  • DockerClaimed
  • Node.jsClaimed
  • PostgreSQLClaimed
  • VercelClaimed

9 of 13 appear in the indexed code. 4 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.

AI coding agents

  • CodexConfig

Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.

Codebase size

Source size

778 KB

Source files

173

Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.

0 stars