Skip to content

Tutorial standards

Barrie Byron edited this page Mar 12, 2024 · 8 revisions

Tutorials are learning-oriented docs that provide a hands-on walk-through of use cases that teach developers how to achieve a defined goal.

Tutorials are a series of guided steps for a zkApp developer to complete a specific project so that a beginner can achieve a goal using the product.

Dependencies

Each tutorial is tested for a specific version.

Test and verify the o1js version that is defined in the package.json file.

For example, the package.json file for the Hello World tutorial:

"peerDependencies": {
    "o1js": "0.16.*"
  }

Be sure to link to tutorials landing page for the requisites.

Example code

Create runnable example code for each tutorial in https://github.com/o1-labs/docs2/tree/main/examples/zkapps.

For the future, we want to have a consistent entry point for each tutorial, like an index.ts file.

README

Create a README file for each tutorial in the examples folder https://github.com/o1-labs/docs2/tree/main/examples/zkapps.

For README standards, use existing examples as models.

For README guidance, see https://github.com/o1-labs/docs2/wiki/README-files.

Audience

Write for the zkApp developer audience using the second person pronoun "you":

This Hello World tutorial helps you get started with o1JS, zkApps, and programming with zero-knowledge proofs. In this step-by-step tutorial, you learn to code a zkApp from start to finish.

Use second person: "you" rather than "we."

Present tense

Use present tense rather than future tense.

Active voice

Use active voice to make clear who's performing the action.

Code blocks

Code blocks must be valid TypeScript code. See Tutorial Runner. The line numbers are being stripped from the docs, so we don't want line number dependencies in tutorial runner.

See Markdown Syntax.

Examples

Each tutorial requires a working example in https://github.com/o1-labs/docs2/tree/main/examples/zkapps.