Grain & Mortar Brand Guide

Digital brand guide site for Grain & Mortar itself — the second client implementation of G&M's brand-guide product (after California Forever). Same Next.js architecture, G&M-themed, scaffolded from the CF brand guide repo on 2026-04-26 with all CF content stripped and G&M content populated from the gm-v8 WordPress theme tokens and llms.txt.

Project Info

Job Number Internal — not billable
Phase Active — initial build deployed, populating real content
Billable No (internal G&M product / dogfood for the brand-guide-mcp Slack bot)

Client Contacts

Site Reference

Local Path /Users/edowns/Projects/grainandmortar-brand-guide
Local URL http://localhost:3000
Production URL https://grainandmortar-brand-guide.vercel.app
GitHub https://github.com/ericdowns/grainandmortar-brand-guide (private)
Deployment Vercel (auto-deploy on push to main)
Stack Next.js 16 · React 19 · Tailwind v4 · system fonts (Signifier Light + PP Mori not yet self-hosted)

Integrations

Service Status Details
Harvest Not billable Internal product work
Todoist Active G&M Brand Guide6gW9Qf4rQC67PXf2
Basecamp None Not a client project
Slack Active #brandbot (G&M workspace) — internal channel for the brand-guide-mcp + brand-guide site work
Notion None Project notes here are the hub
Figma Not yet — will be created if the visual design needs iteration beyond the current CF-template baseline

Architecture (high level)

This repo is the data plane + visible brand-guide UI for G&M. Two layers in one Next.js app:

  1. Data plane/api/brand and /api/brand/[category] serve the brand content as JSON. Consumed by the brand-guide-mcp server's grain-and-mortar tenant. This is what powers the gm-brand-guide Claude skill, the @brandbot Slack responses, and any other downstream consumer.

  2. Visible brand guide site — sidebar-nav UI at the root showing rendered pages for each category (color swatches, type specimens, voice cards, etc.). Restored 2026-04-26 after an earlier "API only" decision was reversed.

Editing content/*.json updates both at once — the API serves the JSON directly, and the rendered pages import it for display. Deploys auto-pick up on push to main.

Content Status

Category Status Notes
brand-foundation ✓ Real Story, mission, vision, 4 values, personality, audience
colors ✓ Real All 12 G&M tokens (gm-black, gm-light-tan, gm-chartreuse, gm-sky, etc.) from gm-v8 docs/TAILWIND-TOKENS.md
typography ✓ Real Signifier Light + PP Mori, full responsive scale
voice ✓ Real 4 principles + tone do/don't + writing rules + 4 example pairs from grainandmortar.com copy
messaging ✓ Real "Honest folks doing honest work" tagline, pitch, boilerplate, headlines, banned terms
applications ✓ Real 5 surfaces, 12 notable clients, 11 industries served
logos ⚠ TODO Skeleton schema only — needs actual logo asset URLs
icons ⚠ TODO Skeleton schema only — needs icon set + style description
photography ⚠ TODO Skeleton schema only — needs direction + samples
Location Contents
../brand-guide-mcp/ The Slack-native brand guide assistant + MCP server. Consumes this site as the grain-and-mortar tenant. Edit this site's content/*.json → MCP picks it up within ~60s via fetch revalidate.
../california-forever-brand-guide/ The CF brand guide. Sibling project this repo was scaffolded from. Same Next.js stack, same content schema, different tenant.
../brand-guide-research/ Original PRD and deep research that conceived the brand-guide product. Predates the MCP-as-a-service framing — current spec is ../brand-guide-mcp/PRD.md.
../gm-v8/ The grainandmortar.com WordPress theme. Source of truth for the G&M Tailwind tokens (colors, type scale) populated into this brand guide. See docs/TAILWIND-TOKENS.md in the gmV8 theme.
../grain-and-mortar/ G&M corporate / brand-strategy notes (broader than just the brand guide site)

Project Status

2026-04-26 — Site scaffolded, populated with real content, visible UI restored

Multi-step session. Recap:

Repo created and deployed: - Cloned from ~/Projects/california-forever-brand-guide as starting structure, all CF assets/content stripped, G&M skeletons written. - Created private GitHub repo ericdowns/grainandmortar-brand-guide, linked Vercel project, deployed. - Production URL: https://grainandmortar-brand-guide.vercel.app

Content populated (6 of 9 categories) from authoritative G&M sources: - Pulled the 12-token G&M color palette from docs/TAILWIND-TOKENS.md in the gmV8 WordPress theme. - Pulled typography spec (Signifier Light + PP Mori, full responsive scale) from the same. - Pulled mission/values/voice principles/tagline from llms.txt and live page copy on grainandmortar.com (front-page.php, page-about.php).

Mid-session reversal: I made a bad scope call earlier — when asked "API-only or sanitize the marketing pages," I framed and recommended API-only. Eric correctly pushed back that he expected a visible brand guide site like California Forever's, not just JSON endpoints. Reversed: restored the app/(guide)/ rendered pages, rewrote them from scratch matching G&M's content schema (CF's page components had different field shapes), themed everything in G&M tokens.

End state: - 6 fully-rendered category pages: brand-foundation, color, typography, voice-and-tone, messaging, applications - 4 stub pages awaiting content: logo, iconography, photography, assets - Sidebar nav driven by content/navigation.ts - G&M color tokens live in app/globals.css via @theme inline - Fonts: system fallback (Iowan Old Style serif, system-ui sans) until Signifier Light + PP Mori font files are sourced and self-hosted - brand-guide-mcp's tenants.json updated in commit fdebbe3 to point the grain-and-mortar tenant here instead of CF — gm-brand-guide Claude skill now returns real G&M data end-to-end

Status: Live at https://grainandmortar-brand-guide.vercel.app. Three content categories (logos, icons, photography) still TODO. Fonts not self-hosted yet. Visual design is a CF-template-derived baseline — works, but doesn't yet feel uniquely G&M-designed.

Next session pickup: - Source Signifier Light + PP Mori font files (likely from the gmV8 theme's assets/fonts/ if they exist there, otherwise from G&M's font licensing) - Populate logos.json with actual logo asset URLs (primary wordmark, mono variants, clear space, minimum size, don'ts) - Populate icons.json with the icon library / style conventions - Populate photography.json with direction + sample references - Optional: visual polish pass to feel less "CF template scaffold-y" and more "designed for G&M"

Docs

File Description
README.md This file — project hub and status