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
- Eric Downs — Technical Director, primary builder
- Mike DeKay — Partner, Creative Director (final approval on brand content)
- Kristin DeKay — Partner, Operations Director
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 Guide — 6gW9Qf4rQC67PXf2 |
| 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:
-
Data plane —
/api/brandand/api/brand/[category]serve the brand content as JSON. Consumed by the brand-guide-mcp server'sgrain-and-mortartenant. This is what powers thegm-brand-guideClaude skill, the @brandbot Slack responses, and any other downstream consumer. -
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 |
Related Projects
| 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 |