A universal SDUI client for admin panels. Your backend describes the interface as JSON; Vaktor renders it as a native screen on iOS, iPadOS, and macOS — with no client-side code per service.
One contract keeps watch over all your services. iOS 17+ · iPadOS 17+ · macOS 14+
Semantics, not layout
The server describes roles — status, metric, row. No colors, fonts, or paddings in the contract.
System components only
Every type renders with a native SwiftUI view, so the UI follows HIG automatically on each platform.
One JSON, three platforms
The same contract renders on iPhone, iPad, and Mac. A table becomes a list or a real table per device.
Graceful degradation
An unknown component type never breaks a page — old clients skip what they don’t understand.
Secure by default
Tokens live in an isolated vault (Keychain). Credentials go to the manifest origin only.
Server owns permissions
The client renders only what it receives. No access logic ships in the app.
1 · Manifest
The user adds a service by its manifest URL. It lists tabs, auth policy, and the brand tint.
2 · Pages
Each tab points to a page — a title plus a list of components grouped into sections.
3 · Actions
Buttons and rows carry actions: navigate, submit, confirm. Auth is just grant/revoke.
4 · Render
Vaktor renders everything with system views — no bespoke UI code for your panel.