// Process (stacking cards), Why us, Instant quote band const STEPS = [ { t: 'Map the workflow', wk: 'Week 1', d: 'We review how work flows today: forms, Excel files, chat groups, approvals and reporting habits, with the people who use them every day.', img: '/uploads/process_discover.webp' }, { t: 'Pick the first win', wk: 'Week 2', d: 'You get a practical roadmap that ranks what to build first: a dashboard, an internal system, a customer portal, an automation or an AI assistant.', img: '/uploads/process_design.webp' }, { t: 'Build with your team', wk: 'Week 3-8', d: 'We ship working screens, test them with the people who will use them and adjust around real constraints before rollout.', img: '/uploads/process_build.webp' }, { t: 'Roll out and improve', wk: 'After launch', d: 'Training, handover, support and new modules follow as your team moves more work out of spreadsheets and chat groups.', img: '/uploads/process_scale.webp' }, ]; function Process() { return (

Live in weeks, not months.

We start with one painful workflow, ship a useful first version, then expand into the next area.

    {STEPS.map((s, i) => (
  1. {String(i + 1).padStart(2, '0')}. {s.wk}

    {s.t}

    {s.d}

  2. ))}
); } function Why() { return (

Why teams call us

Small team. Rapid build.

Senior software builders working directly with owners, managers and the people who will use the system. The person who scopes your project stays close to the build.

4-8wks first system live

Typical time from kickoff to a working first system in your team's hands.

1team

One team takes you from the first workshop to support after launch. No hand-offs between agencies.

100%

You keep everything we build, including source code and documentation. No lock-in.

); } const QUOTE_STEPS = [ ['About you', 'Company and contact'], ['Your project', 'What needs fixing'], ['Questions', '5-8 smart follow-ups'], ['Verify', '6-digit email code'], ['Estimate', 'PDFs in your inbox'], ]; const DOC_LINES = ['Workflow discovery', 'Dashboard & reporting', 'Core system module', 'Integrations', 'Training & handover']; function Quote() { const reduced = useReducedMotion(); const docRef = React.useRef(null); // Scroll-linked: the sample quotation fills in line by line as the section scrolls up. useScrollFrame(() => { const el = docRef.current; if (!el) return; if (reduced) { el.style.removeProperty('--q'); return; } const r = el.getBoundingClientRect(); const vh = window.innerHeight; // Starts once the first line is on screen and finishes with the total in view. el.style.setProperty('--q', clamp01((vh * 0.78 - r.top) / (vh * 0.66)).toFixed(3)); }, [reduced]); return (

Instant quote · Free

Price your system in 5 minutes.

Describe your business and the system you need. Our estimator asks a few follow-up questions, then emails you an itemised quotation and a project proposal.

Start my quote Talk to a consultant

No account needed. Quotation and proposal arrive as PDFs.

    {QUOTE_STEPS.map(([b, s]) =>
  1. {b}{s}
  2. )}
); } Object.assign(window, { Process, Why, Quote });