Writing for The Brian Journal

How to add posts, what Markdown features are supported, and what the current setup can and cannot do.

Adding a post

Posts are Markdown files in content/posts/. To add one:

  1. Create a new file named your-post-slug.md.
  2. Add frontmatter at the top.
  3. Write the body in Markdown.
  4. Commit and push to main. GitHub Actions builds and deploys the site.

Frontmatter reference

FieldRequiredNotes
titleYesUsed as the page heading and in listings.
dateNoISO date like 2026-06-20. Posts are sorted by date.
excerptNoShort summary shown on the home page and in metadata.
tagsNoArray of tags, e.g. [nextjs, tutorial].

Post template

---
title: My New Post
date: 2026-06-25
excerpt: A short summary of what this post is about.
tags: [example, demo]
---

## First section

Write your content here. Use headings, lists, code blocks, and tables as needed.

What Markdown supports

This page is itself written in Markdown and rendered through the same pipeline used by blog posts.

Headings

Sections are automatically given anchor IDs so they can be linked directly.

Heading 3

Heading 4

Heading 5
Heading 6

Paragraphs and emphasis

A paragraph can contain bold text, italic text, and bold italic text. You can also mark things with strikethrough or inline code like const answer = 42.

Images

Sample image

Lists

Unordered

  • First item
  • Second item
    • Nested item
    • Another nested item
  • Third item

Ordered

  1. Install the dependencies
  2. Write the post
  3. Commit and push

Alphabetical

Markdown does not have a native lettered-list syntax, but the HTML it passes through is rendered:

  1. First option
  2. Second option
  3. Third option

Blockquotes

A blockquote draws attention to a quoted idea or note. It can contain formatting and code too.

Code blocks

function greet(name) {
  return `Hello, ${name}!`;
}

Tables

Feature Status Notes
Headings Supported Auto-anchored H2/H3
Tables Supported Via remark-gfm
Code blocks Supported No syntax highlighting by default

Task lists

  • Create a Markdown demo file
  • Add Mermaid diagram support
  • Add LaTeX math support

Footnotes

A sentence can reference a footnote1.

Footnotes

  1. This is the footnote text. It appears at the bottom of the rendered section.

Mermaid Diagrams

---
config:
  layout: elk
---
flowchart LR
 subgraph Frontend["Frontend"]
        UI["React"]
        Mobile["Flutter"]
  end
 subgraph Backend["Backend"]
        API["FastAPI"]
        Queue["Kafka"]
  end
 subgraph AI["AI"]
        Planner["Planner"]
        Research["Research"]
        Critic["Critic"]
  end
 subgraph Platform["Platform"]
        Frontend
        Backend
        AI
  end
    UI L_UI_API_0@--> API
    Mobile L_Mobile_API_0@--> API
    API L_API_Planner_0@--> Planner
    Planner --> Research
    Research --> Critic


    L_UI_API_0@{ animation: slow } 
    L_Mobile_API_0@{ animation: slow } 
    L_API_Planner_0@{ animation: slow }

Horizontal rule


FAQ

What is not supported by default?
  • Math such as LaTeX requires a math plugin.
  • Interactive React components are not supported in plain Markdown. Use MDX or embed a custom component in the page instead.
Can I add a post from the UI?

Not with the current setup. This site is statically exported and hosted on GitHub Pages, so it has no server and no database at runtime. The list of posts is read from the filesystem at build time.

Adding a post from the browser would require introducing a backend or a content service, such as:

  • A Next.js API route that writes to the repo via the GitHub API and triggers a rebuild.
  • A headless CMS like Contentful, Sanity, or Strapi.
  • A platform with built-in forms/CMS, like Netlify CMS or Vercel.

That is a bigger architectural change than the current static-only deploy. To keep things free and simple, creating a Markdown file in the repo remains the easiest path.