---
title: Site files
description: Where each of a site's files lives, and what each one is.
sidebar:
  order: 21
---

Where each of a site's files lives, and what each one is. Served over MCP as `vizitka://docs/layout`, and by `describe_vocabulary` with `topic=layout`.

The paths a site may hold: `site.json`, `layouts/<name>.vzk`, `pages/<path>.vzk`, `pages/index.vzk`, `pages/<path>/[slug].vzk`, `components/<Name>.vzk`, `locales/<language>/<file path>.json`, `<file path>.notes.md`, `tests/<name>.test.ts`, `scripts/<name>.js`, `stylesheet.css`, `importmap.json`.

| File | What it is |
| --- | --- |
| `site.json` | its edition and the fields every file reads |
| `layouts/site.vzk` | a layout, which wraps the pages |
| `pages/index.vzk` | the page at / |
| `pages/blog.vzk` | the page at /blog (so is pages/blog/index.vzk) |
| `pages/blog/[slug].vzk` | the page each row has, under /blog |
| `components/PostCard.vzk` | the component &lt;PostCard&gt; |
| `locales/uk/pages/blog.json` | the words of pages/blog.vzk in Ukrainian |
| `pages/blog.notes.md` | the owner's notes on pages/blog.vzk |
| `tests/guestbook.test.ts` | scenarios the site's pages are played by |
| `scripts/application.js` | the site's own JavaScript, by name |
| `stylesheet.css` | the site's stylesheet |
| `importmap.json` | the packages it pins from the web |
