Before adding a CMS or database, the project and research content can live in typed local data files.
This keeps the frontend contract clear: each project has a slug, title, image direction, stack, year, role, and description.
When dynamic content becomes necessary, the UI can stay mostly the same while only the data source changes.