Markdown Showcase
A sample post that exercises every Markdown element the blog renders.
This is the sample post shipped with the template. It exists to show what the
blog looks like with real content, and to verify that every Markdown element
renders correctly. Replace it with your own writing, or delete it β posts live
in content/blog/ as Markdown files.
Headings and text
A third-level heading
A fourth-level heading
Body text supports bold, italic, bold italic, strikethrough,
inline code, and links to another page on this site or to
an external site. Bare URLs are linked too:
https://developers.cloudflare.com/workers/
Press Cmd + K to open the command palette.
Lists
An unordered list, with nesting:
- Accounts, payments and email
- Email and social sign-in
- Subscriptions and one-time purchases
- Content collections for the blog and changelog
- Deployed to Cloudflare Workers
An ordered list:
- Clone the template
- Fill in the environment variables
- Run the database migrations
- Deploy
A task list:
- Set the site name and metadata
- Replace the logo and OG image
- Write the first real post
- Point the domain at the Worker
Quotes
Configuration that fails loudly beats configuration that fails silently.
β the deployment checklist, learned the hard way
Code
Inline code such as pnpm dev reads differently from a fenced block:
import { createServerFn } from '@tanstack/react-start';
import { z } from 'zod';
export const greet = createServerFn({ method: 'POST' })
.inputValidator(z.object({ name: z.string().min(1) }))
.handler(async ({ data }) => {
return { message: `Hello, ${data.name}` };
});
pnpm install
pnpm dev
Tables
| Feature | Provider | Enabled by |
|---|---|---|
| Database | Cloudflare D1 | preset.auth |
| Storage | Cloudflare R2 | preset.storage |
| Cloudflare Email | preset.mail | |
| Payments | Stripe / Creem / Waffo | VITE_PAYMENT_PROVIDER |
Images

Details
Where do posts live?
Each post is a Markdown file under content/blog/. The frontmatter carries
title, description, date, category and image. The slug comes from the
file name, so markdown-showcase.md becomes /blog/markdown-showcase. Add
.zh before the extension for the Chinese version.
That horizontal rule above is the last element. Everything the blog renders is plain GitHub Flavored Markdown1, so anything you can write in a README works here too.
Footnotes
-
Parsed with remark and rendered with rehype. See
src/lib/markdown.ts. β©