Joinery Platform Documentation
Welcome to the Joinery platform documentation. Select a topic from the sidebar, or browse the categories below.
Getting Started
- Installation -- Deploy Joinery on Docker or bare-metal, configure SSL, manage domains
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
- Email Forwarding -- Self-hosted email forwarding with virtual mailboxes
- 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
- Analytics -- Visitor events, conversion tracking, and attribution reporting
- A/B Testing -- Experiments, variant assignment, and conversion measurement
- Recurring Events -- Virtual/materialized instance pattern for recurring events
- Subscription Tiers -- Subscription management and feature-based access control
- Product Purchase Hooks -- Plugin hooks triggered on product purchase
- Product Requirements -- Collecting data from buyers at checkout
- Questions & Surveys -- Built-in questionnaire system: question types, surveys, answer storage
- Social Features -- Like/favorite, block, report, and messaging systems
- Scheduled Tasks -- Cron-based task runner and task development
- REST API -- API authentication, endpoints, and usage
- Joinery AI Plugin -- LLM-driven recipes and the generic
query_modelread surface - ScrollDaddy Plugin -- DNS filtering: unified block model, tier gating, editor UI, resolver flow
Extensibility
- Plugin and Theme Developer Guide -- Plugin architecture, routing, and theme overrides
- Component System -- Reusable page components with admin configuration
- Creating Components from Themes -- Extracting theme sections into components
- Theme Integration Instructions -- Step-by-step theme setup and integration
Operations
- Deploy and Upgrade -- Deployment, upgrades, and installation
- Publish/Upgrade System Analysis -- How upgrade packages are built and distributed
- Server Manager -- Remote server management and the Go agent