About pages

Embed
Preview of the card
<a href="https://forumulate.com/guides/about-pages"><img src="https://forumulate.com/guides/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/36aa4df0-1e95-4cef-8ae9-795169441345/pages/67a405e7-0c1e-49cf-a3cc-bfccc9fe5046/social-card.svg?v=3e7ae33eec8b" alt="About pages" width="600" height="315"></a>

An About space is your company's About page: who you are, the story, the people and the company behind the site. Every site needs one, and nobody should have to lay it out by hand on a custom page — so it is a space type of its own, built from parts you fill in, with the parts your other spaces already hold read live from them.

Create one like any space:

POST /orgs/{orgId}/spaces
{ "name": "About", "slug": "about", "type": "ABOUT", "visibility": "PUBLIC", "preset": "enterprise" }

The type's name is ABOUT. GET /space-types/ABOUT publishes everything the type declares — its presets, the story's sections (story, approach, culture, future), the organization settings it reads and its reader prefix — and GET /space-types/ABOUT/presets lists the presets alone.

On your own domain it answers at its slug (acme.com/about). On our address its reader prefix is /ab/, so that our own site's /about stays free.

What an About page is made of

The page is a column of bands. Each is optional, each draws nothing until it has something in it, and you choose their order on the page itself.

Band

What it draws

Where it comes from

hero

Headline, the line under it, a picture, a button

hero

mission

The mission statement (and the vision)

mission, vision

story

The long story, in your words

The space's home page, written on the canvas

values

What you value, as cards, a list or icons

values

timeline

Milestones, oldest or newest first

timeline

stats

By the numbers

stats

awards

Awards and recognition

awards

team, leadership, advisors, investors

People cards with photo, role, bio and links

Your author profiles, your members, or people written here

logos

Customer logos

logos

testimonials

What people say

testimonials

press

"As seen in"

press

offices

Offices, with map and opening hours

offices, or your contact page's offices

gallery

Photos of life at the company

gallery

community

Open source and community links

community

impact

Sustainability, impact, diversity, accessibility, ethics statements

impact

faq

Questions

Your FAQ space, or questions written here

roles

Open roles

Your careers board, live

news

The latest posts

Your blog, live

contact

Your contact page's email, phone and topics

Your contact space, live

status

Your status page's state

Your status page, live

legal

Your policies

Your legal register, live

social

Your social profiles

The site's social links (the footer's)

cta

Calls to action

ctas

presskit

A link to the press kit

pressKit

facts

The company's legal facts (an imprint)

company, then your organization settings

The live bands never copy anything. A role closed on the careers board is gone from the About page the same moment; a post published on the blog appears in news without anyone touching the About page.

Start in the studio

Open the space and choose Create your About page. It asks five things — what kind of page, the company name and tagline, the mission, the story, and who the team is — with everything pre-filled from what your organization already has: its name and logo, its social profiles, the author profiles of your blog, your staff. One click publishes the story as the home page.

After that, About page parts (under Settings) edits every part, and Look sets how each band is drawn.

Beside the form, five more panels do the rest of the work:

  • Start from your website (under Pages) reads your current About page — its Organization markup and its share tags — shows what it found, and fills in only the parts you tick. By default it keeps everything you have already written and fills the empty parts, so an import never overwrites work.

  • Search appearance edits the page's title, description and share image with a live preview of the search result and a character count. A blank field is the generated one, and the preview shows it in grey.

  • Translations shows, per language, how much of the page is translated, what is missing, and any list translated at a different length than its original (values 1–3 in German and 4–5 in English).

  • People pages switches the per-person pages on or off and picks which bands get them; it also holds the IndexNow switch and the embed snippet.

  • Change history (under Housekeeping) lists every save to the parts, who made it and which parts it touched, with an undo for each.

The kinds of About page

