Skip to content

Next.js in Ottawa

Next.js development for Ottawa government and association work

A Next.js development company working with Ottawa departments, agencies and associations. Building inside a design system somebody else owns, where the components are specified rather than chosen.

Working day overlap
About an hour. Ottawa is eight hours behind Ankara, so our day closes as yours opens
Who buys here
Federal departments and agencies, the contractors delivering for them, national associations and non-profit bodies
What that changes
The design system is specified rather than selected, so the work is implementing somebody else's components correctly rather than designing new ones
Local specifics
Accessibility conformance is inherited from the design system only if its components are used as intended, and it is lost quietly when they are not

Ottawa is the market where nobody is asking for a design.

The buyers are federal departments and agencies, the contractors who deliver for them, and the national associations and non-profit bodies clustered around them. On a great many of these projects the visual design, the components and the interaction patterns are specified in advance by a design system the organisation does not own and cannot vary. The work is implementation, and it is more demanding than it sounds.

Implementing somebody else's components, faithfully

The temptation is to find a React component library that looks close enough and style it to match. That produces something that passes a visual review and fails a conformance one.

A design system's components are specifications about markup, labelling and keyboard behaviour as much as about appearance. A button that is a div with a click handler looks identical and is not a button. A disclosure that animates correctly while never telling assistive technology whether it is open is a failure that no screenshot reveals.

So these components get implemented from the specification rather than from the rendered result, as server-rendered markup wherever the interaction does not require otherwise, and tested with a keyboard before anybody calls one finished. That is unglamorous work and it is the whole job. Where the App Router helps is that most of these components have no state at all, so they ship no JavaScript - which is both faster and one fewer thing to get wrong.

Conformance is inherited, and it is lost quietly

The claim that using the official components makes a site accessible is true under a condition that is narrower than it appears.

Conformance survives if the component's element, attributes, labelling and keyboard handling survive. It is lost the moment somebody reproduces the look while changing the structure - and the loss is silent, because nothing in a build or a test suite notices that a label stopped being associated with its input.

The practical response is to treat deviation from the system as a decision requiring a reason, and to test the interaction rather than the appearance. For an Ottawa project the testing is also the evidence, because conformance here is something the organisation states publicly.

Equal availability means no silent fallback

Both official languages have to be equally available, and the technical requirements are mostly straightforward - separate URLs, declared alternates, a switcher in a consistent position.

The one that gets missed is the fallback. A system configured to serve English when a French page is missing looks helpful and produces exactly the failure the requirement exists to prevent: a visitor who asked for French receives English without being told, and the site reports itself as bilingual while being bilingual in half its content.

The correct behaviour is to say the page is not available in that language yet. It is less tidy and it is honest, and in a bilingual obligation honesty is the requirement. The country-level ground for Canada - privacy law, Quebec's regime, invoicing - is on the Canada market page.

Commercially

Scope fixed in writing before work starts, priced per project.

Invoiced by Codefacture Yazılım A.Ş. in Türkiye, in Canadian or US dollars by bank transfer, with no Turkish VAT because exported services are exempt.

The regulatory and commercial ground for this city is on the Canada market page.

Frequently asked questions

Our Ottawa project has to use a mandated design system. Does that make Next.js the wrong choice?
No, and it usually makes it a better one, but the work changes shape. The system supplies markup, class names and interaction behaviour, and the task is to express those faithfully as server-rendered components rather than to reach for a React component library that looks similar. The failure mode is subtle - a component that looks identical and announces itself differently to a screen reader - and it is the thing a conformance review finds.
If we use the official components, is the site accessible?
Only if they are used as intended, and that is a narrower condition than it sounds. The accessibility of a component depends on its markup, its labelling and its keyboard behaviour. Re-implementing the visual appearance while changing the element, dropping an attribute or handling keys differently produces something that looks conformant and is not. So the discipline is to implement from the system's specification rather than from a screenshot of it, and to test with a keyboard before declaring anything done.
Both languages have to be equally available. What does that require?
Each language with its own URL, the alternates declared between them, the switcher in a consistent and visible place, and - the part that gets missed - no page that exists in one language and silently falls back to the other. A fallback looks helpful and means a visitor who asked for French receives English without being told, which is the specific failure the requirement exists to prevent. Better to say the page is not yet available in that language than to quietly substitute.
Can you work under a prime contractor?
That is the usual arrangement in Ottawa and it works with two things agreed in writing - who holds the client relationship and what the handover consists of. The prime presents and maintains the result, so written implementation decisions are part of what we deliver rather than a courtesy. The contracting entity is Codefacture Yazılım A.Ş. in Türkiye.
Call us+1 848 272 7583WhatsApp+90 850 308 5436Emailinfo@codefacture.comContact page