Self-paced learning
Build and launch with OpenCode
Build, test and publish a useful app.
Your lessons
-
Set up OpenCode with a provider and a protected key
Install OpenCode, connect the xAI API with a protected key, prove one real request, and keep that key out of the app you will publish.
-
Open the starter app and run it locally
Create a three-file Task Tracker, serve it over HTTP, and prove that tasks persist only in this browser's localStorage.
-
Define one useful feature with acceptance criteria
Turn one user action into a FEATURE.md brief with 4–6 checkable criteria, then review an OpenCode plan before any code changes.
-
Implement, inspect the diff, and troubleshoot locally
Implement the agreed FEATURE.md, map every git diff hunk to a criterion, verify by hand, and fix the keyboard-focus defect that re-render causes.
-
Choose Cloudflare Workers or Pages
Pick Workers with static assets or Pages from current official behaviour, write a decision note, and preview locally on the matching port — without deploying yet.
-
Deploy, verify live, and submit redacted evidence
Deploy the tracker to a public https URL, keep secrets off the client (zero secrets for this app), re-run acceptance criteria live, and submit self-reported proof pending review.
Your project
Build, test and publish a useful app.
Submit the live Task Tracker you built in this module: a public https URL, a short explanation of the feature and your contribution, and the checks you ran with what you observed. Tasks stay in the visitor's browser localStorage for that origin; they are not a shared server. Do not paste API keys, .env / .dev.vars, account emails, or billing. Saving stores self-reported evidence pending review. It is not an automated pass, a certificate, or instructor approval.
Check your work
- Public https URL
The submitted URL uses https and is not localhost, a private host, or a file path. A second device can open it.
- Feature verified live
Each FEATURE.md criterion has a pass/fail and one observed result recorded against the live URL, not only localhost.
- Storage described honestly
The explanation states that tasks live in browser localStorage for that origin, are not synced, and that a reviewer starts with an empty list.
- No client secrets
No API key, token, or password appears in the URL, explanation, checks, or screenshots. This app uses zero secrets unless a real server token was set with wrangler secret put or Pages Encrypt.
- Keyboard and console
A keyboard-only pass is described, and the live console had no errors and no unexpected provider API calls.
- Evidence is self-reported
The learner treats the save as pending review: not URL-fetched, not certified, and not a claim of instructor approval.