Six layout presets, each a different arrangement of the same parts:

  • Startup (the default) — mission, story, values, numbers, team, investors, milestones, customers, news, open roles.

  • Enterprise — numbers first, the leadership, offices on a map, awards, commitments and the company facts.

  • Agency — a full-bleed banner, the work and who it was for, a gallery.

  • Nonprofit — the mission as a pull quote, the impact in numbers, the board and advisors, the charity's registration.

  • Open-source project — the community leads, the maintainers in a dense grid, adopters and releases.

  • Personal / creator — a narrow page: the story, milestones newest first, where you have been featured.

A preset is only a patch: which bands the generated page draws in which order, and a few theme.about keys. Every band is available on every preset, and any key you set yourself wins over the preset's.

The preset names, for preset on POST …/spaces and on PUT …/preset:

preset

Kind

startup

Startup (the default; what an unset preset means)

enterprise

Enterprise

agency

Agency

nonprofit

Nonprofit

open-source

Open-source project

personal

Personal / creator

PUT /orgs/{orgId}/spaces/{spaceId}/preset
{ "preset": "nonprofit" }

A name the type does not have is a 422 that lists these.

The story's sections

The story is the space's home page, written in four named sections. In Markdown, each is an H2 with its label — or any heading with the section's key as an anchor, which is the spelling for a translation:

## Our story
We started Acme in 2019 because …

## How we work
Small teams that own a problem end to end.

## La vida aquí {#culture}
…

A translation's headings may also be the section's label in its language: ## Nuestra historia, ## Unsere Geschichte, ## Notre histoire and ## Nossa história all fill story (Spanish, German, French and Portuguese labels ship with the type). The {#key} anchor works in every language.

Key

Label

story

Our story

Required: why the company exists and how it started

approach

How we work

What is different about the way you build, serve or decide

culture

Life here

What a week here is like

future

Where we are going

The next chapter

Through the items API the same sections are keys: POST …/items { "title": "About", "sections": { "story": "…", "approach": "…" } }, and PATCH …/items/{id} { "sections": { "future": "…" } } replaces only the sections it names. "locale": "es" writes the Spanish twin.

Moving a hand-built About page onto the type

A space's type is fixed when it is created, so a page built by hand on a CUSTOM space (schemaType: "AboutPage") moves into a new ABOUT space. The addresses stay the same; only the space behind them changes.

  1. Create the ABOUT space beside the old one, under a different slug for now, with the preset you want: POST …/spaces { "name": "About", "slug": "about-new", "type": "ABOUT", "visibility": "PUBLIC", "preset": "startup" }.

  2. Move the words. Read the old home page as Markdown (GET …/items/{itemId} answers markdown, the whole page) and write it as the new space's story, its paragraphs under the section headings above: POST …/items { "title": "About", "sections": { "story": "…" } }, then name it the home page with PUT …/spaces/{spaceId}/home-page { "homePageId": "…" } and publish it. Each language twin of the old page goes the same way with "locale": "<code>".

  3. Move the facts into parts. Whatever the old page laid out by hand — the mission, values, numbers, team, offices, legal name, founding date — goes into PUT …/spaces/{spaceId}/about (or about: in forumulate.yaml). The company facts can be organization settings (about.legal_name, …) so every About space shares them. Social profiles come from the site's chrome.socialLinks without being copied.

  4. Move the address. Delete the old space's mount (DELETE …/spaces/{oldSpaceId}/domains/{domainId}) and add the same hostname and basePath to the new space (POST …/spaces/{newSpaceId}/domains). The hostname is already proved, so the mount is created verified; POST …/domains/{domainId}/activate cuts over, and your proxy rule does not change. On our own address the type is read at /ab/<org>/<slug>: move the old space's slug out of the way (PATCH …/spaces/{oldSpaceId}/slug), free about from its slug history (DELETE …/slug/history/about) and give it to the new space if you link to that address.

  5. Retire the old space. Make it PRIVATE (or move it to the trash). Any other address it published — a second page, a press page — gets a redirect on the new space (PUT …/spaces/{spaceId}/redirects).

  6. Drop the workarounds. The type publishes AboutPage with the Organization as its mainEntity, names /about and /about/<code> as the canonical addresses and lists them in its sitemap, so a hand-set canonicalUrl or schemaType from the old page is not needed — and should not be copied across.

