Skip to content
Convoke — Home

Projects

Convoke.space

The publishing system this site runs on — two repositories, Korean and English as equals, and a static site maintained by agents.

Status
active
Started
Source
github.com/convoke-space/public

Convoke.space is both a site and the system that publishes it. What follows is a record of what the repository actually contains today.

How it is built

  • Next.js App Router, TypeScript, Tailwind CSS. Content is MDX on disk, generated statically at build time.
  • No database, no authentication, no CMS. Content is files in Git, and adding a piece is one pull request.
  • No web fonts and no client-side analytics. Typography uses only faces the reader's operating system already has.
  • A hand-written frontmatter validator. Around three hundred dependency-free lines that report every problem in a file at once and fail the build on an unknown field.

The bilingual structure

Korean and English are equal first-class routes.

  • Content lives under content/<collection>/<locale>/, and the directory is the authority on locale. It is not duplicated in frontmatter.
  • The two editions of one piece are linked by translationKey. Their slugs may differ per locale.
  • / belongs to neither language: it is an explicit choice, with no browser-language redirect.
  • When an edition does not exist, neither its URL nor its hreflang is generated.

How it is operated

There are two repositories. convoke-space/public holds the application and everything published; convoke-space/private holds drafts and working material. Production builds from the public repository alone — no cross-repository clone, no build token, no runtime fetch.

Changes happen on task branches owned by exactly one person or agent at a time, arrive as pull requests, pass lint, typecheck, tests and a production build, and are merged by a human.

Status

Not yet deployed to production. The first merge and the domain connection are still outstanding.