Cabinet des Alpettes is a neuropsychology and psychotherapy practice. Being two different domain with different offerings, the practice needed a flexible website that allowed her to add a page, edit some content, change some blocks, and keep here website up-to-date without a developer.
The most used solution in the market is WordPress. We refused to use it. Why? I think it deserves it’s own blog post, but basically we think in 2026 there are much better alternatives. Astro combined with Directus in that case was the perfect fit.
A page is a document, and some of its nodes are pointers
The content model keeps a page as a rich-text document. Most of its nodes are what you would expect — paragraphs, headings, lists — and they are edited the way anyone edits text. The twist is we went further and added a dynamic block system that allows you to add any block you want, without any code.
const relationBlockSchema = z.object({
type: z.literal("relation-block"),
attrs: z.object({
id: z.string().uuid(),
junction: z.string(),
collection: z.string(),
}),
});
const contentSchema = z.object({
type: z.literal("doc"),
content: z.array(relationBlockSchema),
});A relation-block node holds no content of its own. It names a collection and an id, and
sits in the document at the position the writer put it. The page is the document, read top
to bottom.
This is where Directus shows its power: each blocks is nothing more than another collection. Each collection holds the content for a block. Theses blocks can take any shapes and complexity. we then decide from that content how we render it in Astro. The fooprint is minimal because we only need to define the block types and their schemas, not how they are rendered by the same system that serves all other blocks.
The only limit is your imagination
There site ships with eight block types: hero, feature grid, call to action, gallery, FAQ, form, service type, and rich text. The practicer then decides which blocks to use on each page and can fully customize the content and layout of each block.
The FAQ block earns a mention. It’s a complete research engine that allows the practice to add, edit, and delete questions and answers as needed. But more importantly, it’s possible to categorize and add labels to questions and answers. It supports different layouts and styles, so the practice can choose the best fit for their needs.






Editing on the page, not in a tree
Every block renders a data-directus attribute naming its collection, its item and the
exact fields that region shows. With visual editing on, clicking a heading opens that
heading’s field. Nobody has to find the page in a tree, then the block in a list, then the
field in a form.

Preview is the one route on the site that is not prerendered. It reads draft content with
the editor’s own session token, sets noindex, and returns a 404 in production when there
is no token at all. Draft work is visible to the person writing it and to nobody else.
It’s not a silver bullet
We often reach for Astro & Directus when the customer needs flexible content management at minimal overhead. It works well for many use cases. Yet it does not solve every problem. If you need a full-featured CMS that is tightly coupled with external sources, if you need a tailored content management system, we prefer to reach for Sanity.
If you want to fidn out more about how we use Sanity to build extremly flexible content management systems, take a look at our Autocorner Story