24/7 emergency line 647-812-3775

AnnexA2Annex Planning and software

Custom software development for Canadian businesses

Web apps, mobile apps, integrations and the replacement for the spreadsheet everyone is afraid to touch. Built for businesses across Canada, and hosted in Canada when it matters.

  • Web and mobile apps
  • Integrations
  • Replace the spreadsheet everyone is afraid to touch
  • Hosted in Canada when it matters

Software built around how your business already works

We design, build and support custom software for businesses across Canada: internal tools, customer portals, web and mobile apps, and the integrations that stop staff from typing the same order into three different systems. Most of the work happens over video calls and shared screens, so it makes no difference whether you are in Mississauga, Moncton or Kelowna.

Off-the-shelf software is the right answer more often than people expect, and we will say so when it is. Custom software earns its cost when your process is what sets you apart, when the packaged options need so many workarounds that staff have built a second system in Excel, or when two systems you already pay for will not talk to each other.

We are also an IT support company, which changes what happens after launch. The team that builds the application can host it, back it up, keep its frameworks patched and answer the phone when a user is stuck. Many development firms finish the build and move on to the next client. Here the software stays with people who run IT for a living.

What we build

Most projects fall into one of these groups, and plenty combine two or three. A customer portal usually needs an integration behind it, and an internal app often needs a mobile version for the people who are never at a desk.

Internal business applications

Order entry, job tracking, quoting, inventory, scheduling, inspections and approvals. This is the work that lives today in spreadsheets, an old Access database or a shared inbox. We turn it into a web application with proper user accounts, an audit trail and reports, so it no longer depends on the one person who knows how the macros work.

Customer, supplier and partner portals

Secure places where customers check orders and invoices, upload documents, book appointments or download reports, and where suppliers confirm purchase orders. People sign in with a Microsoft, Google or email account, and each one sees only their own records.

Web applications and SaaS products

Software you sell to your own customers, from a first version built to test the market through to a multi-tenant platform with subscriptions, billing in Canadian dollars, usage reporting and an admin console for your support team.

Mobile apps

iPhone and Android apps for field staff, drivers, technicians and customers. That includes working offline where there is no signal, scanning barcodes and QR codes, taking photos, capturing signatures and recording location. Apps are published to the App Store and Google Play under your own developer accounts.

Integrations and APIs

Connecting the systems you already use for accounting, ERP, CRM, e-commerce, payroll, shipping and documents. An order placed in Shopify lands in Business Central. An invoice paid in QuickBooks Online updates the customer portal. A signed quote in HubSpot creates the job. We also build and document APIs for your own systems, so partners and customers can connect to you.

Workflow automation

Approvals, document generation, reminders and scheduled jobs that remove repetitive admin. Some of it belongs in Power Automate, some in a small service that runs on a schedule in Azure or AWS. We pick whichever costs less to run and is easier for you to support.

Data, reporting and dashboards

Getting data out of the systems that hold it, cleaning it and presenting it in Power BI or in a dashboard inside your own application. When the data outgrows spreadsheet exports, we set up a proper reporting database so the numbers agree from one report to the next.

AI features inside your software

Practical uses rather than demos: reading invoices and forms into structured data, searching your own documents in plain language, drafting replies from your knowledge base and sorting incoming requests. We build these on Azure OpenAI, the OpenAI and Anthropic APIs or open-weight models, set up so your data is not used to train public models and, where the provider offers a Canadian region, processed in Canada.

Languages, frameworks and platforms we work with

We are not tied to one language or vendor. The right choice depends on what you already run, who will maintain the software after launch and where it will be hosted. A business that lives in Microsoft 365 usually gets the most from .NET, Azure and the Power Platform. A product company hiring its own developers later may be better served by TypeScript or Python, because those developers are easier to find.

