Back

    Insert challenge

    Paste a single challenge JSON (from an LLM or export). Use the Kill Chain schema: solution.vulnerable_lines (array of objects with id, file, match, and optionally fix_question, mitigation_comment, fix_options per line). Hints use target_id matching vulnerable_lines[].id. Saved under src/data/new_challenges/{language}/{difficulty}.json and inserted into Neon (Drizzle). Set DATABASE_URL (Neon connection string) in .env when running the dev server (npm run dev).

    Supported languages: go, java, javascript, kotlin, php, python, ruby, solidity, swift. Difficulty: easy, medium, hard. Solution must have vulnerable_lines (array with id, file, match per item; optionally fix_question, mitigation_comment, fix_options for the Fix It stepper). Each hint must have target_id matching one of vulnerable_lines[].id; if omitted, the first objective is used.

    New challenges overview

    Counts in src/data/new_challenges. Refreshes after each insert.

    Loading stats…