Each system turns on only the services it uses, and any of them can be switched off at once without affecting other systems.
Data processing over the API
Send data to be processed and get the result back straight away, or queue larger work: calculations, reports, conversions and checks. Not limited to the built-in jobs or to queued work; each system can have its own processing added. PDF, Word and Excel documents too.
Data processingReportsPDFExcelJob queue
Databases
PostgreSQL 18 with a separate database per system, read-only or read-write access, and usage history every 5 minutes.
PostgreSQL 18Separate access
File storage
Uploads go straight to Cloudflare R2, up to 5 GB per file. Files up to 2 GB are virus-scanned after upload, deleted files stay in a 30-day trash, and links can be shared with an expiry.
Cloudflare R2Virus scan
Email and newsletters
Send from each system's own domain, see whether mail was delivered or bounced, receive replies, and run double opt-in newsletters.
SPFDKIMDMARC
App hosting
Push to GitHub and the app deploys with no downtime. A separate staging copy, one-step rollback and scheduled jobs are included.
GitHubNo downtimeStaging
Backups
Encrypted backups every day, recovery to any minute of the last 15 days, copies in two places, and a real restore test every week.
AES-25615-day recovery
Security and continuity
Built so that data is not lost, and so that problems are noticed straight away.
Dailyautomatic backups
15 daysof minute-by-minute recovery
1 minutebetween outside status checks
0 portsopen directly to the internet
All connections to the server go through Cloudflare Tunnel, with no ports opened on the router; administration pages also require Cloudflare Access.
Each system has its own token. When it is replaced, the old one keeps working for 24 hours.
Backups are encrypted with AES-256 and stored on Cloudflare R2 and on a separate disk in the server.
Every change to the system is logged: who did what, and when.
Libraries are checked for vulnerabilities every day, and uploaded files are scanned for viruses.
During maintenance, people see a notice instead of an error page, and systems can retry on their own.
Connect your system
Three steps, from any programming language.
Step 1
Request access
An administrator adds your system and chooses its services. You receive a single PURI_TOKEN.
Step 2
Add the token
Keep it in your server-side .env file. Use the puri.cjs helper or call the API directly.
Step 3
Start using it
Run jobs, send email, store files or connect to the database, all with the same token.