Per-deployment configuration for a BulletinMail instance. Lives at deployments/<apex>/instance.config.json and is loaded at Worker startup via loadFromEnv in packages/shared/src/config.ts. The JSON Schema is at packages/shared/instance.config.schema.json.
Schema
Identity
Field
Type
Default
Description
apexDomain
string (required)
—
Root domain serving the instance, e.g. bulletinmail.org.
adminDomain
string (required)
—
Host serving the admin app, e.g. app.bulletinmail.org. Must be a subdomain of apexDomain.
productName
string (required)
—
Display name, e.g. "BulletinMail". Used in email subject prefixes, From-header decorations, and page titles.
productNameShort
string (required)
—
Short form, e.g. "Bulletin". Used where space is tight.
tagline
string (required)
—
Marketing line shown on the apex landing and email footers.
System addresses
All values are local-parts (no @<apex>); combined with apexDomain at runtime.
Field
Type
Default
Description
supportAddress
string
"support"
Operator support contact.
abuseAddress
string
"abuse"
Abuse reports.
dmarcAddress
string
"dmarc"
DMARC aggregate / forensic report destination.
noreplyAddress
string
"noreply"
Default From local-part for system-generated mail.
unsubscribeAddressPrefix
string
"unsubscribe+"
Local-part prefix for one-click unsubscribe tokens. The full pattern is <prefix><token>@<apex>.
URL templates
Placeholders {tenant}, {group}, {token}, {apex} are interpolated at template-expansion time.