Test environment

Skip to content
← Self-paced learning

Self-paced learning

Build and launch with OpenCode

Build, test and publish a useful app.

Your lessons

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

Complete all six lessons to submit your project.