// Vision (about), Services list, Process accordion, Stats band function Vision() { return (
OUR VISION

Built for SMEs who are
tired of shelfware.

Most AI projects in this region die in pilot. Decks, demos, vendors. Six months later, nothing in production.

We do the opposite. Senior team. Fixed cadence. Working systems live in your business in weeks — not quarters.

); } function Stat({ n, l }) { return (
{n}
{l}
); } function Services() { const items = [ { n: '01', t: 'Custom System Development', d: 'Bespoke ERP, CRM, inventory, HR, and workflow systems engineered from scratch — shaped around how your SME actually works, not the other way around.' }, { n: '02', t: 'AI-Powered Intelligence', d: 'AI embedded directly into your systems — demand forecasting, anomaly detection, intelligent reporting, and decision-support trained on your own business data.' }, { n: '03', t: 'Digital Transformation', d: 'We audit your existing workflows, identify inefficiencies, and migrate your operations into modern, scalable digital infrastructure — zero disruption.' }, { n: '04', t: 'Mobile & Web Applications', d: 'Customer-facing apps, internal tools, and field ops platforms — optimised for Malaysia, multi-language, ready for iOS, Android, and web.' }, { n: '05', t: 'System Integration & API', d: 'Connect accounting software, e-commerce platforms, payment gateways, and government APIs into a single automated pipeline — no more double-entry.' }, { n: '06', t: 'Analytics & BI', d: 'Real-time dashboards, custom KPI tracking, and AI-generated insights that give you a complete picture of your business — act fast, with confidence.' }, { n: '07', t: 'Data Management & Migration', d: 'Scalable data architectures, lossless historical migration, and clean, secure data ready to power AI-driven insights.' }, { n: '08', t: 'Support & Managed Services', d: 'Ongoing technical support, system monitoring, performance optimisation, and feature enhancements — your system grows with your business.' }, ]; return (
SERVICES

What we build, end to end.

{items.map((it, i) => )}
); } function ServiceRow({ n, t, d }) { const [hover, setHover] = React.useState(false); return (
setHover(true)} onMouseLeave={() => setHover(false)} className="reveal service-row" style={{ borderBottom: '1px solid var(--line)', padding: hover ? '40px 0' : '32px 0', transition: 'padding 400ms cubic-bezier(0.2,0.8,0.2,1), background 300ms, opacity 400ms ease, filter 400ms ease', background: hover ? 'rgba(20,19,15,0.03)' : 'transparent', cursor: 'default', }}>
{n}
{t}
{d}
); } function Process() { const [activeStep, setActiveStep] = React.useState(0); const stepRefs = React.useRef([]); const steps = [ { n: '01', t: 'Discover', wk: 'Week 1–2', d: 'Two-week deep dive into your operation. We map the actual workflow — not the org chart — and quantify the hours bleeding from each step. You get a written audit and a ranked list of what to automate first.', img: 'https://images.unsplash.com/photo-1777042575928-366908c3ee3f?q=80&w=2400&auto=format&fit=crop' }, { n: '02', t: 'Design', wk: 'Week 3', d: 'A prioritized roadmap with ROI per workflow, vendor calls and architecture decisions made. You pick what ships first. We hand you a plan you could run yourself.', img: 'https://images.unsplash.com/photo-1655474396177-e727349f44dc?q=80&w=2400&auto=format&fit=crop' }, { n: '03', t: 'Build', wk: 'Week 4–8', d: 'We ship in 2–4 week increments. Real systems in production, not slide decks. Friday demos. Production access from day one. Your team sees progress every week.', img: 'https://images.unsplash.com/photo-1629904853716-f0bc54eea481?q=80&w=2400&auto=format&fit=crop' }, { n: '04', t: 'Scale', wk: 'Week 9 onward', d: 'Hand-off, training, runbooks, SOPs. Optional retainer to keep iterating with your team. We stay on call as you grow.', img: 'https://images.unsplash.com/photo-1466692476868-aef1dfb1e735?q=80&w=2400&auto=format&fit=crop' }, ]; React.useEffect(() => { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const index = Number(entry.target.getAttribute('data-index')); setActiveStep(index); } }); }, { rootMargin: '-40% 0px -40% 0px', threshold: 0 } ); stepRefs.current.forEach((ref) => { if (ref) observer.observe(ref); }); return () => observer.disconnect(); }, []); return (
{/* Full Section Sticky Background */}
{steps.map((s, i) => ( {s.t} ))}
PROCESS

From first call to live in 4–6 weeks.

We don't do endless discovery phases. We locate the bleeding, build a tourniquet, and ship it to production.

{steps.map((s, i) => (
(stepRefs.current[i] = el)} data-index={i} style={{ opacity: activeStep === i ? 1 : 0.3, transform: activeStep === i ? 'translateX(0)' : 'translateX(-10px)', transition: 'opacity 500ms ease, transform 500ms ease' }} >
))}
); } function ProcessStep({ n, t, wk, d }) { return (
{n} — {wk}

{t}

{d}

); } Object.assign(window, { Vision, Services, Process });