Your product, from the first screen to the last backup.
Internal tools for your team and SaaS products for your customers, designed and built on one stack, with the AI and integrations that make them useful.
#2040Hot water serviceRivera Dental, LeichhardtJTQuoted
Verify your emailLink sent to priya@…Done
#2039Leaking tapA. Chen, AnnandaleSLBooked
Connect your calendarGoogle or OutlookConnect
#2038Gas compliance checkHarbourview StrataMKWaiting on parts
Invite your teamOwner and member roles
#2037Gutter repairP. Nguyen, BalmainJTInvoiced
Choose a planStarter, Growth or Pro
Blocked drain
#2041 · On site · M. Okafor, Glebe
Tech
Sam L.
Booked
9:30 am
Booked from web form8:12 am
Sam assigned8:20 am
Arrived on site9:34 am
Message customer
Growth plan
Billing · Free trial, ends 6 Nov
Seats
3 of 5
Payment
Not added
No invoices yet
Add payment methodChange plan or cancel
Demo data
Internal tools, CRMs and portals: the system your staff run the business in.
SaaS products and consumer apps: sign-up, onboarding, billing and the product itself.
Designed and engineered under one roof.
Spark Integrations is a Sydney software and AI studio. The same people design the screen and the table it reads from, so neither one is a guess about the other.
Spark Integrations is led by founder Jack West.
We also build and operate our own SaaS product, Alony AI (opens in a new tab), a self-serve AI phone agent for Australian small businesses. Building and running it ourselves means we have already solved what a SaaS product runs into, layer by layer.
Custom internal tools for SMBs.
Off-the-shelf software makes you work its way. These are built around yours, and connected to the tools you already use.
Reporting dashboard
Sales, jobs and cash in one view, pulled live from the tools you already use.
CRM
Leads, clients and every conversation, shaped around how you actually sell.
Job and quote system
From enquiry to quote to booked job to invoice, without retyping a thing.
Client portal
Customers log in to see their jobs, documents and invoices, and pay online.
Rostering and scheduling
Shifts and appointments built around who is free, qualified and nearby.
Inventory and stock
Stock levels, reorders and supplier orders, tracked across every site.
Approvals
Leave, purchases and quotes routed to the right person, with a record of who said yes.
Checklists and site forms
Inspections, safety checks and sign-offs done on a phone and filed against the job.
What actually goes into a SaaS product.
A SaaS product is more than its screens. These are the parts underneath that decide whether it holds up with real customers, and we plan for every one of them from the first day.
Bayside
Northside
Multi-tenant data model
Every customer's records live in one database kept apart by rules in the database itself.
ViewEditBilling
Owner
Member
Customer
Auth, roles and SSO
Email and password or single sign-on, a second factor, and roles that decide who can see and change what.
StarterOnline bookingOff
GrowthOnline bookingOn
Billing and entitlements
Plans, trials, upgrades and cancellation, with each plan switching features and limits on and off in the product.
Onboarding
Sign-up and a guided setup, so new customers get going on their own.
Admin console
Where your team manages customers, plans, support and settings without asking a developer.
Audit logs
A record of who did what and when, for your support team and for customers who ask.
Background jobs
Imports, reports, reminders and syncs that run on their own, on a schedule.
Observability and alerting
Errors, slow pages and failed jobs reported as they happen, so problems are fixed before customers notice.
Encryption
On our default Vercel and Supabase stack, data is encrypted in transit (TLS 1.2+) and at rest (AES-256).
Backups and point-in-time recovery
On Supabase, the database can be restored to any moment in its recovery window, not just last night.
Rate limiting and abuse protection
Caps on how often each endpoint can be called, so a bad actor or a runaway script cannot take the product down.
Environments and preview deploys
Development, preview and production kept apart, and every change deployed to its own link before it goes live.
CI and tests
Automated tests run on every change, and nothing reaches production without passing them.
Four layers, one team.
One team owns all four layers, so a change to a screen, a rule or a data model does not wait on a hand-off between a front-end agency and a back-end contractor.
What your customers use
The screens and voices people actually meet.
Web appOne codebase for desktop and phone, installs on the home screen from the browser, with no App Store needed.
Admin consoleWhere your team runs the product: customers, plans, support and settings.
Voice and chatAI phone agents and an in-app assistant that answer for the product, day and night.
Coastline PhysioDemo data
CPBookMy bookingsAccountPR
Book a session
Sports physio · 45 min · Bondi Junction
MLMaya LinTRTom ReidACAna Costa
Mon3Tue4Wed5Thu6Fri7
8:309:1510:0011:301:453:004:155:30
Your booking
When
Wed 5 Nov, 9:15 am
With
Tom Reid
Fee
$95.00
Confirm booking
Need an earlier time? I can check Tuesday for you.
Logic and automation
The rules that decide what happens when someone acts.
API and server codeEvery action is checked on the server before anything changes, never trusted from the browser.
Workflows and integrationsScheduled jobs and webhooks, and the links that keep your CRM, calendar and mail in step.
AI agentsSummarise, draft and report inside the product, using your own data.
Logic and automationServer functions · workflows · agents
POST /bookingsFrom the app
Checked on the serverSession, schema, slot still free
Confirm bookingWorkflow, 3 steps
Calendar syncTom's calendar updated
Confirmation emailSent to Priya
AI agentDrafts the reminder
201 Created · booking bk_8f2c · 84 ms
Data, identity and billing
Who your customers are, what they own and what they pay for.
Postgres databaseOn Supabase and Postgres, each customer's data is kept apart by row-level rules in the database itself.
Auth and rolesLogin, single sign-on, a second factor and roles that decide who sees what.
BillingPlans, trials and a customer portal, on Stripe or any billing platform with an API.
Data, identity and billingPostgres · Auth · Stripe
clientsRLS
iduuid
user_iduuid
org_iduuid
nametext
bookingsRLS
iduuid
client_iduuid
starts_attimestamptz
statustext
auth.usersRLS
iduuid
emailtext
roletext
mfabool
subscriptionsRLS
org_iduuid
plantext
statustext
stripe_idtext
Row-level securityorg_id = auth.org_id()
Priya R.Owner · second factor on
Growth planActive · renews 1 Dec
subscriptionsGrowth plan · active · billed by Stripe
Hosting and operations
Where it runs, and how it stays up.
Flexible hostingVercel and Supabase by default, an Australian region where needed, or your own cloud.
Monitoring and backupsErrors reported as they happen, and point-in-time recovery for the database on Supabase.
ReleasesEvery change is tracked in Git, reviewed, tested and deployed to its own preview link before it reaches production.
Hosting and operationsVercel · Supabase · Sydney
Commita9fd2d1
PreviewDeployed
Tests128 passed
ProductionLive
Uptime, last 30 days
All systems normal
Database backups
Restore to any second in the last 7 days
Sydney region0 errors in the last hourBackup 02:00
The stack we build on.
We use one proven stack across our own products and client builds, so there is no bespoke framework to maintain.
Web and mobile UINext.jsViteReactTypeScriptTailwind CSSshadcn/uiRadix UI
Next.js and Vite (React, TypeScript) with Tailwind CSS, shadcn/ui and Radix UI components, installable as a progressive web app
One codebase for desktop, phone and tablet; fast first load; installs on the home screen straight from the browser, with no App Store needed
API and server logicNext.jsSupabaseNode.jsDeno
Next.js server functions and API routes on Node.js, and Deno (Supabase Edge Functions) for small functions that run close to your users
Server code sits beside the UI it serves; on Vercel and Supabase it scales to zero when idle
DatabaseSupabaseConvexPostgreSQL
We build on Supabase, Convex, Neon or a managed Postgres service in your own cloud, such as Amazon RDS or Azure Database for PostgreSQL, whichever fits the product. On Supabase, Postgres with row-level security.
On Supabase and Postgres: per-tenant data isolation enforced in the database, not just the app, and on Supabase, point-in-time recovery
Auth and rolesSupabase
Supabase Auth by default, or Clerk or Auth0: email and password, an optional second factor, SSO where your customers need it (SAML or OIDC, through Microsoft Entra ID, Google Workspace or Okta), and role-based access
Owner, member and customer roles out of the box; sessions verified locally for speed
BillingStripeXero
Stripe by default, or Paddle, Chargebee, Square or GoCardless, with invoices raised in Xero where your accounts already live. Any billing platform with a proper API works.
Plans, trials, upgrades, failed-payment handling and self-serve cancellation
HostingVercelSupabaseConvex
Flexible: Vercel for the app and Supabase for the database by default, in an Australian region where needed. We also deploy to Cloudflare Workers and Pages, Convex, or your own cloud on AWS or Azure.
On Vercel and Supabase: deploy on every push, previews per branch, no servers to patch
SecurityEncryption
On our default Vercel and Supabase stack, data is encrypted in transit (TLS 1.2+) and at rest (AES-256).
Our default: every endpoint checks who is calling, every route is rate limited, every key is scoped to least privilege, secrets live in managed environment secrets and never in the code, sensitive actions are audit logged, and production runs apart from every other environment. We also work inside your own setup: your cloud, your identity provider and your security policies.
AutomationOur own logic
We write automations in TypeScript that run on scheduled jobs and webhooks beside your app on Vercel and Supabase, with every run logged. Where n8n, Make or Zapier suits you better, we'll work in those too.
Written, tested and deployed with the rest of the product, triggered by Vercel Cron schedules or webhooks, with state and every run logged in Supabase
AIClaudeOpenAIGoogle GeminiMetaMistral AI
We integrate the right model for each job: frontier LLMs from Anthropic, OpenAI, Google, Meta and Mistral, or local small language models where privacy or cost calls for it.
Inside the product: agents that use your tools, classifying and routing what comes in, drafting replies and documents, research, reading documents and images, voice, summaries and extraction
TelephonyTwilio
Twilio, Telnyx and Dialpad, or the phone system you already use
Real Australian numbers, inbound and outbound. Keep your number and phone system and forward calls to the agent, or take a new number
Voice AIElevenLabs
Voice agents on ElevenLabs, Synthflow and Retell, or on Alony, our own phone agent product
Natural-sounding phone agents that answer, book and follow up, inbound and outbound
Email and monitoring
Transactional email from your own domain through Resend or Postmark, or through the Outlook and Gmail APIs when mail should come from a real inbox. Errors tracked in Sentry, with uptime checks on the endpoints that matter.
Sign-in, receipt and notification email that lands in the inbox; errors reported with what we need to fix them, usually before your customers notice
Code and testsGitHubVitestPlaywright
GitHub repositories, Vitest and Playwright
Automated tests run on every change, and nothing reaches production without passing them
IntegrationsAny API
We work API-first: REST and GraphQL APIs, webhooks, oAuth 2.0 and API keys, jSON and JSON Schema, openAPI specs, clean REST APIs for the software we build, event-driven sync, idempotent retries, rate-limit handling, and data mapping and transformation.
If a tool has an API, your product can talk to it, reliably and without anyone retyping. Every endpoint we open is guarded: webhook signatures verified, auth on every call, rate limits, and bot protection on public forms.
The stack we build on
Layer
What we use
Why
Web and mobile UI
Next.js and Vite (React, TypeScript) with Tailwind CSS, shadcn/ui and Radix UI components, installable as a progressive web app
WhyOne codebase for desktop, phone and tablet; fast first load; installs on the home screen straight from the browser, with no App Store needed
API and server logic
Next.js server functions and API routes on Node.js, and Deno (Supabase Edge Functions) for small functions that run close to your users
WhyServer code sits beside the UI it serves; on Vercel and Supabase it scales to zero when idle
Database
We build on Supabase, Convex, Neon or a managed Postgres service in your own cloud, such as Amazon RDS or Azure Database for PostgreSQL, whichever fits the product. On Supabase, Postgres with row-level security.
WhyOn Supabase and Postgres: per-tenant data isolation enforced in the database, not just the app, and on Supabase, point-in-time recovery
Auth and roles
Supabase Auth by default, or Clerk or Auth0: email and password, an optional second factor, SSO where your customers need it (SAML or OIDC, through Microsoft Entra ID, Google Workspace or Okta), and role-based access
WhyOwner, member and customer roles out of the box; sessions verified locally for speed
Billing
Stripe by default, or Paddle, Chargebee, Square or GoCardless, with invoices raised in Xero where your accounts already live. Any billing platform with a proper API works.
WhyPlans, trials, upgrades, failed-payment handling and self-serve cancellation
Hosting
Flexible: Vercel for the app and Supabase for the database by default, in an Australian region where needed. We also deploy to Cloudflare Workers and Pages, Convex, or your own cloud on AWS or Azure.
WhyOn Vercel and Supabase: deploy on every push, previews per branch, no servers to patch
Security
On our default Vercel and Supabase stack, data is encrypted in transit (TLS 1.2+) and at rest (AES-256).
WhyOur default: every endpoint checks who is calling, every route is rate limited, every key is scoped to least privilege, secrets live in managed environment secrets and never in the code, sensitive actions are audit logged, and production runs apart from every other environment. We also work inside your own setup: your cloud, your identity provider and your security policies.
Automation
We write automations in TypeScript that run on scheduled jobs and webhooks beside your app on Vercel and Supabase, with every run logged. Where n8n, Make or Zapier suits you better, we'll work in those too.
WhyWritten, tested and deployed with the rest of the product, triggered by Vercel Cron schedules or webhooks, with state and every run logged in Supabase
AI
We integrate the right model for each job: frontier LLMs from Anthropic, OpenAI, Google, Meta and Mistral, or local small language models where privacy or cost calls for it.
WhyInside the product: agents that use your tools, classifying and routing what comes in, drafting replies and documents, research, reading documents and images, voice, summaries and extraction
Telephony
Twilio, Telnyx and Dialpad, or the phone system you already use
WhyReal Australian numbers, inbound and outbound. Keep your number and phone system and forward calls to the agent, or take a new number
Voice AI
Voice agents on ElevenLabs, Synthflow and Retell, or on Alony, our own phone agent product
WhyNatural-sounding phone agents that answer, book and follow up, inbound and outbound
Email and monitoring
Transactional email from your own domain through Resend or Postmark, or through the Outlook and Gmail APIs when mail should come from a real inbox. Errors tracked in Sentry, with uptime checks on the endpoints that matter.
WhySign-in, receipt and notification email that lands in the inbox; errors reported with what we need to fix them, usually before your customers notice
Code and tests
GitHub repositories, Vitest and Playwright
WhyAutomated tests run on every change, and nothing reaches production without passing them
Integrations
We work API-first:
REST and GraphQL APIs
Webhooks
OAuth 2.0 and API keys
JSON and JSON Schema
OpenAPI specs
Clean REST APIs for the software we build
Event-driven sync
Idempotent retries
Rate-limit handling
Data mapping and transformation
WhyIf a tool has an API, your product can talk to it, reliably and without anyone retyping. Every endpoint we open is guarded: webhook signatures verified, auth on every call, rate limits, and bot protection on public forms.
Software we run every day
Our own platform and our own SaaS product, both live today on the stack above.
Spark HQ, our own operations platform
Spark HQ is an internal web app and software automation logic for all of our business operations, on the same stack we build for clients. We use it every day.
Spark HQ
Mission Control
Today's priorities, across every client.
1 of 6 modules, all on the same stack as client builds.
CRM
Leads, clients and every conversation.
2 of 6 modules, all on the same stack as client builds.
Projects
Delivery from scope to go-live.
3 of 6 modules, all on the same stack as client builds.
Finance
Quotes, invoices and what's owed.
4 of 6 modules, all on the same stack as client builds.
Agent fleet
AI agents across sales, delivery, finance and comms.
5 of 6 modules, all on the same stack as client builds.
Logging and learning
Every agent run logged, costed and reviewed.
6 of 6 modules, all on the same stack as client builds.
Alony AI, our own SaaS
A self-serve AI phone agent for small businesses, live at alony.ai. A customer signs up, builds a fully tailored agent with no technical input, gets a real Australian phone number, and takes inbound and outbound calls within minutes.
Every call is recorded, transcribed and summarised in a dashboard, and customers connect their own API, calendar, CRM or webhook without any technical ability at all. Billing, trials, plan changes and cancellation are all self-serve. A partner tier lets a reseller manage agents for its own clients from one account, fully white-labelled for partners.
We built and operate all of it: front end, back end, telephony, billing and support.
Wherever it needs to. By default on Vercel and Supabase, in an Australian region where you need it, or in your own cloud. On our default Supabase stack, each customer's data is isolated at the database level, encrypted in transit (TLS 1.2+) and at rest (AES-256), and backed up with point-in-time recovery.
Can it work with the systems we already use?
Almost always. We work API-first: REST and GraphQL, webhooks and OAuth. If a system has an API or sends webhooks, your product can read from it and write to it, with retries and rate limits handled properly. When we build your software, we give it a clean REST API, or whatever API structure your other tools need, so it plugs into anything.
Will it work on phones as well as desktop?
Yes. We design for phone and desktop from the start, from one codebase. The app installs from the browser like a native one, with no app store in the way.
Which AI models do you use?
The right one for each job. We integrate frontier LLMs from Anthropic, OpenAI, Google, Meta and Mistral, or local small language models where privacy or cost calls for it.