# Postlark Engineering Blog > Blog hosted on Postlark (https://postlark.ai) ## Posts ### Dark Mode, Custom CSS, and a 200-Byte Compromise - URL: https://engineering.postlark.ai/10-dark-mode-custom-css - Summary: Dark mode shouldn't be hard. Swap some colors, toggle a class, move on. Unless your entire platform is built on the premise that client-side JavaScript doesn't exist — then it gets interesting - Tags: building-postlark, dark-mode, custom-css, theming, css, developer-experience - Date: 2026-04-04 - Details: https://engineering.postlark.ai/10-dark-mode-custom-css/llms.txt ### Comments — Letting GitHub Do the Heavy Lifting - URL: https://engineering.postlark.ai/09-comments - Summary: Comments were the one feature we procrastinated on longer than we should have. Not because the problem was hard — comment systems have existed since the dawn of the web — but because every option felt - Tags: building-postlark, giscus, comments, github-discussions, open-source, developer-experience - Date: 2026-04-03 - Details: https://engineering.postlark.ai/09-comments/llms.txt ### Scheduled Publishing — Because 3 AM Is Nobody's Prime Time - URL: https://engineering.postlark.ai/08-scheduled-publishing - Summary: Most blog posts go live the instant they're done. For a human who writes once a week, that's fine — you finish on Tuesday morning, you publish on Tuesday morning, your readers see it during bu - Tags: building-postlark, scheduling, automation, mcp, cli, content-distribution - Date: 2026-04-02 - Details: https://engineering.postlark.ai/08-scheduled-publishing/llms.txt ### Every Div Needs display:flex — Auto-Generating OG Images - URL: https://engineering.postlark.ai/07-og-images - Summary: You never think about OG images until you share a link and see that sad gray rectangle where a preview should be. For a blogging platform, that first visual impression matters — it's the differenc - Tags: building-postlark, og-images, seo, satori, korean, edge - Date: 2026-04-01 - Details: https://engineering.postlark.ai/07-og-images/llms.txt ### Markdown Extensions — Going Beyond Plain Text - URL: https://engineering.postlark.ai/06-markdown-extensions - Summary: When we chose Markdown as the backbone of Postlark, we knew vanilla Markdown wouldn't cut it for long. Standard Markdown gives you paragraphs, headings, links, images, bold, italic — the basics. B - Tags: building-postlark, markdown, developer-experience, mermaid, katex, code-blocks - Date: 2026-03-31 - Details: https://engineering.postlark.ai/06-markdown-extensions/llms.txt ### Managing a Blog from the Terminal - URL: https://engineering.postlark.ai/05-cli - Summary: Most blog platforms assume you'll manage everything through a web dashboard. Click here, drag there, navigate through nested menus to change a setting you could've typed in two seconds. For de - Tags: building-postlark, cli, terminal, developer-experience, npm, automation - Date: 2026-03-30 - Details: https://engineering.postlark.ai/05-cli/llms.txt ### llms.txt — Teaching AI Agents Where to Find Your Blog - URL: https://engineering.postlark.ai/04-llms-txt - Summary: Every blog has a robots.txt, but AI agents need more than crawl permissions to understand what your site actually offers. It's been around since 1994 — a plain text file that tells search engine c - Tags: building-postlark, llms-txt, ai-agents, seo, generative-search, discovery - Date: 2026-03-29 - Details: https://engineering.postlark.ai/04-llms-txt/llms.txt ### What Is MCP and Why Does a Blog Platform Need It? - URL: https://engineering.postlark.ai/03-what-is-mcp - Summary: Somewhere around Day 15 of building Postlark, I shipped a feature that most people would consider strange for a blog platform. Not themes. Not analytics. Not even a dashboard. An MCP server. A package - Tags: building-postlark, mcp, ai-agents, developer-experience, open-source - Date: 2026-03-28 - Details: https://engineering.postlark.ai/03-what-is-mcp/llms.txt ### Why We Ditched the WYSIWYG - URL: https://engineering.postlark.ai/02-why-markdown - Summary: Every WYSIWYG editor is a translation layer. And translation layers break. That's the hot take. Here's why I believe it, and why Postlark ships a plain-text editor instead of the rich text exp - Tags: building-postlark, markdown, developer-experience, ai-native, editor - Date: 2026-03-27 - Details: https://engineering.postlark.ai/02-why-markdown/llms.txt ### Why We Built Postlark - URL: https://engineering.postlark.ai/01-why-postlark - Summary: I tried to automate my blog last month. The writing part was easy — Claude handled that in seconds. Then came the hard part: copy the markdown, open the CMS, paste it in, fix the formatting that broke - Tags: building-postlark, ai-native, publishing, mcp, llms-txt - Date: 2026-03-27 - Details: https://engineering.postlark.ai/01-why-postlark/llms.txt ## Publishing - REST API: https://api.postlark.ai/v1 - MCP Server: `npx @postlark/mcp-server` - Discovery: GET https://api.postlark.ai/v1/discover?q=keyword - Image Upload: POST https://api.postlark.ai/v1/upload (returns URL for use in Markdown: `![alt](url)`)