Open source
Contribute a conference
Conferences are hardcoded and contributed via GitHub pull request: no account, no database. Maintainer review keeps the quality high.
Let an AI agent do the heavy lifting
Copy a ready-made prompt bundling all the context an agent needs to add a conference the right way, then paste it into your coding agent.
How it works
- 1Transcribe the audio/video and synthesize the content.
- 2Create
src/data/conferences/<slug>/(one file per part) exporting aConferenceobject. - 3Register it in
src/data/conferences/index.ts. - 4Open a pull request, a maintainer reviews and merges.
Anatomy of a conference
A conference is a folder under src/data/conferences/<slug>/, one file per responsibility. A single <slug>.ts file also works for a short one.
meta.tsIdentity & framing
Title, platform, date, the one-liner, the key idea and tags.
orgs.tsOrganizations
The teams involved, with their color and links.
speakers.tsSpeakers
Who speaks, for which org, with their verified X identity and avatar.
themes.tsTimeline
The event block by block, in the real order of the conversation.
missions.tsMissions
Open missions and bounties launched after the event. Optional.
glossary.tsGlossary
The key technical concepts covered. Optional.
Required vs optional
- A slug and a title
- Platform, date and duration
- Speakers and timeline
- Bounties & missions
- A cover image
- Speaker avatars & X links
- Technical glossary
- Official announcement link
The page and the social card adapt to what you provide: no bounty, no cover or no avatar is perfectly fine.
No image to design
A branded Open Graph card is generated automatically from your data (title, speakers, bounty). Set a cover only to override it.
Assets & content sourcing
Transcription and synthesis happen upstream, outside this repo — use any tool you like, then write the result into the data files (English).
Speaker avatars are optional and degrade gracefully. Declare the avatar path then run pnpm fetch-avatars to download it from the speaker's X handle (via unavatar) into public/media/speakers/ — don't hotlink X or Discord, those URLs rotate. Use public profile pictures of speakers who appeared publicly; any can be removed on request.
Before opening your PR, run pnpm validate to check data integrity (date format, cross-references, missing assets).
Rule: every text field is a plain English string (no translation object); browsers handle translation for other languages.
Use the existing Semantic Delegation conference as a reference.
Org colors: sky, violet, caramel, emerald, rose, amber. Mission complexity: beginner, intermediate, advanced.