Know which files matter

Build Your First Origin Repository

Know which files matter

Start by separating the files you prepare from the files Divekit generates later. That distinction prevents a lot of beginner confusion.

At the beginning of the course, you do not need to think about every internal Divekit file.

What matters first is simpler:

  • there are setup files
  • there are generated state files

Later in the course, the relevant part of the project will look roughly like this:

vehicle-workshop/
└── .divekit/
    ├── individualization.json
    └── distributions/
        └── M0/
            ├── config.json
            ├── individuals.json
            └── remotes.json

Setup files

These files are the minimum you need to care about in the beginner workflow:

  • config.json describes one rollout
  • individualization.json defines what may vary across the distributed repositories

In the normal beginner flow:

  • config.json is created by Divekit commands such as divekit init
  • individualization.json is the file you will edit manually

Generated state files

These files are created by Divekit during distribution:

  • individuals.json records which concrete variation was selected for each UUID
  • remotes.json records which remote repositories were created

These are result files.

You do not prepare them by hand.

Member input is stored separately: Divekit saves it as a timestamped file in your user-level Divekit directory (~/.divekit/members/) — outside the project — and references it from config.json.

Why the distinction matters

A beginner mistake is to treat every JSON file as if it should be prepared manually.

The safe rule is:

  • prepare the actual input files
  • let Divekit generate the result files
  • inspect generated state instead of editing it

Check

Before moving on, make sure you can answer these questions:

Suggested answer
The setup files in this course are config.json and individualization.json.
Suggested answer
The generated state files are individuals.json and remotes.json in the distribution folder. Member input lives separately in your user-level Divekit directory (~/.divekit/members/) and is referenced from config.json.
Suggested answer
Because generated state files are not where you define the rollout. They record what Divekit already produced. Inspect them to understand what happened, then fix the real inputs such as config.json, individualization.json, or the member input.