Skip to content
Back to projects
  • Information Architecture
  • UX/UI
  • Front-End

NCGA Stationery Template System

A constrained template system for the NCGA print shop, using a single legislator record to drive locked letterhead and envelope layouts.

Role
Designed the workflow and built the tool
Year
2026
Built with
HTML/CSS/JS, PDF generation, variable-data workflow

What I can show

An internal print-shop tool, not publicly hosted. Screenshots use fictional legislator data; I can demo it on request.

NCGA letterhead editor with a form sidebar and print-accurate preview of legislator stationery.

Overview

The North Carolina General Assembly print shop produces official stationery for all 170 legislators. Each order follows the same formal brand guidelines, but requires distinct contact information, committee assignments, and chamber wording. Before this system, repeat orders relied on separate files for each member, allowing small discrepancies in spacing, ink color, and committee data to compound across all 170 profiles.

Locked vs. Data-Driven Fields

Production-approved variation lives in a typed LegislatorRecord, while core layout geometry and brand standards stay locked. Locked elements: the state seal, the official masthead, licensed typefaces, page grids, margins, and recycling mark geometry.Data-driven elements: member name, chamber, office address, phone number, committee list, and ink color, with visibility toggles that hide unused sections without deleting underlying data.

InputLegislatorRecord
Locked templateSeal, masthead, grid, type
OutputLetterhead or envelope PDF

Same Record, Different Surfaces

Letterhead and envelopes share a single underlying data model, but present tailored input forms. The envelope editor removes phone numbers and committee lists, omits the state seal to match production artwork, and restricts return addresses to official legislative buildings with fixed ZIP codes. Recipient addresses are left to a downstream mail merge.

Envelope editor with building picker and print-accurate envelope preview.
Envelope surface: building picker instead of free-text address, no seal, recipients added later by mail merge.

Outcome

The browser preview renders in exact inches and points, while PDF output uses a second renderer that shares identical logic for chamber copy, ink colors, and visible committees. Personalized mailings to all 170 members now go out in one press pass instead of two.

Related NCGA work not shown here includes a press-split calculator, identity systems, job tickets, proofing tools, and high-volume production workflows.

Let’s build something useful.

Start a conversation