// Work grid, Team band, Pricing toggle
function Work() {
const projects = [
{ tags: ['F&B', 'Automation'], t: 'WhatsApp ordering for 14 outlets', kpi: '↓ 94% admin time', tone: '#d8542a' },
{ tags: ['E-commerce', 'Dashboards'], t: 'Unified margin dashboard, 4 channels', kpi: '+ RM 320k recovered', tone: '#3a5d4f' },
{ tags: ['Logistics', 'AI Agent'], t: 'Customer support agent, 78% solo', kpi: '↑ 4.7 / 5 CSAT', tone: '#3a4763' },
{ tags: ['Manufacturing', 'Internal'], t: 'Approvals & vendor checks tool', kpi: '38 hrs / mo / staff', tone: '#7a5b3a' },
];
return (
SELECTED WORK
Things we've shipped, in production.
{projects.map((p, i) => )}
More exciting case studies coming soon.
);
}
function WorkCard({ tags, t, kpi, tone, idx }) {
return (
{tags.map(tag => (
{tag}
))}
);
}
function WorkArt({ idx }) {
// simple decorative svg backgrounds — abstract, not slop
return (
{idx === 0 && <>
{[...Array(8)].map((_, i) => )}
>}
{idx === 1 && <>
{[...Array(6)].map((_, i) => )}
>}
{idx === 2 && <>
>}
{idx === 3 && <>
{[...Array(12)].map((_, i) => )}
>}
);
}
function Team() {
return (
THE TEAM
A small team
of senior operators.
Eight engineers, designers and ex-founders. No juniors. No layers. The person who scopes your project is the one who builds it.
{[
{ n: '8', l: 'Senior makers' },
{ n: '12yr', l: 'Avg experience' },
{ n: '120+', l: 'Workflows shipped' },
{ n: 'KL', l: 'Headquartered' },
].map((s, i) => (
))}
);
}
function Pricing() {
const [selectedTier, setSelectedTier] = React.useState(null);
const [pricingMode, setPricingMode] = React.useState('subscription');
const tiers = [
{
id: 'starter',
name: 'Starter',
headline: "Start Your Digitalising Journey",
positioning: "Digital improvement support for SMEs",
bestFor: "Small SMEs starting digitalisation",
typicalCustomer: ["Small business owner", "Clinic", "Training centre", "Service company", "Small distributor"],
painPoint: "We need small fixes and automation, but cannot hire a developer.",
minimumContract: "3 months",
developmentScope: ["Minor changes", "Small feature enhancements", "Simple internal tools", "Basic automation"],
mainDeliverables: ["Small fixes", "Simple automation", "Basic dashboard", "Minor system improvements", "Technical support"],
systemIntegration: ["Light API integration", "Google Sheets integration", "Basic WhatsApp/email connection", "Simple third-party automation"],
maintenance: ["Minor bug fixing", "Basic support", "Small improvement requests"],
price: 3500,
monthlyRange: "3k - 5k",
annualRange: "32k - 50k",
setup: "2k – 3k",
capacity: "Monthly improvement capacity",
capacityHours: "20 hrs",
includes: ["Small fixes", "Simple automation", "Basic dashboard", "Website updates"],
meetings: "Monthly",
active_requests: 1,
response: "2-3 business days",
revisions: "1 round per task",
support: "Standard",
outcome: "Reduce manual work",
cta: "Start Small"
},
{
id: 'growth',
name: 'Growth',
headline: "Build Your Business System",
positioning: "Software team-as-a-service",
bestFor: "Growing SMEs needing regular system development",
typicalCustomer: ["Manufacturer", "Distributor", "Multi-branch SME", "Professional service firm"],
painPoint: "Our business is growing, but Excel, WhatsApp, and manual work are slowing us down.",
minimumContract: "3-6 months",
developmentScope: ["Regular feature development", "Internal business systems", "Workflow automation", "Dashboard and reporting systems", "Custom admin panels"],
mainDeliverables: ["Internal system development", "Dashboard", "API integration", "Workflow automation", "AI productivity tools", "Monthly roadmap planning", "Ongoing maintenance"],
systemIntegration: ["CRM integration", "Accounting software integration", "Payment gateway integration", "WhatsApp API integration", "Inventory system integration", "Email automation integration"],
maintenance: ["Bug fixing", "Minor enhancements", "Release support", "System monitoring"],
price: 9800,
monthlyRange: "8k - 15k",
annualRange: "85k - 150k",
setup: "5k – 8k",
capacity: "Monthly delivery sprint",
capacityHours: "50-70 hrs",
includes: ["Custom systems", "Integrations", "AI automation", "Dashboard", "Maintenance"],
meetings: "Twice monthly",
active_requests: 2,
response: "1-2 business days",
revisions: "2 rounds per task",
support: "Priority",
outcome: "Build and improve internal systems",
cta: "Build With Us",
featured: true
},
{
id: 'scale',
name: 'Scale',
headline: "Scale Your Digital Product",
positioning: "Dedicated digital product squad",
bestFor: "Companies building advanced systems or SaaS",
typicalCustomer: ["Multi-branch business", "Regional SME", "SaaS startup", "Enterprise supplier"],
painPoint: "We need a serious software or AI system but do not want to build an internal tech team yet.",
minimumContract: "6-12 months",
developmentScope: ["Advanced system development", "SaaS product development", "Customer portals", "Multi-role enterprise systems", "AI-powered applications", "Cloud-native architecture"],
mainDeliverables: ["Full system development", "SaaS MVP", "Customer portal", "Advanced AI solutions", "Cloud architecture", "Analytics dashboard", "Advanced integrations", "Priority support"],
systemIntegration: ["Complex enterprise integrations", "Internal and external API orchestration", "Cloud service integration", "Multi-system workflow integration", "Advanced payment/accounting integration"],
maintenance: ["Priority maintenance", "Continuous improvement", "Monitoring and uptime management", "Performance optimisation", "Deployment management"],
price: 24000,
monthlyRange: "20k - 40k+",
annualRange: "220k - 450k+",
setup: "10k – 20k",
capacity: "Product squad capacity",
capacityHours: "120-180 hrs",
includes: ["Product roadmap", "Advanced systems", "AI solutions", "Cloud architecture", "Analytics"],
meetings: "Weekly",
active_requests: "3-4",
response: "Same or next business day",
revisions: "2-3 rounds",
support: "Priority Plus",
outcome: "Build scalable software and AI capability",
cta: "Scale With a Squad"
}
];
const projectModels = [
{
id: 'custom-build',
name: 'Custom System Build',
headline: 'Ship a Defined Business System',
positioning: 'Fixed-scope delivery for portals, dashboards, automations, integrations, and internal operating systems.',
priceLabel: 'Fixed scope',
timeline: '4-12 weeks',
bestFor: 'Companies with a known problem, budget, and launch window.',
includes: ['Discovery and specification', 'UX and system design', 'Development and testing', 'Launch handover'],
cta: 'Request Proposal',
featured: true
}
];
const isSubscription = pricingMode === 'subscription';
return (
PRICING
Predictable costs, scalable velocity.
{[
['subscription', 'Subscription'],
['project', 'Project-Based'],
].map(([mode, label]) => {
const active = pricingMode === mode;
return (
setPricingMode(mode)}
style={{
appearance: 'none',
border: active ? '1px solid var(--line-2)' : '1px solid transparent',
background: active ? 'var(--ink)' : 'transparent',
color: active ? 'var(--bg)' : 'var(--mute)',
borderRadius: 999,
padding: '13px 18px',
font: '600 13px/1 Geist, system-ui, sans-serif',
letterSpacing: 0,
cursor: 'default',
transition: 'background 220ms ease, color 220ms ease, border-color 220ms ease',
whiteSpace: 'nowrap',
}}
>
{label}
);
})}
{isSubscription ? (
{tiers.map((t, i) =>
setSelectedTier(t)} />)}
) : (
{projectModels.map((model, i) =>
)}
)}
{isSubscription ?
:
}
{selectedTier &&
setSelectedTier(null)} />}
{isSubscription
? 'All prices in MYR · 6% SST not included · Pause or cancel with 30 days notice'
: 'All proposals quoted in MYR · 6% SST not included · Final scope confirmed after discovery'}
);
}
function PriceCard({ tier, idx, onDetails }) {
const { name, headline, price, capacityHours, meetings, active_requests, outcome, cta, featured } = tier;
const essentials = [
{ label: 'Capacity', value: `${capacityHours} equivalent` },
{ label: 'Active', value: `${active_requests} request${active_requests !== 1 ? 's' : ''}` },
{ label: 'Sync', value: meetings },
];
return (
{featured &&
MOST POPULAR
}
{name}
{headline}
{outcome}
FROM
RM {(price / 1000).toFixed(price >= 10000 ? 0 : 1)}k
/ month
{essentials.map(item => (
{item.label}
{item.value}
))}
View plan details
{cta}
);
}
function ProjectPriceCard({ model, idx }) {
const { name, headline, positioning, priceLabel, timeline, bestFor, includes, cta, featured } = model;
const essentials = [
{ label: 'Pricing', value: priceLabel },
{ label: 'Timeline', value: timeline },
{ label: 'Best for', value: bestFor },
];
return (
{featured &&
MOST REQUESTED
}
{name}
{headline}
{positioning}
MODEL
{priceLabel}
{essentials.map(item => (
{item.label}
{item.value}
))}
{includes.map(item => (
{item}
))}
{cta}
);
}
function PricingDetailModal({ tier, onClose }) {
React.useEffect(() => {
const onKey = (event) => {
if (event.key === 'Escape') onClose();
};
window.addEventListener('keydown', onKey);
return () => window.removeEventListener('keydown', onKey);
}, [onClose]);
const specs = [
{ label: 'Best for', value: tier.bestFor },
{ label: 'Capacity', value: `${tier.capacityHours} equivalent · ${tier.capacity}` },
{ label: 'Response time', value: tier.response },
{ label: 'Revisions', value: tier.revisions },
{ label: 'Support', value: tier.support },
];
const detailGroups = [
{ label: 'Software scope', items: tier.developmentScope },
{ label: 'Deliverables', items: tier.mainDeliverables },
{ label: 'Integration', items: tier.systemIntegration },
{ label: 'Maintenance', items: tier.maintenance },
];
const scopeRules = [
['Delivery model', 'Priority-based roadmap with task approval and effort estimation before build.'],
['Progress visibility', 'Shared board, regular updates, and delivery report.'],
];
return (
{tier.name.toUpperCase()} PLAN
{tier.headline}
{tier.positioning}
STARTS FROM
RM {(tier.price / 1000).toFixed(tier.price >= 10000 ? 0 : 1)}k
/ month
Subscription requests are unlimited, delivery is prioritised within monthly capacity.
Pain point
{tier.painPoint}
Minimum contract
{tier.minimumContract}
Typical customer
{tier.typicalCustomer.map(item => (
{item}
))}
{scopeRules.map(([label, value]) => (
))}
{tier.cta}
{specs.map(item => (
{item.label}
{item.value}
))}
{detailGroups.map(group => (
{group.label}
{group.items.map(item => (
{item}
))}
))}
);
}
function ScopeManagement() {
const details = [
{ label: 'Delivery Model', value: 'Priority-based within monthly capacity' },
{ label: 'Unused Capacity', value: '30% rollover (valid for 1 month)' },
{ label: 'Visibility', value: 'Shared board, weekly updates, delivery reports' },
];
const exclusions = [
"24/7 support", "Unlimited revisions", "Full ERP implementation",
"Large mobile apps", "Data migration", "Security audits",
"Hardware setup", "Subscription fees", "Data entry"
];
const separate = [
"New SaaS platforms", "Mobile app dev", "Large system rebuilds",
"Complex AI implementation", "Enterprise integrations"
];
return (
How we manage scope.
We operate as an extension of your team. Clear roadmaps and priority-based delivery ensure you always get the most value from your capacity.
NOT INCLUDED IN SUBSCRIPTION
{exclusions.map(e => • {e} )}
SEPARATE QUOTE REQUIRED
{separate.join(', ')}
);
}
function ProjectScope() {
const details = [
{ label: 'Engagement Model', value: 'Defined scope, milestones, acceptance criteria, and delivery timeline' },
{ label: 'Proposal Basis', value: 'Quoted after discovery, requirements review, and technical sizing' },
{ label: 'Handover', value: 'Source code, documentation, deployment notes, and launch support' },
];
const included = [
"Discovery", "Solution design", "Project plan",
"Development", "Testing", "Launch support",
"Documentation", "Team handover"
];
const separate = [
"Ongoing product support", "New feature phases", "Third-party subscription fees",
"Large data migration", "Hardware procurement"
];
return (
How project scope works.
Project-based work is best when the goal is clear and the delivery can be shaped into a defined phase. We quote against outcomes, complexity, and implementation risk.
TYPICALLY INCLUDED
{included.map(e => • {e} )}
SEPARATE COMMERCIAL SCOPE
{separate.join(', ')}
);
}
Object.assign(window, { Work, Team, Pricing });