Writing the parts: PUT …/about

Every part lives in one place, read and written through one door:

GET /orgs/{orgId}/spaces/{spaceId}/about
PUT /orgs/{orgId}/spaces/{spaceId}/about

PUT has PATCH semantics: a key you send replaces that key, null clears it, a key you leave out keeps its value. A misspelt key is refused by name.

{
  "mission": "Make work lighter.",
  "values": [
    { "title": "Ship small", "text": "Weekly, not quarterly." },
    { "title": "Write it down" }
  ],
  "stats": [{ "value": "12,000+", "label": "Teams" }, { "value": "38", "label": "Countries" }],
  "timeline": [
    { "date": "2019", "title": "Founded in Berlin" },
    { "date": "2023-05", "title": "Series A" }
  ],
  "team": { "source": "authors", "keys": ["ada", "grace"], "founders": ["ada"] },
  "investors": {
    "source": "manual",
    "people": [{ "name": "Jane Doe", "organization": "Example Ventures" }]
  },
  "company": { "legalName": "Acme Software GmbH", "vatId": "DE123456789" },
  "sources": { "blog": "none" }
}

Every reference is checked before anything is written: an author key that names no profile, a member who is not in your organization, a source that is not a space of the right type — each is a 422 that names the key.

The people bands

Each of team, leadership, advisors and investors takes one of three sources:

  • authors — author profiles: this space's own (Settings → People), or a blog's (registrySpaceId). A profile's portrait focal point, role, bio and links are the same on a byline and on the About page, so a new job title is changed once. keys picks and orders them; without it every profile shows.

  • members — members of your organization, by userIds. Only the members you name are shown, as their own profiles say (name, title, bio, avatar) — never their email. A member list is never published wholesale.

  • manual — people written here, with photo, photoFocus, role, bio, organization, links and founder.

founders (author keys or user ids) marks founders, who are published as the Organization's founder.

The live bands

sources says which space each live band reads: careers, blog, faq, contact, status and legal. Each is a space id, none, or unset — which means your organization's only public space of that type (two blogs is a choice we will not make for you). A chosen space is read only while it is public.

Whether a live band is shown at all is a front-door switch: showRoles, showNews, showContact, showSocial and showPressKit are on by default, showFaq, showStatus and showLegal off, and showFacts on.

The company facts, once for the whole organization

A company is one legal entity however many About pages it publishes. Its facts are organization settings, which every About space reads unless it says otherwise:

about.company_name, about.tagline, about.legal_name, about.founding_date, about.employees, about.registration_number, about.registry, about.vat_id, about.tax_id, about.registered_address, about.email and about.phone.

The precedence is the one every setting uses: the space's own company value, then the organization setting, then the default — the organization's name for the company name, the support address for the email, and nothing for the rest. The public view says where each fact came from (company.from).

The press kit

pressKit holds an introduction, the boilerplate journalists paste, a press email, and files (logos, photos, documents, video, archives). With brand on (the default), the kit also offers your site's own logos and brand colours, read from the theme — a new logo reaches the kit the day it reaches the header. The kit has its own page at the space’s press-kit address, published only while the kit holds anything; the sitemap lists it on the same rule.

Languages

Every part with words can be translated: translations.<language> holds the same keys (hero, mission, values, timeline, headings, seo, …). A translated list replaces the original list, so a translator never leaves half of the values in English. The story is a page, so it is translated like any page — its language twin is served at the language's own address. Band headings default to the reader's language; headings.<band> and intros.<band> are your own words.

Search engines and sharing

