Fóir for agencies

A client site is not one project, it is the twentieth. Fóir is built so the twentieth costs less than the first.

Define the schema once

Most agency work rhymes. The same page model, the same block set, the same settings, rebuilt per client because there was nowhere to put the shared version.

In Fóir, clients who share a schema are organisations inside one project. A model is defined once on the project and every organisation inherits that definition, with its own content kept apart. An organisation can add models of its own where one client needs more, without forking the rest.

Keys that match how you actually work

A build pipeline needs to reach every site. A client, or a contractor on one brand, should reach exactly one.

A project key can act in any organisation in the project, one request at a time, and a key confined to an organisation reaches only that client. Each key reaches only the models and operations you allow.

Every client on their own domain

Client sign-in on your vendor's domain is a conversation you do not want to have in a pitch.

Each project gets its own sign-in domain and its own branding, so the account screen belongs to the client's brand rather than to ours.

Handover without a hostage situation

The awkward part of agency work is what happens when a client leaves or brings it in house.

Their project exports to a Postgres database they own, with the access rules translated alongside it. You can hand it over cleanly, which is easier to sell at the start.

What you stop rebuilding

The parts of a client build that are the same every time, already there.

Sign-in

Registration, password, one-time code, social and OIDC, on the client's own domain.

Media

An asset library with transformations and responsive renditions, and access rules over files.

Forms and integrations

Outbound operations to the systems each client uses, with credentials kept in a vault rather than in a repo.

Scheduling

Publish at a future time and roll a batch out together, so a campaign lands at once.

Redirects

Old URLs kept alive through a migration, managed by the people who own the content.

Client feedback

Comments anchored to the record they concern, so review is not a spreadsheet of screenshots.

Localisation

Per-field translations with a fallback chain, for the client whose second market arrives later.

Personalisation

Different content by audience, defined from the client's own models and resolved per request.

Set up the first one

Create a project, define the models you use on every build, and add the first client as an organisation.