Use this contributor playbook to publish on Valeon with confidence. It covers editorial standards, legal guardrails, and the workflow from idea to review.
author.json, and stage supporting assets.
[YYYY]-[MM]-[DD]-[post-slug]/
with post.md, cover.(png|jpg|webp), and an
assets/ subfolder for embeds.
Contributors work exclusively in the Valeon content repositories. Stay focused on Markdown, metadata, and assets—no site build or deployment steps are required.
Use feature branches, keep author and post updates in sync, and cross reference pull requests when both repositories change.
alex-lee). The slug must match the
author field in every post frontmatter.
author.json inside
[author-slug]/ with any assets in
[author-slug]/assets/.
author.json with name, a concise bio, social links,
optional gravatar email, and featured publications.
./assets/[publication-slug]/*. Keep filenames
descriptive.
author.json and update your Gravatar image.
valeon-authors/
alex-lee/
author.json
assets/
liquidity-series/
cover.png
diagram.svg
[YYYY]-[MM]-[DD]-[post-slug]/ with
post.md, cover.(png|jpg|webp), and an
assets/ folder for embeds referenced relatively.
post.md start at ##.
Keep one idea per section and use subheadings for supporting
points.
coverAlt text.
systems-thinking). Avoid duplicates and
singular/plural variants.
$ delimiters for LaTeX expressions so math renders
correctly on Valeon.
canonical when cross-posting. Omit the field if Valeon
is the original venue.
valeon-posts/
2025-01-22-market-systems/
post.md
cover.png
assets/
chart.png
diagram.svg
---
title: "Example Title"
pubDate: "2025-01-15T12:00:00Z"
updatedDate: "2025-01-20T12:00:00Z"
excerpt: "Plain text summary at 160 characters or less."
cover: ./cover.png
coverAlt: "Illustration of cash flows moving through a market system."
author: author-slug
series:
slug: systems-series
part: 2
featured: false
tts: true # defaults to true; set false only to exclude from TTS/podcast
categories:
- markets
tags:
- systems-thinking
- liquidity-risks
- narrative-economics
canonical: https://example.com/original
---
Remove canonical when Valeon is the original publisher or
replace the URL when cross-posting with permission.
title present, concise, plain text.pubDate (required) and updatedDate
(optional) in UTC ISO 8601 (YYYY-MM-DDTHH:MM:SSZ).
excerpt plain text and at or under 160 characters.
cover points to ./cover.(png|jpg|webp).
coverAlt is descriptive and not just a filename.
author equals your author slug.series omitted unless the post belongs to a defined series,
with slug and optional part.
featured either true or false.
tts omitted (defaults to true) or set to
false if you are opting out of audio distribution.
categories lists one or more category slugs from the predefined
set in src/content/categories.
tags include 5-15 lowercase, hyphenated items with no
duplicates.
canonical only when syndicating or cross-posting.
If you are not using the repository's Obsidian formatter, sort your YAML keys in this order to match Valeon's automation:
titlepubDateupdatedDateexcerptcovercoverAltauthorseriesfeaturedttscategoriestagscanonical## Context: What changes in liquidity this quarter?
- Frame the thesis and stakes for the reader.
## Mechanism: How market plumbing amplifies risk
- Explain first-principle mechanics with one core example.
## Implication: What investors should watch
- Offer practical takeaways and forward-looking signals.
## Reflection: Tensions worth interrogating
- Close with an open question or invitation to explore further.
Prefer any editor you like. The valeon-posts repository includes optional Obsidian helpers for slug generation, folder scaffolding, linting, and automatic frontmatter formatting if you want automation.
excerpt under 160 characters with straight quotes
and plain text.
canonical URL when syndicating or cross-posting
outside Valeon.
tts-1-hd model using the onyx voice. Each episode
credits the author in the intro and description.
tts: false in your post frontmatter. The pipeline reads
this flag and skips synthesis; no additional tooling is required.
The automation lives in scripts/podcast-pipeline.ts,
which handles text-to-speech generation, object storage uploads, and
podcast feed updates end-to-end.
feat/post: YYYY-MM-DD-slug (new post),
fix/post: YYYY-MM-DD-slug (updates),
chore/author: add-slug (author profiles).
feat(post): New Blog Post - Title,
fix(post): Update - Title,
chore(author): Add - Author Name.
valeon-posts for every submission.
valeon-authors.
- [ ] Correct branch naming convention used.
- [ ] Author slug matches folder name and `author` in frontmatter.
- [ ] One category (from the 8 predefined) + 5-15 hyphenated tags.
- [ ] Cover image is 1536x1024, optimized; all images include alt text.
- [ ] Frontmatter fields present and well-formed; dates are UTC ISO 8601.
- [ ] All factual claims include citations/links.
- [ ] Rights/licensing confirmed; no prohibited content.
- [ ] AI-assistance disclosure included if applicable.
- [ ] `tts: false` set in frontmatter if opting out of TTS/podcast distribution.
- [ ] Linked PR opened in the other repo (if author data changed).
fix/post: YYYY-MM-DD-slug and a pull request with
fix(post): Update - Title. Update
updatedDate in frontmatter.
canonical link back to Valeon and an attribution note.