The page publishes an AboutPage whose mainEntity is your Organization — the same node your site's markup names, so a crawler merges them — told in full: legal name, slogan, logo, founding date and place, number of employees, the registered address, VAT and tax numbers, registration identifiers, founders and people (each a Person with their profiles as sameAs), awards, offices with their addresses, coordinates and hours, and your social profiles as sameAs. It also tells what the page holds: your investors as funder (a firm named in their organization once, however many people from it you list), customer quotes as Reviews of the company with no rating nobody gave, press mentions as subjectOf articles, the areas you serve, the bodies you belong to (memberOf) and your subsidiaries (subOrganization), and, when the FAQ band holds its own questions, a FAQPage. Advisors are told on the page and not to crawlers, which have no honest property for one. A BreadcrumbList trails home → About.

The Organization agrees with the one every other page of your site publishes: the same logo (the site's theme.schemaLogoUrl, else logoMark, else logoUrl; the company logo only when the theme has none), the same sameAs (the social links your footer draws) and the same contactPoint (your Contact space's email, address and languages). The company description is the only description of the Organization; the site node does not state another. See Your organization in search results.

The page's title is yours (seo.title), else "About Acme — Tools for teams" built from the company name and tagline in the reader's language. The description is seo.description, else the mission. The share image is seo.image, else the hero's picture, else a card drawn from the page itself (your name, tagline, logo and up to three of your numbers, at {page}/social-card.png), never the generic space card; a person's page has their name and role on the same card. There is one canonical address and its language twins (hreflang); every other address under the space answers 404 inside your site, never a second copy of the page.

Templates

Six official templates start a page that already looks like one of the kinds above, with sample content in every part: Lantern About (startup), Granite Group (enterprise), Studiohaus (agency), Commonweal (nonprofit), Opencore (open source) and Solo Notes (personal). Each is a theme bundle, a preset, the parts as the PUT …/about body and a story page, poured through the same door you write with, so a template can never store a part the door would refuse, and a part you have already written is kept.

The sample people are stored with sample: true: they are drawn so the template looks like itself, but never told to search engines, given a page of their own or put in the sitemap until you replace them or untick Sample on their row (the studio says how many are left). The numbers, quotes and press links are placeholders to replace; the brand is Your Brand, replaced by your organization's name. Apply one from Templates in the console.

A page for each person

A person with a bio gets a page of their own, {page}/people/{name}, and the people hub {page}/people lists everyone who has one. Both exist only while somebody has a page, and the sitemap submits them on the same rule: the hub of a company with nobody to show is a 404, never an empty page a crawler could index. A person without a bio has no page, so no thin pages are published.

peoplePages turns them off ({ "on": false }) or picks the bands that get them ({ "groups": ["team", "leadership", "advisors"] }); the default is the team and the leadership, because a cap table is not a staff directory. A person from an author registry keeps the registry key as their address, so renaming them does not move their page; anyone else is addressed by their name.

