Syntica
Get started
OverviewAgentsConsultancies and agenciesInternal teamsPricingDocsGuidesBlogSecurityAbout
Concept · Team
Code ownership & membership
On syntica, ownership is organisation-scoped, not per-app. Every application, repository, config, and deployment belongs to exactly one organisation. You collaborate by adding people to your organisation, not by sharing individual apps.
Roles are enforced. A role is an access boundary, not a label: actions are checked against the role on every request, and an unrecognised role is denied rather than defaulted. A viewer cannot change configuration or deploy. See the security page for what that covers.
The model
User ──⟨ membership (role) ⟩── Organisation ──⟨ App / Repo / Config / Deploy
Users belong to organisations through memberships, and every resource points to its owning organisation. Any active member of an organisation can access everything in it.
Roles
Each membership carries one of three roles:
Role
Intended for
admin
Manages the organisation, members, and billing. The first admin created at registration is treated as the org owner for billing and notification emails.
developer
Builds and deploys applications across the organisation.
viewer
Read-oriented access for stakeholders who want visibility into apps and deployments.
Inviting & seats
1
Click Invite member and enter an email and the role they'll receive. An invite link is emailed to them.
2
They open the link, set their name, and a membership is created with the invited role.
3
Pending invites can be resent, copied, or cancelled from the members screen until they're accepted or expire.
Seat limits. Your plan sets a maximum number of users. Active members plus pending invites count toward that limit. When seats are full, add more before inviting again.
Managing members
The members screen lists everyone in your organisation with their name, email, role, and last active time. From the row actions you can:
Change a role via the inline dropdown.
Remove a member, which frees their seat and retains history. It doesn't delete their account. You can't change or remove your own membership.
Your code stays yours
Ownership on syntica is deliberately simple: the organisation owns its apps, and its members share access. There is no per-app owner, maintainer, or collaborator list, and no ownership-transfer flow. Access changes only by adding or removing members. Whatever the arrangement, the git repository behind an app is always yours to clone, move, or self-host.
Concept · Infrastructure
Deployment regions
Every application currently deploys to eu-central-1 (Frankfurt). It's the only region available today.
Additional regions are under consideration. Nothing is scheduled today. If you have a specific data-residency requirement, reach out at sales@syntica.io and tell us what you need.
Docs · Coding agents
Connecting a coding agent
One MCP server exposes 59 tools for auth, scaffolding, deploys and debugging. Claude Code, Codex, and Copilot CLI are supported today, with a full setup guide (install commands, the Claude Code plugin's slash commands, and the others' MCP config) on its own page.
Connect your coding agent →
Guide · Networking
Adding a custom domain
Point your own domain (e.g. app.yourcompany.com) at any environment of a syntica application. TLS certificates are issued and renewed automatically, with nothing to configure beyond one DNS record.
Requirements
A subdomain, not a bare/apex domain: app.example.com works, example.com on its own does not (apex domains can't hold a CNAME record).
Access to your domain's DNS settings, to add one CNAME record.
Add a domain
1
Open your application, select the environment (Dev / Staging / Production) you want to attach the domain to, and go to Settings → Custom domains.
2
Click + Add domain and enter your hostname (e.g. app.example.com).
3
Add the DNS record shown in the dialog at your DNS provider:
Type:  CNAME
Name:  app.example.com (your hostname)
Value: ingress.syntica.io
4
Save. That's it: syntica automatically detects the DNS record and issues a TLS certificate for you.
Status
Once added, the domain moves through these states automatically (checked roughly every minute):
Status
Meaning
Waiting for DNS
The CNAME record hasn't been detected yet. Propagation can take a few minutes to a few hours depending on your provider.
Validating
The CNAME was found; we're confirming it before requesting a certificate.
Issuing certificate
Requesting a free TLS certificate on your behalf (Let's Encrypt).
Active
Your domain is live and serving traffic over HTTPS.
Renewing
Automatic certificate renewal in progress. Your domain stays active throughout.
Failed
See below.
Stuck on Waiting for DNS? Double-check the CNAME record's Name matches your hostname exactly and the Value is exactly ingress.syntica.io. A trailing dot, or an A record instead of a CNAME, are the most common causes.
Failed domains
If DNS or certificate issuance keeps failing, syntica retries automatically and marks the domain Failed after 5 attempts, with a reason shown inline. Fix the underlying DNS record and syntica will pick it up on its next check, with no need to remove and re-add the domain.
Bringing your own certificate
Need a certificate you manage yourself (e.g. an EV cert, or one issued by your own internal CA)? You can upload a certificate and private key for a domain instead of using the automatic one.
While a custom certificate is active, syntica will not auto-renew it. You're responsible for replacing it before it expires. You'll get email reminders at 30, 7, and 1 day(s) before expiry. Switch back to automatic renewal any time and syntica will re-issue a managed certificate.
Syntica
Real environments for client work. Your code. Your repo. No lock-in.
Product
PricingRelease notes
Who it's for
Consultancies and agenciesInternal teamsMigration
Developers
DocsStatus
Company
AboutSecurity and governanceBlogContact
© 2026 Syntica. All rights reserved.
Privacy PolicyTerms of Service
We use cookies
We use essential cookies to run the site and optional ones to understand usage. See our Privacy Policy.