How Zeku reads your site
Zeku has no project file of its own. Everything it knows about your site, it reads from your site, every time you open it.
Collections
Section titled “Collections”Zeku reads src/content.config.ts (or .js, .mjs, or .mts) and offers every collection defined there. For each one, it uses:
- the loader’s
basefolder, so a collection can live anywhere, even inside another collection’s folder - the schema, for the fields each entry has
- the loader pattern, to see whether the collection accepts
.mdx
A collection that loads a single data file with file() isn’t shown, since it has no posts to write.
Field types
Section titled “Field types”Astro writes a JSON schema for each collection to .astro/collections/ whenever astro sync or astro dev runs. Zeku reads those files for exact field types, including which fields are required, and reads your config for the two helpers the JSON loses: image() and reference().
Zeku shows each entry’s URL on the dashboard, uses it for the site preview and the SEO audit, and writes it when you link to the entry. It works the URL out the way Astro does:
- It finds the dynamic route in
src/pagesthat renders the collection, such assrc/pages/blog/[...slug].astro, for the part before the entry. - For the entry itself, a
slugfield in the frontmatter wins, used exactly as written. - Otherwise it takes the file’s path inside the collection, drops the extension, and slugifies each part the way Astro does, so
My Post.mdbecomesmy-postandtrip/index.mdbecomestrip.
A collection with no route of its own has no URL in Zeku either, since your site doesn’t publish its entries as pages. A collection whose loader has its own generateId function keeps the file path as written, since Zeku can’t run that function.
The dashboard’s collections
Section titled “The dashboard’s collections”Every collection shows on the dashboard, with one exception: a collection that has no route of its own and lives inside another collection’s folder starts hidden, because it’s a detail of that collection rather than something you browse. Show or hide any collection in Settings > Content.
What Zeku stores in your project
Section titled “What Zeku stores in your project”Choices that describe the project, not your computer, go in a .zeku folder inside the folder Zeku opened, usually your content folder:
| File | Holds |
|---|---|
.zeku/config.json |
Which collections and folders you’ve shown or hidden |
.zeku/types.json |
Field types you’ve set by hand |
.zeku/snippets/ |
CSS snippets |
Zeku creates these only when you change one of those choices, writes them the same way on every computer so they merge cleanly, and never puts anything specific to your machine in them. Commit the folder, and the choices follow the project.