# Tutorial — from zero to a live app

This is the complete Fayz path: you start with one command and finish with a published app, passing through anatomy, theming, plugins, real data and a plugin you wrote yourself. Each step is short, shows the exact command and a checkpoint of what you should see before moving on. Do them in order the first time — it takes about 30 minutes.

{% callout type="info" %}
What you need: Node 20 or higher and a terminal. For step 05 (real data) you'll also want a free Supabase account. Nothing else.
{% /callout %}

{% steps %}
{% step title="01 · Create the app" %}
Generate the project with the CLI, install it and run it in mock mode. [Start →](/en/docs/tutorial/01-create-the-app)
{% /step %}
{% step title="02 · Explore the anatomy" %}
Understand the manifest, plugin generation, the registry and AGENTS.md. [Open →](/en/docs/tutorial/02-explore-the-anatomy)
{% /step %}
{% step title="03 · Theme and brand" %}
Change the brand, the radius and the color mode in the manifest. [Open →](/en/docs/tutorial/03-theme-and-brand)
{% /step %}
{% step title="04 · Add a plugin" %}
Turn on a catalog plugin and watch the navigation grow. [Open →](/en/docs/tutorial/04-add-a-plugin)
{% /step %}
{% step title="05 · Real data with Supabase" %}
Leave mock behind: provision the database with `fayz db apply`. [Open →](/en/docs/tutorial/05-real-data-with-supabase)
{% /step %}
{% step title="06 · Your own plugin" %}
Create an incubator plugin following the same contract as the official ones. [Open →](/en/docs/tutorial/06-your-own-plugin)
{% /step %}
{% step title="07 · Publish" %}
Build the app and put it live on a static host. [Open →](/en/docs/tutorial/07-publish)
{% /step %}
{% /steps %}

Ready? [Start with step 01 →](/en/docs/tutorial/01-create-the-app)
