The Two-Key Rule
A configurable 'Maker-Checker' workflow embedded into the hook layer, presenting configured actions for secondary approval.
Fintech / Enterprise SaaS / Selected work
A shared workspace for lending operations, from reviewing applications to managing approvals.
All workLending teams work across identity records, credit information, bank statements, and application history. The Vertebra interface brings these details into a shared underwriting workspace.
The design gives officers a clear starting point: their assigned applications, the information needed for a review, and the next action available to them.
Unassigned applications, personal queues, and the master registry have distinct views. This separates individual work from the wider operation without requiring a different tool.
The dashboard surfaces outstanding approvals and activity so a team can see where attention is needed.
The interface supports a maker-checker workflow: actions that require another person's approval are presented as requests rather than immediate changes. Labels and available actions reflect the configured approval policy.
React and TypeScript provide the interface foundation. TanStack Query manages server data, while Zod checks incoming data against expected structures.
A closer look
Engineering decisions
A configurable 'Maker-Checker' workflow embedded into the hook layer, presenting configured actions for secondary approval.
A strict codebase hierarchy that isolates domain logic (Loans, KYC, Recovery) to keep responsibilities clear as the application grows.
Replacing passive data viewing with 'Action Queues' that direct officers immediately to urgent tasks.
export const useMakerChecker = (actionKey: string, mutation: UseMutationResult) => {
const { data: settings } = useGetApprovalSettings();
const isApprovalRequired = useMemo(() => {
return settings?.actions[actionKey]?.enabled ?? false;
}, [settings, actionKey]);
// Dynamically adapt UI text and logic based on global security policies
const buttonText = isApprovalRequired ? "Submit for Approval" : "Execute Action";
return {
execute: mutation.mutate,
isApprovalRequired,
buttonText
};
}
A good place to begin
A new idea, an existing product,
or a problem worth solving.