You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The hackathon create/edit wizard is free-roam (any section reachable at any time) and validates per-section on save, but there is no aggregate validation at publish/submit time. An organizer can land on Review & Publish with sections that are empty or invalid and only discover the problem when the publish call fails server-side, with no clear pointer to what's wrong.
Current state (verified 2026-06-15)
Per-section save validation exists (each section validates its own zod schema when saved).
Publish runs through hooks/use-hackathon-publish.ts (the escrow/publish flow) with no pre-publish full-draft validation gate.
No aggregate validator exists — grep for validateAllSteps / validateForPublish / getMissingSections in lib/utils/hackathon-step-validation.ts, hooks/use-hackathon-step-save.ts, hooks/use-hackathon-publish.ts returns nothing.
Proposed
Add a submit-time validator in lib/utils/hackathon-step-validation.ts that runs every section's schema against the saved draft and returns a per-section result: valid | empty | invalid (+ the specific errors).
Render a Review & Publish checklist: list each section with its status and a deep-link (?section=...) that jumps straight to the section needing fixes.
Block publish until all required sections are valid (the checklist is the gate, not a raw server error).
Clicking Publish with a missing/invalid section shows the checklist and blocks submission.
Each checklist item deep-links to the correct section.
A fully-valid draft publishes with no checklist blockers.
Notes
Purely frontend — no backend or env dependency. This is the remaining half of the "save-time + submit-time validation" wizard work (save-time already exists).
Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.
Create Plan
🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your .coderabbit.yaml:
issue_enrichment:
auto_enrich:
enabled: false
💬 Have feedback or questions? Drop into our discord!
Hi, I'd like to work on this issue, I have experience with the relevant technologies and ecosystem and have previously contributed to similar issues. I’m comfortable working with the codebase and familiar with standard practices.
Activity
linear commentedon Jun 15, 2026
BOU-244
coderabbitai commentedon Jun 15, 2026
🔗 Related PRs
#430 - Submission page [merged]
#443 - feat: Enforce Submission Requirements (requireGithub, requireDemoVideo, requireOtherLinks) [merged]
#451 - UI fixes [merged]
#547 - fix(submissions): improve link validation UX, banner display, and error toasts [merged]
#586 - fix(submissions): unbreak submission detail page + publish hackathon recap [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand to generate an implementation plan and prompts that you can use with your favorite coding assistant.🧪 Issue enrichment is currently in open beta.
You can configure auto-planning by selecting labels in the issue_enrichment configuration.
To disable automatic issue enrichment, add the following to your
.coderabbit.yaml:💬 Have feedback or questions? Drop into our discord!
Idrhas commentedon Jun 15, 2026
Hi, I'd like to work on this issue, I have experience with the relevant technologies and ecosystem and have previously contributed to similar issues. I’m comfortable working with the codebase and familiar with standard practices.
Senorespecial commentedon Jun 15, 2026
i would love to work on this issue, please me,
leocagli commentedon Jun 23, 2026
This looks like something I can tackle effectively. Please assign me!