Developers

The Zone owns the layout. The platform owns the data and rules.

A Zone is a community’s own site and can include custom presentation code. The code handles layout only. The platform reads and provides the data, and keeps control of permissions and review.

Theme

Start with settings, then write code

Each Zone starts with a default theme. Adjust its density, page background, and cover ratio. If needed, change its accent color, then arrange modules such as a featured carousel, bookshelf, rankings, and curated lists. Use presentation code only for layouts the settings cannot create.

A sheet of deep blue-gray paper is folded into a small standing frame with a window. A light blue sheet stands behind it.

Settings

A theme configuration

const tokens: ZoneTokens = {
  colorScheme: 'system',
  accent: '#3b4a5a',
  density: 'comfortable',
  cardRadius: 'md',
  headingFontScale: 'md',
  surfaceTint: 'subtle',
  fontPairing: 'serif',
  pageSurface: 'flat',
  coverStyle: 'portrait',
};
All required fields in a theme configuration. Types come from @rezics/zone-sdk.

Slots

Code fills named slots

Presentation code is a package that supplies custom components to named slots such as the header, hero, search bar, data panels, work cards, modules, and footer. Each slot receives the platform version, which the package can wrap or replace.

export default defineZonePackage({
  slug: 'anime',
  css,
  catalogue: { count: 'episodes',
    formatNames: animeFormatNames
  },
  slots: {
    browseHeader:
      AnimeBrowseHeader,
    workCard: AnimeCard,
    cataloguePanel:
      AnimeCataloguePanel,
    footer: AnimeFooter,
  },
});
Excerpt from the package entry point for the REZICS anime Zone.

Boundaries

Package boundaries

  • No data fetching

    The platform reads data and sends it to each slot. The package makes no requests.

  • No credential access

    The package cannot read cookies, browser storage, or credentials.

  • Platform controls stay visible

    Account and Zone menus, reporting, and age checks stay outside the slots. Every work keeps its “Why this is here” label.

  • Styles stay within the Zone

    Styles are scoped to the Zone. Colors and fonts use only variables provided by the platform.

  • Size limits

    Compressed CSS is limited to 40 KiB and JavaScript to 50 KiB.

Release

From review to release

  • Calculate a hash

    All package files produce one hash. Changing a single byte changes the hash.

  • Get an independent review

    A different account checks the source code, built files, accessibility, and failure behavior, then records the decision and evidence hash.

  • Enable with an expiry date

    Only reviewed versions can be enabled, and each has an expiry date. Rolling back to an older version does not restore its old approval.

  • Return to the standard layout

    If the hash does not match, the standard layout appears. Readers can disable the package, add ?safe to the URL to use safe mode, or rely on the platform-wide switch.

One backend, your choice of frontend; AI agents can read the same data.

A new community site does not need a new backend. Presentation code reads only the public API and contains no business logic. Anything a Zone displays is also available through the API.

Build your tools on one API.

Use your own code to read and write works, library entries, and community data. Every operation follows REZICS identity and authorization rules.