Any repeated item that renders as a card can restyle itself with the same key, look: { "card": { "surface": "raised" } } (flat, outline or raised; the card's radius and pad too; an office takes surface only): a value, a number, an award, a quote, a press mention, a commitment, an office (offices[].look, which Contact offices read too) and a person. A person written on the page (not one read from an author registry or the members) can also set look.photo for their portrait's shape. Each item's look goes over its band's theme.about card, so a founder can sit on a raised card among outlined ones. The studio has a Card style field on every one of those rows.

Each person's page publishes a ProfilePage whose mainEntity is a Person working for the same Organization as the rest of the site, with their links as sameAs; the hub publishes a CollectionPage of them. Their name on the team band links to the page, and the Person in the company markup carries it as their url.

Outlets

Theme components and extensions can place markup on an About page through eleven outlets (the about surface of the theme components registry):

Outlet

Where

about-above-bands, about-below-bands

Above the first band and below the last

about-band-after

Under every band (context band)

about-person-card-footer

The foot of every person card, in the bands and on the hub

about-people-hub-above, about-people-hub-below

The people hub

about-person-above-body, about-person-aside, about-person-after-body

A person's page

about-press-kit-above, about-press-kit-below

The press kit page

The person outlets offer person.name, person.slug and person.group to the component's HTML as placeholders.

Embeds

The team grid, customer logos, press mentions, numbers and a few other bands can be shown on any other site. Paste the script where it should appear:

<script src="https://acme.com/about/widget.js" data-part="team,logos"></script>

data-part names up to four bands from team, leadership, advisors, investors, logos, testimonials, press, stats, awards, values and timeline. The script writes one iframe after its own tag: your About page with ?embed=1&part=…, drawn in the page's own look, with every link opening in the top window and the frame sized to its content by the height it posts, so there is no scrollbar and no layout jump. Nothing third-party is loaded, and the frame carries no markup of its own: the host page's is the host's. The live bands (roles, news, contact) belong to other spaces, which have widgets of their own.

History and undo

The structured parts have a history. Every save that changes something (from the studio, PUT or PATCH …/about, a manifest run or a template) is recorded with the keys it changed and their values before and after, in the same transaction as the save, so a change is never stored without its record. Read it with GET …/about/history (or fmu about history); put one change back with POST …/about/history/{entryId}/revert (or fmu about undo <id>), which restores exactly the keys that change touched. An undo is a write like any other: every reference is checked again (an author deleted since is a 422 naming the key), and the undo is itself an entry you can undo. The story is a page and keeps its own revisions under Snapshots.

The history is the audit log's own rows, so the organization's audit export shows the same record.

Start from an existing website

POST …/about/import {"url": "https://acme.com/about"} reads the page (public hosts only, through the same guarded fetch every import uses) and answers a suggestion without saving anything: details, a valid PUT …/about body built from its Organization markup (name, legal name, founding date, address, employees, founders and staff, awards, areas served) and Open Graph tags (SEO title, description, share image); found, what it read; social, its sameAs profiles; and skipped, any key it had a value for that the About schema refused, with the reason. A page with neither kind of markup is a 422; a page that cannot be fetched is a 502.

fmu about import https://acme.com/about --json | jq .details > about.json
fmu about set --data @about.json

Webhooks

about.updated fires after a save that changed something, once, with keys (the detail keys that changed), via (update or revert) and after (those keys as stored, null where cleared). A save that changed nothing fires nothing, and the story page announces itself as page.published. A site that mirrors your team, press kit or legal facts hears it here instead of polling the page.

IndexNow

Switch on indexNow in the space's publish pings (the Ping IndexNow box under People pages, or PUT …/publish-pings {"indexNow": true}) and Bing, Yandex and the others are told when the page changes: the page, its press kit and the people hub, at most once every ten minutes, because an editor saves in bursts. The key file is served at {page}/indexnow.txt.

How it looks: theme.about

Everything below is a key of theme.about, strict like every theme object: a misspelt key is a 422 that names it. Each is settable alone, and a key you set beats the preset's and the look's. The generated reference of every key lists the values; this is what each group is for.

Group

What it sets

look

default, minimal (words first, no boxes), bold (a painted banner, raised cards), editorial (a split hero, an alternating timeline) or paper (the plain reader). Each is only a patch of the keys below

page, density, bands

The page's measure, the space between bands, and their headings: alignment, size, and a rule or tint between bands

hero, mission

The opening band: layout (centered, split, banner, minimal), size, the banner's overlay and height, a backdrop; the mission's size, alignment and whether it is a pull quote

values, timeline, stats, awards

Cards, a list or icons; a vertical, alternating or horizontal timeline, oldest or newest first, dates as written or as a year; numbers in a row, a grid or cards; awards as a list, badges or cards

people, team, leadership, advisors, investors

The shared people look and each band's own: grid, list or compact, columns, portrait shape and size, whether the bio and links show, the card surface. The people hub and each person's page use the same look

logos, testimonials, press

A row or grid, greyscale or colour, size; a grid, a stack or a featured quote; outlets as logos, a list or cards, with or without their quotes

offices, gallery, impact, community

Cards or a list and the map (link, card, tile, none); a grid, masonry or a strip with its aspect and captions; commitments and community links as cards or a list

roles, news, faq, legal, contact, status, social

How each live band is drawn: news as the page's own post cards or a list (or the shared feed's layouts), the others by the shared feed

