Product overview
Three surfaces over one model. What you configure in the dashboard is what the edge enforces and what the SDK builds URLs against.
The shared model
Everything hangs off a small set of objects, and they mean the same thing everywhere:
| Object | What it is |
|---|---|
| Organization | The billing and tenancy boundary. Every row in the database belongs to exactly one. |
| Project | A site. Its identifier is what appears in delivery URLs. |
| Environment | Development, staging, production. Each can point at a different origin. |
| Origin | A verified hostname we are permitted to read images from. Nothing else is ever fetched. |
| Preset | An immutable, versioned transformation recipe. Public URLs name one; they cannot describe one. |
| Entitlement | A capability or limit. Plans are seeds for these, not conditionals scattered through the code. |
How a change reaches the edge
When you verify an origin, publish a preset, or purge a project, the control plane writes a compact configuration object to a key-value store at the edge. The image pipeline reads that object and nothing else — it never queries the primary database.
Two consequences worth understanding. First, revocation is fast but not instantaneous: the edge caches that object for up to 60 seconds. Second, if the dashboard, the API, or the billing pipeline goes down, image delivery keeps working, because it does not depend on any of them.
What is built, and what is not
Available now
- JPEG and PNG to WebP at the edge
- Accept-based format negotiation with original fallback
- Verified origins and five built-in presets
- Browser-side WebP compressor
- Typed SDK, URL builder, Astro component
- Usage from a durable ledger
Not built yet
- AVIF output (specified; Pro and above, Phase 3)
- Batch Studio jobs and ZIP export
- Custom delivery domains
- Webhooks and the WordPress plugin
- Signed URLs as a product feature
- SSO, SCIM, audit export
That second column is a roadmap, not a feature list. PicSoar does not ship placeholder screens for things that do not work.