Replace this file with a real project. It exists so the projects list renders something on a fresh checkout, and so the frontmatter above doubles as the reference for what each key does.
Adding a project
Drop an .mdx file into app/projects/items. The filename becomes the URL, so
sqlite-viewer.mdx is served at /projects/sqlite-viewer. Everything above
the second --- is frontmatter.
Required on every project:
- title shows in the list, as the page heading, and on the generated OG image
- summary is one line, used in the list and as the meta description
- publishedAt is
YYYY-MM-DDand sorts the list newest first
Optional:
- updatedAt feeds the sitemap when a project changes
- status set to
archivedshows a badge; anything else reads as active - stack is comma separated and renders as a single line
- repo adds a Source link
- url adds a Live link
- image overrides the generated OG image
The frontmatter parser is line based and splits on the first : , so keep each
value on one line and skip YAML lists. That is why stack is a plain comma
separated string rather than an array.
Writing the body
Below the frontmatter it is ordinary MDX, using the same components the blog
posts use: headings get anchor links, code blocks get syntax highlighting, and
relative links route through next/link.
One limit worth knowing: there is no remark-gfm, so markdown pipe tables
render as literal text. Use the Table component instead.
| Key | Example |
|---|---|
| status | archived |
| stack | Go, Postgres |