cta, presskit, facts

The call to action as a band, a card or a split (optionally in the brand colour); the press kit's grid or list, colours and logos; the company facts as a list, a table or a grid

story

How the home page's prose is set: stacked, or each section's heading beside its text, with its own measure, a sticky heading and a rule between sections

sections

One band's own overrides, by band name: its background tone, its heading's alignment, or hidden wherever the page places it

The design keys

What the defaults are, and the keys that change each one. Every key is independent — it works under every look and preset — and a look is only a patch of these. Layering is the theme default, then your theme.about, then theme.about.sections.<band> for one band.

Key

Values

Unset

page.width

narrow, default, wide, full

wide (72rem) on every look but paper; personal keeps narrow

page.measure

narrow (38rem), default (46rem), wide (60rem): the line length of the mission, the story and the band intros

default

sections.<band>.tone

none, tint (a faint panel), brand (the brand colour, its text in the brand's ink), gradient (a brand wash)

none

sections.<band>.align

start, center: that band's heading and intro, over bands.align

bands.align

sections.<band>.hidden

true draws the band nowhere, like a frontDoor.show* switch

shown

hero.eyebrow

text, pill

text

mission.style

plain, bar (a bar beside words set at the start), marks (quote marks over centred words), card, brand (a brand-coloured panel)

from mission.quote: marks when centred, bar at the start, else plain; bold uses brand

story.layout

stacked, split (the heading in a column beside its section from 900px)

split (stacked on minimal)

story.measure

as page.measure

page.measure

story.sticky

split: each section's heading stays in view while its section scrolls — a shaped story's sections, or a plain markdown story split on its ## headings

on

story.rule

a hairline between sections

off (on under minimal)

news.layout

cards (a picture, the date, the title and a clamped standfirst, the whole card one link), list (dated rows with a thumb), or the shared feed's own grid, feed, rows, compact

cards (list under minimal and the open-source preset)

news.columns

cards: 1–4 posts to a row from 900px (two on a tablet, one on a phone)

3

news.showImage

the post's cover — or, where it has none and another post in the band has one, a tinted box of the same shape with a page glyph, so a row lines up. When no post has a cover, no box is drawn

on (off under minimal)

news.showExcerpt

the post's standfirst, clamped to three lines (two in list)

on

values.iconStyle

plain, tile, circle

tile

values.align

start, center

start

timeline.style

line, cards (each milestone boxed)

line

timeline.marker

dot, ring, none

ring

stats.accent

the figures in the brand colour

off (on under bold)

stats.dividers

row: a hairline between figures

on

people.aspect (and per band)

1:1, 4:5, 3:4: the portrait's box

1:1

people.monogram (and per band)

tint (a hue per person, the same on every page), brand, neutral: what a person with no photo wears

tint (brand under bold)

people.align (and per band)

start, center

start

logos.style

plain, tiles (each logo on a bordered tile of one height)

plain

logos.names

the customer's name under its logo

off

theme.about.contact.layout

card, split (the line and button beside the ways to reach you), inline

split (inline under minimal)

cta.withContact

when the page draws both a CTA and the contact band, they close the page as ONE section: the first CTA's heading, line and button, a "Get in touch" link (where the CTA has no second button), and the contact methods beside it. false keeps two bands

on

Other defaults: portraits are rounded tiles (people.photo: rounded), four to a row; the backers (investors) are a row of small outlined cards with a monogram or logo tile and no bio; values are outlined cards with a tinted icon tile. Set the band's own key (investors.layout, people.photo) to change any of them. A card's shadow (none, sm, md, lg) is honoured on every About card, and surface: flat is a tinted card with no border.

A band never prints its heading over nothing: the contact band always leads with a line (your intros.contact, else the reader's default), and a logo that cannot load is replaced by the customer's name in its tile, never a broken-image icon.

Content as code

In forumulate.yaml, an About space takes an about: key — the parts inline, or the name of a YAML or JSON file beside the manifest:

org: acme
spaces:
  - path: about
    space: about
    create: { type: ABOUT, name: About }
    about: about.yaml

The folder's Markdown is the story page. A run sends only the parts that differ from what the space holds; null clears one. In a manifest the parts are the space's about: key. settings.about is refused, because stored raw it would skip every reference check, the history and the webhook; so is a PATCH …/spaces/{spaceId} carrying settings.about (a 422 naming the door).

The CLI has a verb for each door:

fmu about get                       # the parts as stored, translations included
fmu about set --data @about.json    # a key you send replaces it; null clears it
fmu about patch --data '{"hero":{"headline":"We build tools"}}'
fmu about preview --locale de       # the page as a reader sees it
fmu about prefill                   # what the page can start from
fmu about import https://acme.com/about
fmu about history                   # every change, newest first
fmu about undo <entryId>

Translations are written the same way: fmu about set --data '{"translations":{"de":{"mission":"…"}}}'.

Recipes

A startup's page in five minutes. Run Create your About page, pick Startup, write two sentences of story, and choose your blog's authors as the team. Add stats and three values. Roles and news appear from your careers board and blog by themselves.

An imprint for a German company. Set about.legal_name, about.registered_address, about.registration_number, about.registry and about.vat_id once in your organization settings. Every About space shows them in the facts band and publishes them as legalName, address, identifier and vatID.

A nonprofit. The Nonprofit preset, impact statements for your programmes, stats for the people reached, the board as leadership and your patrons as advisors, and a cta asking for donations. Turn showFaq on to answer the questions donors ask.

An open-source project. The Open-source preset, community links to the repository, the chat and the contributing guide, the maintainers as team from a blog's author registry, and logos for adopters.

A press page. Fill pressKit (boilerplate, a press email, logo files); showPressKit puts a link on the About page, and your contact page's press band links the kit beside the press address.

In the API

Every operation below is also reachable from the other surfaces without a dedicated command. forumulate api <Operation> calls it from the CLI, the JavaScript SDK has a typed method for each one (the last column names it; the Python and Go SDKs are generated from the same spec), and an agent reaches the organization-scoped ones through the MCP agent server — its api_* family tools, or call_api. Where a CLI command or a hand-made MCP tool exists too, the last column names it. Operation names link to the API reference.

About

Operation

Request

What it does

Shortcuts

About_details

GET /orgs/{orgId}/spaces/{spaceId}/about

Get an About page's details

forumulate about get<br>client.about.details()

About_setDetails

PUT /orgs/{orgId}/spaces/{spaceId}/about

Update an About page's details

forumulate about set<br>client.about.setDetails()

About_patchDetails

PATCH /orgs/{orgId}/spaces/{spaceId}/about

Change part of an About page's details

forumulate about patch<br>client.about.patchDetails()

About_prefill

GET /orgs/{orgId}/spaces/{spaceId}/about/prefill

What an About page can be pre-filled from

forumulate about prefill<br>client.about.prefill()

About_suggest

POST /orgs/{orgId}/spaces/{spaceId}/about/import

Suggest an About page from an existing website

forumulate about import<br>client.about.suggest()

About_history

GET /orgs/{orgId}/spaces/{spaceId}/about/history

List an About page's change history

forumulate about history<br>client.about.history()

About_revert

POST /orgs/{orgId}/spaces/{spaceId}/about/history/{entryId}/revert

Undo one change to an About page

forumulate about undo<br>client.about.revert()

About_preview

GET /orgs/{orgId}/spaces/{spaceId}/about/preview

An About page resolved, as the reader would draw it

forumulate about preview<br>client.about.preview()

The Forumulate teamUpdated