GitHub Pages publishes the main branch at project.np.design. Each client is a folder, and the folder name is the URL: project.np.design/desa-alam/.
The deck layout is frozen in template/. A client pitch changes copy, colors, and fonts.
{slug}/pitch.json. Copy desa-alam/pitch.json and replace the copy. The slug is lowercase words with hyphens, matching the folder name.theme.light, theme.dark, theme.pageBackground, and the two Google Fonts (theme.fonts.sans and theme.fonts.serif).{slug}/assets/ and point slides[0].logo.src at it.node scripts/build-pitch.js {slug}
{slug}/pitch.json, {slug}/assets/, and the generated {slug}/index.html.main. The page is live at https://project.np.design/{slug}/ after GitHub Pages rebuilds.index.html is generated. Edit pitch.json, then run the build again. The field contract is template/pitch.schema.json.
Slide order stays cover, overview, numbered cards, two label/value lists, process cards with a launch line, total cost, then closing. Lists and cards can grow or shrink. Spacing, type sizes, and navigation do not change per client.
This repository is public, including prices written into a pitch.