Technologies used in our custom software projects and where each fits
Area Technologies Typical use
Back end C# and ASP.NET Core, Java with Spring Boot, Python with Django and FastAPI, Node.js with TypeScript (NestJS, Express), PHP with Laravel, Go Business logic, APIs, integrations and background jobs
Web front end React and Next.js, Angular, Vue and Nuxt, TypeScript, Blazor, Tailwind CSS Browser applications, portals and dashboards
Mobile Swift and SwiftUI, Kotlin and Jetpack Compose, React Native, Flutter, .NET MAUI iPhone, iPad and Android apps
Microsoft 365 and low-code Power Apps, Power Automate, Dataverse, Copilot Studio, SharePoint Framework, Teams apps, Microsoft Graph Internal apps and automation for teams already on Microsoft 365
Databases SQL Server and Azure SQL, PostgreSQL, MySQL and MariaDB, MongoDB, Azure Cosmos DB, Redis, SQLite Business records, documents, caching and offline storage on phones
Cloud and hosting Microsoft Azure, Amazon Web Services, Google Cloud, Docker, Kubernetes, serverless functions Hosting, scaling and scheduled work
DevOps and testing GitHub and GitHub Actions, Azure DevOps, GitLab CI, Terraform, Bicep, xUnit, JUnit, pytest, Jest, Playwright Repeatable builds, safe releases and infrastructure as code
Integration REST and GraphQL APIs, webhooks, Azure Logic Apps, Azure Service Bus, EDI, SFTP file exchange Connecting your systems to each other and to partners
AI and search Azure OpenAI, OpenAI API, Anthropic Claude, open-weight models, vector and hybrid search Document processing, assistants and search over your own content
Identity Microsoft Entra ID, Entra External ID, Google sign-in, OAuth 2.0 and OpenID Connect, passkeys Single sign-on for staff and secure logins for customers

Business systems we connect to

  • Accounting and ERP: QuickBooks Online, Xero, Sage 50, Sage 300, Sage Intacct, Microsoft Dynamics 365 Business Central, NetSuite, Acumatica and Odoo
  • CRM and sales: Salesforce, HubSpot, Dynamics 365 Sales and Zoho
  • E-commerce and payments: Shopify, WooCommerce, BigCommerce, Stripe, Moneris, Square and PayPal
  • Payroll and HR: ADP, Dayforce and BambooHR
  • Shipping: Canada Post, Purolator, UPS, FedEx and ShipStation
  • Documents and signatures: SharePoint, OneDrive, Google Drive, DocuSign and Adobe Acrobat Sign
  • Field service and construction: Jobber, ServiceTitan and Procore

New work goes on versions their makers still support, such as .NET 10, Java 25, Node.js 24 or 26, a current Python 3 release and PHP 8.4 or later. Upgrades are planned before support ends, so the application is not quietly running on an unpatched framework three years from now. As an example, .NET 8 and .NET 9 both reach end of support on November 10, 2026.

Power Apps or custom code?

For a business already on Microsoft 365, Power Apps and Power Automate can put a working internal app in front of staff within weeks. Over five years they are not always the cheaper option. These are the questions that usually decide it.

When the Power Platform fits and when custom code fits
Question Power Platform tends to fit Custom code tends to fit
Who uses it? Your own staff, all with Microsoft 365 accounts Customers, suppliers or the public
How many users? Tens of people Hundreds or thousands, where per-user licences add up
How complex is the logic? Forms, approvals, lists and simple rules Pricing engines, scheduling, heavy calculations
How much data? Modest, fits Dataverse or SharePoint lists Large volumes, many transactions, heavy reporting
How should it look? Functional is fine Branded, polished and built for phones first
Who maintains it? A power user on staff, with us as backup Developers, ours or yours

On Microsoft Canada’s annual pricing in October 2026, Power Apps Premium is $27.10 per user per month and Power Automate Premium is $20.40, and Dataverse storage beyond the included amount costs extra. When the answer is close, we price both routes so you can compare the total over three to five years, not just the build. The rest of the Microsoft side is covered on our Microsoft 365 page.

Replacing legacy software without stopping the business

Plenty of Canadian businesses run on software that has outlived its platform: an Access database on a shared drive, Excel workbooks full of VBA macros, a Visual Basic 6 program, a Classic ASP or Web Forms intranet, or a vendor product that is no longer sold. It usually works, until the server it runs on reaches end of support or the one person who understands it retires.

Rewriting everything at once is the riskiest way to replace it. We usually move one function at a time, with the old and new systems running side by side until each piece is proven. Data is migrated with checks that counts and totals match, and staff use the new version before the old one is switched off.

Dates worth checking

  • .NET 8 and .NET 9 reach end of support on November 10, 2026. .NET 10 is supported to November 2028.
  • Windows Server 2016 and .NET Framework 4.6.2 both reach end of support on January 12, 2027.
  • SQL Server 2016 extended support ended on July 14, 2026. SQL Server 2017 follows on October 12, 2027.
  • Windows 10 support ended on October 14, 2025. Extended Security Updates for businesses are sold a year at a time, for three years at most, and the price rises each year.
  • Visual Basic 6 programs still run on current Windows, but Microsoft fixes only serious regressions and critical security issues, and the development tools have been unsupported since 2008.

