LLaomei

Hello, the Laomei Blog

2 min readNotesAI
On this page

The blog is live. You will find three kinds of posts here: AI in practice (lessons and pitfalls from real client projects), product thinking (how small businesses can actually use AI well), and engineering notes (technology choices and implementation details).

This post doubles as a typography sample: headings, a table of contents, code blocks, tables, and quotes all appear below for future reference.

Why start a blog

We treat the blog as an extension of the product:

  • Compounding knowledge — after each project, write down what is reusable; it beats oral tradition
  • Building trust — the landing page tells you what we do, the blog tells you how we think
  • Thinking in public — if you can't write it down, you haven't figured it out yet

Writing is not the record of thinking. Writing is thinking.

How this blog is built

Same stack as the main site: Next.js App Router + vinext (Vite build) + Tailwind CSS, deployed on Cloudflare Workers. Posts are just MDX files in the repo — git push, one deploy command, no admin panel, no database.

The content layout is dead simple:

content/blog/
  zh/hello-laomei.mdx      # Chinese post
  en/hello-laomei.mdx      # Same slug = automatic translation pairing
  zh/why-ai-landing-page.mdx

Each post's metadata lives in its frontmatter:

---
title: Post title
date: 2026-10-20
description: One-line summary for the list page and SEO
tags: [Tag One, Tag Two]
draft: false        # true keeps it offline
---

Code highlighting

Code blocks are rendered by Shiki with the GitHub Light theme, matching the clean light style of the site:

type Solution = {
  title: string;
  points: [string, string, string];
};

export function pitch(solution: Solution): string {
  return `${solution.title}: ${solution.points.join(", ")}`;
}

Tables and lists

ModuleChoiceNotes
FrameworkNext.js 16App Router, bilingual routes
Buildvinext + ViteTargets Cloudflare Workers
Deploycf deployOne command to build and ship

A few writing conventions:

  1. Start headings at ## (the h1 is rendered by the template)
  2. Long posts should have three or more ## sections so the sidebar TOC appears
  3. Pair translations by filename; a missing translation never blocks the other language

What's next

Topics already on the list: cold-starting a chatbot knowledge base, a minimal A/B testing setup for landing pages, and automating the weekly report with AI end to end. Tell us what you want to read via the email at the bottom of the page.

See you in the next post.