Joinery Platform Documentation

Welcome to the Joinery platform documentation. Select a topic from the sidebar, or browse the categories below.

Getting Started

  • Quick Start -- New? Start here. Rent a server, point your domain, and install Joinery in about 15 minutes — no prior experience required
  • Installation -- Full reference: Docker or bare-metal, SSL, domain management, multi-site, cloning

Core Systems

  • Routing -- How pages are created and served, URL patterns, and the theme override chain
  • Logic Architecture -- Business logic layer, LogicResult pattern, and page flow
  • Admin Pages -- Building admin interface pages with AdminPage, tables, and forms
  • FormWriter -- Form generation, validation integration, and field types
  • Validation -- Three-layer validation system (client, server, model)
  • Settings -- System settings management and auto-creating settings
  • Email System -- Composing and sending email with templates, service fallback, and batch operations
  • Mailbox -- Self-hosted email: receiving, forwarding, local mailboxes, webmail reader, IMAP sync, DKIM/SRS
  • Photo System -- Multi-photo management, uploads, and image sizing
  • Cloud Storage -- S3-compatible cloud bucket for public uploaded files
  • Deletion System -- Soft delete, permanent delete, cascading, and foreign key actions
  • SEO Metadata -- SEO, Open Graph, and Twitter Card conventions for public views

Features

Security

  • Account Security -- The doctrine: sign-in paths, the passkey role split, step-up, unlock windows, and what every sensitive action requires
  • Passkeys -- Platform WebAuthn: sign-in, step-up confirmation, PRF secret derivation, and the consumer contract
  • Sealed Vault -- Per-user encryption identity: key hierarchy, unlock window, consumer hooks, and key rotation
  • SecretBox -- Authenticated encryption for server-held secrets at rest
  • OAuth2 Core -- Platform OAuth2 client, provider catalog, consumers, and callback flow
  • File Signed URLs -- Short-lived signed links for private files

Extensibility

Operations