If the software is tied to an old server, the move often happens together with a server migration. We plan both so the application and its data arrive on supported platforms at the same time.

Hosted in Canada and built for Canadian privacy law

Where data lives matters more in Canada than many developers assume. Health information, client files and anything about Quebec residents come with rules attached. When personal information is involved, we host in Canadian cloud regions by default and document where every piece of data is stored and who can reach it.

Canadian hosting regions

  • Microsoft Azure: Canada Central in Toronto and Canada East in Quebec
  • Amazon Web Services: Canada Central in Montreal and Canada West in Calgary
  • Google Cloud: Montreal and Toronto
  • Oracle Cloud: Toronto and Montreal
  • Microsoft 365 data can be kept in Canada, and Power Platform environments can be created in a Canadian region

Privacy and accessibility rules we design for

  • PIPEDA still governs personal information in the private sector federally. Bill C-27 died in January 2025, and its replacement, Bill C-36, was introduced in June 2026 but is not law yet. Building in consent, safeguards and breach records now means less rework if it passes.
  • Quebec Law 25 requires a privacy impact assessment before a system that handles personal information is built or redesigned, and before that information leaves Quebec. Since September 2024 people can also ask for their data in a structured, commonly used format, so the software needs a proper export.
  • Ontario PHIPA covers personal health information. Penalties of up to $500,000 for organizations have applied since January 2024, so clinic and health apps need audit logs and tight access from the first release.
  • Alberta and BC PIPA apply to private organizations in those provinces for most of what they do within the province.
  • AODA requires Ontario businesses and non-profits with 50 or more employees to meet WCAG 2.0 Level AA on their websites. We build to WCAG 2.2 AA, so applications work with screen readers and keyboards wherever your users are.

We are not lawyers. We build the controls your privacy officer or legal counsel asks for, such as consent records, retention rules, audit logs, role-based access and data export, and we document them so they can be shown to an auditor or a client.

Security from the first line of code

Custom software is a common way in for attackers, because nobody outside your business is watching it. We build against the OWASP Top 10 (2025 edition) and the OWASP Application Security Verification Standard 5.0, and follow NIST’s Secure Software Development Framework. The Canadian Centre for Cyber Security backs the same secure-by-design approach.

  • Sign-in through Microsoft Entra ID or another identity provider with multi-factor authentication, instead of a home-made password table
  • Permissions checked on the server for every request, not just hidden on the screen
  • Passwords, keys and connection strings kept in a key vault, never in the code
  • Third-party packages scanned for known vulnerabilities on every build
  • Every change reviewed by a second developer before it ships
  • Sign-ins and important changes logged, and kept long enough to investigate an incident
  • Backups tested by restoring them, not just by checking that the job ran
  • An independent penetration test before launch for applications that hold sensitive data, quoted separately

The application sits inside the rest of your security, so we look at it together with email, devices and accounts. See our cybersecurity services for that side.

Pricing, ownership and what you get at the end

Every project starts with a discovery phase at a fixed price. We map the process, talk to the people who will use the software, look at the systems it has to connect to and write up a scope, a technical plan and either a fixed quote or a budget range for the build. You own that document and can take it to another developer if you prefer.

Two ways to pay for the build

  • Fixed price per phase. Suits a well-defined scope. Each phase has an agreed set of features and an agreed price before it starts.
  • Monthly development team. A set number of developer days each month, for products that will keep changing. Priorities can be reset every couple of weeks.

You own what you pay for

  • The source code lives in your own GitHub, GitLab or Azure DevOps account from the first day
  • Cloud subscriptions, domains and app store listings are registered to your business
  • Intellectual property in the custom work is assigned to you in the contract
  • Documentation covers how to build, deploy and run the system, so another team could take it over

SR&ED tax credits

Some software development qualifies for Canada’s Scientific Research and Experimental Development (SR&ED) program. For Canadian-controlled private corporations the credit is 35% and fully refundable on up to $6 million of eligible spending a year. Routine development does not qualify. Work aimed at a technological advancement that faces real technical uncertainty can. We keep the records a claim needs, such as what was tried, what failed and why, and work with your accountant or SR&ED advisor, who decides what qualifies. Ontario companies may also be able to claim the Ontario Innovation Tax Credit on the same work.

