Content architecture
Case-study publishing model
The projects system is being shaped as an editorial model first. It should work with local structured data today and a CMS collection later without changing the public route strategy.
Overview
Project summary
The portfolio is being designed around publishable snapshots that can later grow into fuller narratives. Each project entry is expected to explain context, delivery choices, and the kind of outcome the work enabled, without turning every case study into the same template.
- Status
- In progress
- Period
- Current
- Effort
- Snapshot first
- Content model
- Project records
- Route pattern
- /projects/[slug]
- Goal
- CMS-ready without CMS lock-in
Technical notes
Context, implementation, and next work
The sections below keep the page readable as documentation: a short explanation followed by concrete notes.
Challenge
Project proof needs structure before a CMS exists
The site needs project pages now, but the content model should not be so route-specific that a future CMS migration requires a rewrite.
- Keep content structured enough for future collections
- Avoid hiding important proof inside untyped page markup
- Separate external project links from Noliv-owned detail routes
Approach
Use local records that resemble future CMS entries
Each project uses a stable slug, summary fields, image records, metrics, detail sections, stack links, and CTAs. A CMS adapter can later replace the source while preserving the rendering components.
- Stable slugs and generated static params
- Typed gallery assets with alt text
- Reusable detail sections instead of one-off page copy
Next
Add a CMS adapter only when the editorial workflow needs it
The current structure keeps the repo simple. When publishing volume grows, the same fields can map to a CMS schema and the route can read records through a single data helper.
- Add draft and published states when editorial review matters
- Reference related people, services, and assets by ID
- Keep build-time generation for public project pages where possible
Content model
CMS handoff notes
The page is still backed by local TypeScript records, but the data shape is intentionally close to a future CMS collection.
- Slug, title, category, status, summary, and SEO description
- Repeatable detail sections with optional bullet lists
- Project artifact CTA and internal detail route stored separately
- Gallery assets modeled as ordered records with alt text