This release transforms PING into a sophisticated newspaper-style digital publication with enhanced readability and professional presentation. Major Features: - New FeaturedPostHero component with full-width newspaper design - Completely redesigned homepage with responsive newspaper grid layout - Enhanced PostCard component with refined typography and spacing - Improved mobile-first responsive design (mobile → tablet → desktop → 2XL) - Archive section with multi-column layout for deeper content discovery Technical Improvements: - Enhanced blog post validation and error handling in lib/blog.ts - Better date handling and normalization for scheduled posts - Improved Dockerfile with correct content volume mount paths - Fixed port configuration (3025 throughout stack) - Updated Tailwind config with refined typography and newspaper aesthetics - Added getFeaturedPost() function for hero selection UI/UX Enhancements: - Professional newspaper-style borders and dividers - Improved dark mode styling throughout - Better content hierarchy and visual flow - Enhanced author bylines and metadata presentation - Refined color palette with newspaper sophistication Documentation: - Added DESIGN_BRIEF_NEWSPAPER_LAYOUT.md detailing design principles - Added TESTING_RESULTS_25_POSTS.md with test scenarios This release establishes PING as a premium publication platform for AI orchestration and contextual intelligence thought leadership. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
CHORUS Blog
A static blog built with Next.js for sharing insights about contextual AI orchestration, agent coordination, and intelligent systems.
Features
- Static Blog Posts: Markdown-based blog posts with MDX support
- CHORUS Brand Styling: Consistent with the main CHORUS design system
- SEO Optimized: Full metadata, OpenGraph, and Twitter Card support
- Responsive Design: Mobile-first design that works on all devices
- Typography: Clean, readable typography optimized for technical content
- Code Highlighting: Syntax highlighting for code blocks
- Fast Performance: Optimized build with static generation
Development
Quick Start
# Start the development server
./dev-start.sh
# Or manually
npm install
npm run dev
The blog will be available at http://localhost:3002
Adding Blog Posts
- Create a new
.mdfile incontent/posts/ - Add frontmatter with metadata:
---
title: "Your Post Title"
description: "Brief description of the post"
date: "2025-01-27"
author:
name: "Author Name"
role: "Author Role"
tags: ["tag1", "tag2", "tag3"]
featured: false
---
- Write your content in Markdown
- The post will automatically appear on the blog
Project Structure
├── app/ # Next.js app directory
│ ├── posts/[slug]/ # Dynamic blog post pages
│ ├── layout.tsx # Root layout
│ └── page.tsx # Homepage
├── components/ # React components
│ ├── BlogHeader.tsx # Site header
│ ├── BlogFooter.tsx # Site footer
│ └── PostCard.tsx # Blog post card
├── content/posts/ # Blog post markdown files
├── lib/ # Utilities
│ └── blog.ts # Blog post handling
├── types/ # TypeScript types
└── public/ # Static assets
Deployment
Docker
# Build the Docker image
npm run docker:build
# Run with Docker Compose
npm run docker:compose
Production Build
npm run build
npm start
The blog uses Next.js's static generation features for optimal performance.
Configuration
Tailwind CSS
The blog uses the same Tailwind configuration as the main CHORUS website, ensuring brand consistency. The configuration includes:
- CHORUS color palette (carbon, mulberry, ocean, etc.)
- Typography scale and font families
- Custom spacing and sizing utilities
- Blog-specific prose styling
Environment Variables
No environment variables are required for basic operation. The blog is designed to work as a static site.
Brand Guidelines
The blog follows the CHORUS brand guidelines:
- Colors: Carbon (grays), Mulberry (purples), Ocean (blues)
- Typography: Inter Tight for body text, Exo for headings
- Logo: Consistent CHORUS branding
- Spacing: Golden ratio-based spacing system
Adding New Features
New Page Types
Create new pages in the app/ directory following Next.js 13+ app router conventions.
Custom Components
Add new components to the components/ directory. All components should:
- Use TypeScript
- Follow the existing naming conventions
- Be responsive by default
- Use CHORUS brand colors and typography
Styling
- Use Tailwind CSS classes
- Reference the existing design tokens
- Maintain consistency with the CHORUS brand
Production Deployment
The blog is configured for deployment with:
- Docker: Multi-stage build for production
- Traefik: Reverse proxy with Let's Encrypt SSL
- Docker Swarm: Container orchestration
Production URL: https://blog.chorus.services
License
Proprietary - CHORUS Services