Most automated trading tools work the same way: you hand over your brokerage API keys, they run on a server you'll never see, and every order your account places passes through infrastructure someone else controls. That's the default architecture for this entire category — and we think it's the wrong one for something that touches real money.
Apex runs on a server you provision yourself. A $12/month droplet, in your DigitalOcean account, with your name on the bill. The software installs on it and stays there. We never see it run.
What "self-hosted" actually changes
It's not a branding choice — it changes who is structurally capable of doing what.
Your keys never leave your server
Your Alpaca or Tradier API credentials live in a .env file on your droplet and nowhere else. They are never transmitted to us, never stored on our infrastructure, never logged anywhere we can read. We don't have limited access to your brokerage account. We have none. There is no support workflow, no admin panel, no break-glass procedure on our end that touches your keys — because we never received them in the first place.
A vendor that never holds your keys can't leak them in a breach, can't be compelled to hand them over, and can't have an employee misuse them. The strongest access control is not having access.
No shared infrastructure, no shared blast radius
In a multi-tenant SaaS model, one account is one row in a database that thousands of other accounts share. A misconfigured query, a scaling incident, or a security issue in that shared system can touch every customer at once. With Apex, your droplet runs nothing but your own trading system. There is no neighboring account, no shared queue, no incident that started with someone else's setup and reached yours.
We are structurally unable to move your money
We sell software, not a managed service. Once it's installed, we don't have a channel back into your account to place a trade, adjust a position, or touch your funds — even if we wanted to. The system you're running is the whole system; there's no additional layer on our side sitting between it and your brokerage.
The trade-off, honestly
Self-hosting isn't free of cost or effort, and we'd rather say that plainly than pretend otherwise. You're responsible for a $12/month server bill. The installer handles the runtime, database, and service setup, but you own the box — if DigitalOcean has an outage, that's your outage to wait out, not ours to route around. Support means walking through your server with you, not flipping a switch on our end.
What you get in return is a system where the custody question has a one-word answer: you. Not us, not a shared cluster, not a vendor with a backlog of other customers' incidents ahead of yours. For software that places real orders against a real brokerage account, that trade feels like the right one to us — and it's the reason the architecture isn't going to change.