Configure LearnPack for delivering the package as a project
Delivery options: configure no delivery, file uploads (by MIME type), or URL submissions (via regex). You can also accept flags for CTF-style validations. ✅
Projects with no delivery
Deliver a file
Before setting up yourlearn.json, you must know which MIME types learners will be able to upload to deliver the project successfully. If you have a sample file, you can upload it to a MIME checker (e.g., mimetype.io) to retrieve the exact string.
Once you get the MIME type, specify it under the delivery.formats array:
PDF file
Flag coming from Capture the Flag
Text file with multiple MIME possibilities
Sometimes, we want to allow multiple file types. In this case, the learner can upload a file from MS Word or PDF.Files with unknown MIME type
Some rare files like Packet Tracer.pka do not have a recognized MIME type. In that case, use application/octet-stream followed by the file extension:
Heads up: this is a last resort. Prefer explicit MIME types whenever possible.
Ask students to deliver a link
The default format to deliver a project is by specifying a GitHub repository URL with the following structure:regex:
URL from docs.google.com
URL from anywhere (generic)
Leave theregex key with https:// only. The system will ensure a valid URL is provided.
Quick rubric
| Delivery type | Key(s) | Example |
|---|---|---|
| No delivery | formats: ["no_delivery"] | No submission required |
| File upload | formats: ["application/pdf"] | PDF resume |
| Multiple file types | formats: ["application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/pdf"] | DOC, DOCX, or PDF |
| Unknown type | formats: ["application/octet-stream,.pka"] | Packet Tracer .pka |
| URL link | formats: ["url"], regex: "https://github.com/" | GitHub repo |
| URL (generic) | formats: ["url"], regex: "https://" | Any https URL |
| Flags (CTF) | formats: ["flags"], quantity | One or more flags |
Tip: pair delivery settings with your grading mode to align submissions with tests and review workflows.
Next up
LearnPack Configuration
Editor, grading, and delivery settings in learn.json.
Grading LearnPack Tutorials
Incremental, isolated, and no-grading modes, plus test validation.
Telemetry Configuration
Configure batch and stream endpoints for events.
Publish a LearnPack package in the cloud
Ship via Gitpod or Codespaces with minimal setup.

