How this site is built
About this site
How this site is built
One hundred company websites, none of them hand-built. Content is decoupled from presentation so the people who know the content can change it directly.
Company spreadsheets
Each company has its own Google spreadsheet in its own Drive folder: its profile, people, departments, roles and projects. A company can edit only its own.
Registry
One program spreadsheet, owned by program staff, lists every company and links to its spreadsheet. Its Status column is the approval step: only Published companies reach the site.
Sync + validate
A build script reads the Registry, then every published company spreadsheet, checks each against a single schema, and writes one JSON file. Anything it cannot make sense of is reported rather than silently dropped.
Static site
The site is generated as plain HTML. No database, no server-side code, nothing to be compromised, and it will run anywhere, including inside the university CMS later.
Why it is built this way
Content changes without a code change
A company edits its spreadsheet. No developer, no ticket, no deploy request.
One schema, one source of truth
The company spreadsheets, the Registry, the validation and this site are all generated from schema/schema.json. Add a field there and every company spreadsheet gains the column, without losing what is already in it.
Publication is gated
A company only appears once program staff set its Status to Published in the Registry, which companies cannot edit.
One company cannot break another
Every company has its own spreadsheet, so nobody can overwrite another company by mistyping a name, and one broken spreadsheet only takes that one company off the site.
Failures are visible, not silent
Unshared spreadsheets, missing tabs, bad colour codes and projects naming roles that do not exist are all listed on the data status page.
Portable by design
The output is static HTML with no runtime dependencies. Hosting it under an existing site, or moving it into the university CMS, does not require rewriting it.
What a company controls
A company controls its own tagline, sector, mission, vision, strategy, brand colours, logo, org chart, board, roles and projects. Those choices change its directory card and its page — including the colour of the page itself.
What a company does not control is the layout, the navigation, the accessibility of the page or whether it is published at all, and its name, which is part of its web address. That keeps a hundred companies visually coherent without anyone policing them.
What happens when someone gets it wrong
The most common problems will be a spreadsheet that is not shared, a column heading someone renamed, or a project that names a role the company has not listed. None of them is silently dropped: the build lists each one on the data status page, naming the company and what it could not read, so the program team can fix it. A company whose spreadsheet cannot be read at all is left off the site until it can, and every other company carries on updating.
Current state of this prototype
This build read its content from the live registry and company spreadsheets, generated 8 Oct 2026, 3:21 pm Melbourne time.