Back to projects
// 001
Project file

Endevops.be, company site and project archive

Endevops' bilingual site, with Markdown case studies and pages generated at build time.

Endevops built its own site as a bilingual editorial platform. It presents the company, its services and its projects from Markdown files processed by content-collections. Public pages, metadata and the sitemap follow the same structure.

Endevops home page with the headline We build software people actually enjoy using
Client
Endevops
Sector
Company website
Year
2026
// 002
Project content

The context

Endevops is a software development company based in Belgium. We wanted a site that presents the company, its services and its projects without reading like a brochure. The editorial direction is deliberate: large headlines, monospace badges, numbered sections, colour accents and short animations.

The site is bilingual in French and English. URLs are localised, each page has its own metadata, and projects live in a shared archive. This page is part of that archive. It documents the site the visitor is using right now.

An editorial direction

The site does not hide its structure. Sections are numbered, badges show the type of content, and project pages reuse the same markers from one case study to the next. A visitor can move from the services page to a case study without losing the thread.

Legal pages and the privacy policy follow the same bilingual logic. The contact form is validated with Valibot on the client and the server, then sent to a Discord channel through a webhook. Traffic is measured with PostHog.

Content in Markdown

Projects are Markdown files processed by content-collections. Each entry has its metadata, cover images, technologies and link. Project pages are generated from that Markdown and listed in the archive. The team can add a case study without touching the code.

The frontmatter stores the structured data the archive needs: client, sector, year, services, technologies and SEO copy. The Markdown body becomes the long-form content on the generic project route. Cover images pass through vite-imagetools, which produces sizes and formats at build time.

Project pages share one composition: a hero with the cover and key facts, a services column, a technology column and a Markdown body. Body images pass through the same pipeline as covers, which keeps formats and sizes consistent.

That setup has a practical consequence. A new project page needs a Markdown file and images, not a new route. Rendering, metadata and navigation links follow.

The technical base

The site runs on TanStack Start and React 19, with TypeScript, Tailwind CSS v4 and Paraglide JS. Server rendering goes through Nitro. Public routes are prerendered, the sitemap and hreflang tags are generated, and pages include JSON-LD structured data.

Images pass through vite-imagetools, which produces sizes and formats at build time. A focused test checks the cache headers. Deployment runs through Docker, GitHub Actions and Dokploy, and the semantic version is generated from commits.

A new public page needs three files: the route, the path translation and an entry in the prerender list. Navigation and the sitemap follow automatically.

What the site changes for the team

The site has become a working tool, not just a shop window. Case studies act as an internal reference for describing a project, choosing what to publish and keeping a record of decisions. The anonymised entries show that a client can be documented without exposing their name.

Project pages are also a test for the pipeline. A badly named image, an incomplete frontmatter or a missing route shows up at build time. That constraint keeps the archive consistent.

The site also acts as a test bed for the stack we use on client work. A new component, a metadata change or an image pipeline tweak lands here first, under real content, before it reaches a product.

It also serves as a reference for the visual language used in client work. Numbered sections, mono labels and border accents come from the same set of components, so a new page does not start from a blank sheet.

The result

The team can maintain the site on its own. Content is separate from code, pages are prerendered and metadata follows the structure. The site stays fast on mobile and readable on a large screen.

The site is live at endevops.be.

Endevops about page with the company introduction

// 003

Ready to build something great?

Let's talk about your project. No commitment, no pressure — just an honest conversation about what you need.