## Summary - Add Community (testimonials) section to homepage with inline avatars - Add FAQ section sourced from HN discussion questions - Add hero screenshot with next/image optimization - Add Show HN blog post with react-tweet embeds, star history chart, and HN quotes - Redesign footer with 4-column grid layout (Product, Resources, Legal, Social) - Add Download/GitHub CTA buttons at bottom of homepage and blog post - Add dev spacing controls for features, FAQ, and community sections - Fix hydration error (JSON-LD moved to head) - SEO: full metadata on blog posts, robots.txt, blog pages in sitemap, canonical URLs - Replace em dashes site-wide, fix notification descriptions ## Testing - `bun tsc --noEmit` passes clean - Dev server verified on port 3001 ## Related - Task: Add wall of love to main web page + landing screenshot
48 lines
1.2 KiB
TypeScript
48 lines
1.2 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Link from "next/link";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Blog",
|
|
description: "News and updates from the cmux team",
|
|
};
|
|
|
|
const posts = [
|
|
{
|
|
slug: "show-hn-launch",
|
|
title: "Launching cmux on Show HN",
|
|
date: "2026-02-21",
|
|
summary:
|
|
"cmux hit the front page, went viral in Japan, and shipped 18 releases in 48 hours.",
|
|
},
|
|
{
|
|
slug: "introducing-cmux",
|
|
title: "Introducing cmux",
|
|
date: "2026-02-12",
|
|
summary:
|
|
"A native macOS terminal built on Ghostty, designed for running multiple AI coding agents side by side.",
|
|
},
|
|
];
|
|
|
|
export default function BlogPage() {
|
|
return (
|
|
<>
|
|
<h1>Blog</h1>
|
|
<div className="space-y-8 mt-6">
|
|
{posts.map((post) => (
|
|
<article key={post.slug}>
|
|
<Link
|
|
href={`/blog/${post.slug}`}
|
|
className="block group"
|
|
>
|
|
<h2 className="text-lg font-medium group-hover:underline">
|
|
{post.title}
|
|
</h2>
|
|
<time className="text-sm text-muted">{post.date}</time>
|
|
<p className="mt-1 text-muted">{post.summary}</p>
|
|
</Link>
|
|
</article>
|
|
))}
|
|
</div>
|
|
</>
|
|
);
|
|
}
|