You do not need a Forma-specific design file. You need a picture of the page and the ability to write HTML. Here is the path we use.
1. Export or build the unique layout once
From Figma: export assets, write the HTML yourself (or let an agent draft it), and match type sizes to the frame. From an existing static site: open index.html and keep the <style> or CSS file.
Do not import a 4,000-line theme CSS “just in case.” Bring what the page uses.
2. Cut the chrome out
Anything that appears on every page becomes a snippet:
- fonts + tokens →
site-head - nav →
site-header - footer →
site-footer
Replace those regions in the page with [[site-head]], [[site-header]], [[site-footer]]. The first time feels mechanical. The twelfth page is a gift.
3. Paste the middle into a Forma page
Admin → Pages → New. Filename about, slug /about. Paste the unique <main> (or the whole document if you still need a one-off <head>).
Images go in Media, then you point src at /uploads/…. Featured and Open Graph images are SEO fields, not decorations you hide in a CSS comment.
4. META, then look at it on a phone
Set title, SEO title, description, and a 1200×630 share image. Open the public URL. Narrow the window. Fix the nav. This is still your CSS. Forma will not invent a breakpoint.
5. Publish
Save. If HTML cache is on, Apache can serve the file. Change the header later; the snippet republish updates every page that includes it.
Blog posts are the same idea with one extra template: blog-single is the article chrome (cover, type, byline). The Markdown body drops into {{ post.content }}. Design the article shell once. Writers never touch it.
Agents can do the paste. You still own the look.
A scoped token can PUT the page HTML. That is useful when the mockup is done and the work is shipping five interiors. It is a bad substitute for choosing type. Look at the page. If it does not match the frame, the CMS is not the problem.
Your design, Forma’s database. That is the split.