After launch: hosting, support and upkeep

Software needs looking after the way a server does. Frameworks reach end of support, browser and phone updates break things, certificates expire, and the people using it think of improvements. Because running IT is our day job, that care can sit with the same team that built it.

  • Hosting in your own Azure, AWS or Google Cloud account, set up and watched by us
  • Security patches applied, and framework upgrades planned well before versions reach end of support
  • Error and uptime monitoring that alerts us when something breaks
  • Backups with a recovery plan that has actually been tested
  • A help desk your staff can call about the application, the same as any other IT problem
  • A monthly block of hours for small changes and improvements

Businesses in the GTA on our managed IT plan can add application support to the same agreement. Businesses elsewhere in Canada get it as a separate support plan. Both are quoted once we know the application.

Working with businesses across Canada

Custom software does not need us in the room, so we take projects from anywhere in Canada. Workshops, demos and training run over Teams or Zoom and are scheduled to suit your time zone. Businesses in the Greater Toronto Area can also meet us in person.

A company in Vancouver, Calgary, Edmonton, Saskatoon, Winnipeg, Ottawa, Montreal, Quebec City, Halifax or St. John’s gets the same process as one down the street from us: the same discovery, the same fixed quotes and the same ownership terms. Applications can be built in English and French, with the interface text managed so both versions stay in step.

Already have IT support you are happy with? That is fine. We work alongside your current provider or internal IT team on hosting and access, and stick to the software.

Common custom software projects

Each of these starts with discovery and a written scope. The build is then quoted at a fixed price per phase or run as a monthly team, whichever suits the work.

  • Discovery, written scope and quote for a new applicationFixed price
  • Replace an Access database or Excel workbook with a web appFixed quote
  • Customer or supplier portal with secure sign-inFixed quote
  • Integration between accounting, CRM and e-commerce systemsFixed quote
  • iPhone and Android app for field staffFixed quote
  • Power Apps and Power Automate solution for an internal processFixed quote
  • Upgrade of an application stuck on an unsupported frameworkFixed quote
  • Review of software another developer builtFixed quote
  • Ongoing development teamMonthly

Questions people ask

How much does custom software cost?

It depends on scope more than anything, so we do not publish a price list. A small internal tool or a single integration costs far less than a customer-facing platform. The discovery phase is fixed-price and ends with a fixed quote or a budget range for the build, and if a packaged product would do the job for less, we say so.

How long does a custom software project take?

A focused internal tool or integration often takes weeks rather than months. A customer portal or a product you sell takes longer and is usually delivered in phases, so something useful goes live early and later phases build on real feedback.

Do we own the source code?

Yes. The code lives in your own repository from the first day, the cloud accounts and app store listings are registered to your business, and the contract assigns the intellectual property in the custom work to you.

Can you take over software another developer built?

Yes. We start with a fixed-price review of the code, hosting and documentation, then tell you plainly whether to keep it, fix it or replace it, and what each option costs.

Do you only work with businesses in Ontario?

No. We take custom software projects from anywhere in Canada. Meetings, demos and training happen online, and businesses in the Greater Toronto Area can also meet us in person.

Can our data stay in Canada?

Yes. Azure, AWS, Google Cloud and Oracle all have Canadian regions, and we use them by default when personal information is involved. We document where each kind of data is stored and which outside services, such as email or AI providers, it passes through.

Should we use Power Apps or custom code?

Power Apps suits internal tools for staff who already have Microsoft 365, especially forms, approvals and simple workflows. Custom code suits customer-facing software, large numbers of users and complex logic. When it is close, we price both over three to five years.

Can the software be in English and French?

Yes. We build the interface so every piece of text can be translated and managed in one place, and dates, numbers and currency follow the user's language. Businesses with customers or staff in Quebec often need a French version.

Can custom software qualify for SR&ED?

Some of it can. Work that tackles real technical uncertainty may qualify, while routine development does not. We keep the technical records a claim needs and work with your accountant or SR&ED advisor, who decides what to claim.

Tell us what’s going on

Pick how urgent it is and leave a way to reach you. The help desk replies by phone or email. If work has stopped, call 647-812-3775 instead.

How bad is it?

Down right now? Call 647-812-3775. A technician answers, day or night.

Something broken, or something to plan?

For anything urgent, call. A technician answers the emergency line 24/7. For everything else, open a ticket and tell us what is going on.