Built by operators, for operators. Boring tech. No funding agenda.
7-day free trial · Cancel anytime · Pay with card, PayPal, or USDT
Why we built this
Managed VICIdial used to mean “a guy with an SSH key and a spreadsheet.”
We've worked with VICIdial for over a decade — running call centers, installing it for clients, fixing it on weekends. Every time, the same friction: fast machines, slow setup, no real dashboard, no real audit, no real escape hatch.
The pattern repeats whether you're self-hosting or paying a managed provider. You wait. You get a server with a default password and a spreadsheet of credentials over email. There's no obvious way to invite your colleague. You can't see what state your server is in without SSH-ing into it. Pricing is mysterious. The vendor lives in your inbox.
VICIfast is what we wanted to use ourselves: a real product around VICIdial. Server delivery in 40 seconds, measured. A dashboard that shows every state change. Sub-users with proper roles. Audit log on everything. Pricing you can read on the website. Cancel any time, no friction.
We don't resell SIP. We don't bundle agent licensing. We don't lock you in. You bring the carrier; we bring the platform. If we ever cease to be the right fit, your data is yours and we'll help you migrate out.
How we run the business
Small, technical, self-funded.
Senior engineers only
Every customer talks to someone who understands the stack. There is no offshore tier-one tier reading from a script. The engineer on your support thread is the same one who can patch the platform.
No outside funding
Revenue funds the product. We ship what helps customers, not what helps a board deck. There is no exit pressure to suddenly become a different company.
Operator-built
The team has hands-on time running production VICIdial floors. Every default in the platform exists because we saw the alternative break a real customer.
For nerds
The real stack, by layer.
If you're evaluating us against a build-it-yourself plan or doing a vendor due- diligence pass, here's the inventory. Versions are current as of the latest deploy. We rebuild the golden image every 30-60 days and bump these.
Customer dialer · the box
What ships to each customer. Single-tenant. Their root, their disk.
- VICIdial2.14-b0.5
- Asterisk22.5.1
- PJSIPws · wss · udp transports
- ConfBridgefor monitor / barge audio
- MariaDB10.11 · 412 tables
- Apache + PHP7.4 · for admin.php + agent
- Perl AGITCPA scrub · custom dialplan
- Ubuntu LTS22.04 · hardened image
- systemd · cloud-initvendor-data overridden
- ufw · fail2banfirewall + intrusion jails
Platform · the dashboard
The Next app you sign in to. Server-first React, strict TypeScript.
- Next.js16 · App Router · RSC
- React19 · server components first
- TypeScriptstrict · no implicit any
- Prisma7.8 · schema-managed migrations
- PostgreSQL17
- Redis7 · cache + queue backplane
- BullMQworkers · scheduler · Bull-Board
- shadcn/ui + TremorTailwind v4 design system
- Zodevery API input validated
- Vitest + Playwrightunit + e2e harness
Infrastructure
The bones. Boring, well-tested, no surprise vendors.
- Hetzner CloudCPX (shared) + CCX (dedicated)
- Hetzner Object StorageS3-compatible · logos · snapshots
- CloudflareDNS-only · gray cloud · DNS-01
- Let's Encryptper-customer TLS · auto-renew
- 6 regions liveeu-fra · nbg · hel · ash · hil · sin
- Hetzner Snapshotsdaily 03:00 · 7-day retention
- Cloudflare APIper-customer subdomain DNS
- systemd-cronplatform scheduler · queues
Identity + payments
How customers sign in and how money moves.
- Better-Authsession + RBAC
- WebAuthnsecond factor for owners
- Stripe + Stripe Taxsubs · invoicing · portal
- PayPalsubs + one-shot wallet top-ups
- USDT-TRC20TronGrid match + suffix routing
- Resend + React Emailtransactional · per-reseller domain
- Wallet ledgerappend-only · idempotency-keyed
- Reseller dual-debitretail + wholesale in one tx
Observability + audit
How we know what is happening on every box, every payment, every state change.
- Sentryplatform + per-customer error budget
- PostHogfeature flags + product analytics
- BetterStackpublic status page + uptime monitors
- AuditLogappend-only · 7-yr retention
- BillingEventevery money mutation logged
- Live deploy timerper-stage wall-clock visible
- Health probesevery 60s · HEALTHY / DEGRADED / UNREACHABLE
- Recorded SSH sessionsasciinema · replayable in dashboard
What we don't run
Tools we considered + rejected. Listed so you know what trade-offs we made and why.
- Kubernetesoverkill for single-tenant VPS
- Multi-tenant DBno shared schema; one DB per box
- Per-agent licensingVICIdial does not. We do not.
- Cloud-vendor CDN proxyorange cloud breaks SIP / RTP
- LLM-generated docsevery doc grounded in real config
- Outsourced supportno script-reader tier
How we're different
Four principles. Real ones.
Speed
Server delivery measured at the dashboard, in customer view. We hit 40 seconds median consistently — no other managed VICIdial host comes close. We will publish the histogram once the data set is meaningful.
Transparency
Audit log, status page, sub-processor list, DPA pre-purchase. If you have to email us to find out something, we consider it a bug. Source for every customer-visible state change is in the dashboard.
Boring tech
Postgres. Redis. BullMQ. Prisma. Next. Stripe. Resend. Cloudflare. Let's Encrypt. Nothing surprising — just composed well. We deploy what we can debug at 3 AM.
No vendor lock-in
Migrate out as easily as you migrated in. Full vicidial_* schema read access; we publish the export tooling. You leave with everything, no exit penalty.
Want the procurement-ready version?
Security posture, compliance status, retention windows, DPA, sub-processor list, incident disclosure contact — one page that procurement teams can hand to legal.
Same VICIdial. Built by operators.
Get a dedicated VICIdial server in 40 seconds. Free for 7 days. Pricing you can read on the website.