Hosted instance signup
Skip the install — sign in at syncropel.com and have a fully-portable Syncropel instance running in about a minute, free. Self-hosted and hosted are first-class equals; this page walks through the hosted onboarding path end-to-end.
If you don't want to install spl on a machine you maintain, syncropel.com runs a Syncropel instance for you. The instance is a full Syncropel runtime — the same binary, the same APIs, the same record store, the same federation surface as a self-hosted one. You can move freely between hosted and self-hosted at any time — spl export round-trips your data, and the same binary runs on both ends.
Hosted instances are free — no credit card, no trial clock. Every account can run up to three instances at no charge. Paid plans for higher limits are planned; nothing about the free tier requires one.
This page covers the signup flow you'll see at syncropel.com, what each step does, and how to connect the CLI afterwards.
Before you start
You need:
- An email address that can receive verification mail (or a social login).
- A choice of instance label — a subdomain under
syncropel.app, e.g.alice.syncropel.app. Lowercase letters, digits, and-. 3–32 characters. The label is yours for the lifetime of your account.
You do not need: a credit card, Docker, or a domain you control.
The flow
1. Sign in
Visit syncropel.com and sign in. Account creation is email-verified, with optional social login. Your account is the identity that owns every instance you create — sign in from any device and your instances follow you.
2. Pick a label
The signup page asks for a label. The label becomes both your subdomain and your default namespace prefix. If you pick alice, your instance lives at alice.syncropel.app and your records land under namespace alice by default.
Reserved labels (api, docs, www, app, admin, etc.) are rejected with an inline error. Pick something specific to you or your project.
3. Watch the provision phases
Submitting the form starts the provisioning sequence and streams progress live. The signup page shows each phase as it lands:
| Phase | What's happening | Typical time |
|---|---|---|
reserve | Label reserved against the global registry; a fresh instance_id minted. | < 1s |
app_create | Your instance is created on the hosted platform. | 1-2s |
volume_create | Per-customer persistent volume allocated for your record store. | 1-2s |
dns | <label>.syncropel.app routed to your new instance. | 5-15s |
image_build / deploy | Instance boots from the current spl serve release image. | 20-40s |
bootstrap | Instance initializes its first admin credential, ready for auth. | 1-2s |
dns_propagate | The new DNS record propagates. | up to ~30s |
ready | Instance is reachable. | — |
Total time to ready is typically 60–120 seconds. The form streams progress; if any phase fails, the page surfaces a structured error and gives you a retry path.
4. Land in your workspace
When provisioning finishes you land in Syncropel Studio, already connected to your new instance — no token juggling. Your browser session carries your identity, and the instance recognizes you as its owner. The ready screen also offers a CLI pairing option if you work from a terminal (see below).
The bare <label>.syncropel.app URL is your instance's public landing page — an identity card, not where you work day-to-day.
Your instances, from any device
syncropel.com/account/instances lists every instance your account owns — status, connect, and lifecycle actions. Sign in on a new device and the same list is there; one click connects Studio to any of them.
Want another instance for a separate project? Provision again — up to three per account on the free tier. A fourth attempt is refused with a clear message; delete one you no longer need and retry.
Instances sleep when idle
Free instances suspend automatically when idle and wake on the first request. If you hit your instance mid-wake you'll see a brief "waking up" page that retries automatically — you land in your workspace a few seconds later. Nothing is lost while an instance sleeps; the record store persists.
What you can do once you're in
The same things any Syncropel user can do, with the same CLI and SDK surface as a self-hosted operator:
- Use Syncropel Studio — workspace, threads, tasks, search.
<label>.syncropel.appitself is the instance's public landing page (customizable per-instance); Studio at syncropel.com is where you actually work. - Use the CLI or SDKs instead if you prefer to work programmatically against the API — see the next section.
- Pair more devices via
spl pair --device <label> --url https://<label>.syncropel.appor the Settings → Connections page in Studio. - Federate with another Syncropel instance via
spl federation pair <peer-url>— see the federation pair guide. - Export everything at any time via
spl export— see Portability.
You don't manage the runtime — the hosted platform handles restart-on-crash, edge proxying, and TLS. You can still see instance health via <label>.syncropel.app/health and rich state via <label>.syncropel.app/v1/health (auth-protected).
Connect your CLI to the hosted instance
The CLI defaults to a local instance on 127.0.0.1:9100. To make it talk to your hosted instance instead, you tell it two things: where the instance lives (SPL_SERVE_URL) and which bearer to attach (spl token save).
One-time setup
# 1. Install the CLI (skip if already installed)
curl -sSf https://get.syncropic.com/spl | sh # Linux / WSL — Windows: irm https://get.syncropic.com/spl.ps1 | iex
# 2. Point the CLI at your hosted instance
export SPL_SERVE_URL=https://<label>.syncropel.app
# 3. Pair this machine — Studio's Connect button (or the ready screen's
# CLI option) gives you a device token; save it:
spl token save <token>spl token save writes the bearer to ~/.syncro/token with 0600 permissions. After save, every subsequent spl invocation reads the file and attaches Authorization: Bearer <token> to every outbound request — no flag plumbing required.
To make the URL persistent across shells, add the export to your shell rc file (~/.bashrc, ~/.zshrc, etc.):
echo 'export SPL_SERVE_URL=https://<label>.syncropel.app' >> ~/.bashrcSmoke test
spl status
spl thread list
spl task add "First task on hosted" --priority normal --domain meta
spl task listspl status prints which URL it resolved and whether the bearer authenticates. spl thread list and spl task list should return your account's view (empty if you haven't emitted anything yet).
If you get a 401, re-pair and re-save the token (spl token save <bearer>) and verify SPL_SERVE_URL points at the right <label>.syncropel.app. If you get connection errors, check <label>.syncropel.app/health directly in a browser — the instance may be waking from idle; give it a few seconds.
Device-specific tokens (recommended)
Mint a service account per device so each one can be revoked independently:
spl pair --device "$(hostname)-cli" --url https://<label>.syncropel.app --scopes adminspl pair prints a one-click URL, a QR code, and a plain-text payload — pick whichever fits. For the CLI on the same machine, the simplest path is to copy the printed token and run spl token save <new-token>. Now your device is paired with a token you can revoke independently if the laptop is ever lost.
See Service accounts and tokens for the long-form version, including scope narrowing and rotation.
Hosted vs. self-hosted — which to pick
Both serve the same protocol. Pick by where you want the data and who manages uptime.
| Hosted (syncropel.com) | Self-hosted (spl serve) | |
|---|---|---|
| Where the data lives | Per-customer hosted instance + persistent volume | Your ~/.syncro/hub.db |
| Who handles uptime | Syncropic | You |
| Backup story | Operator-managed snapshots | You — see Backup discipline |
| Federation | Yes — full peer | Yes — full peer |
| Cost | Free (up to 3 instances) | Whatever your machine costs |
| Lock-in | None — spl export round-trips | None — same binary |
Hosted is the path of least friction; self-hosted is the path of zero dependence on syncropel.com. Both are first-class.
When provisioning fails
Most provisioning failures fall into one of three buckets:
- Label collision. Someone reserved that label first. Pick another.
- Instance limit reached. The free tier covers three instances per account. The error names your current count and the fix: delete an instance you no longer need, then retry.
- Boot timeout. Your instance took longer than the provisioning deadline. The page suggests waiting 30–60s and retrying — the underlying instance may already be live.
For all of these, the signup page surfaces a structured error — no log scraping. If retries don't help, the diagnostics on the page contain everything support needs.
What's next
- Pairing a browser or phone — get a second device onto the same instance.
- First run — the same first-day walkthrough applies once you have any working instance, hosted or self-hosted.
- Your first task — five-minute end-to-end walkthrough — create, complete, and earn trust evidence.
- Security model — bearer tokens, service accounts, what's on-disk.