← Back to workAI & automation / Canadian legal tech

A matter-centred legal workspace

CounselCan

The whole matter.
A clearer next step.

From the first intake to a reviewed client update. A connected practice platform that brings source material, AI assistance and human judgement into the same workflow.

Live website · Private application source

CounselCan public homepage with the firm workspace introduction, navigation and illustrative office artwork.
CounselCan homepage on mobile with firm and client portal entry points.

The public experience · Desktop & mobile

Canadian law firmsSource-aware AI assistanceExplicit review & sharing

The product challenge

Legal work is connected.
The workspace should be too.

Intake, disclosure, dates, preparation and client communication all describe the same matter. CounselCan keeps that context together, with clear states for what has been processed, reviewed and shared.

Intake & conflict review

A considered first contact.

Firm-branded intake gathers client details and supporting files. Leads move through review states, with conflict candidates and a recorded staff decision before an accepted lead becomes a matter.

Documents & matter review

The file, in context.

Originals, processing status, extracted pages, notes and saved work product stay with the matter. A guided review queue points to source checks, candidate dates, drafts and follow-up.

Disclosure & strategy

Preparation with a paper trail.

Disclosure summaries, chronology work, strategy notes and Canadian research memos retain their source context and review status. Internal work product can be refined and exported as PDF or DOCX.

Dates, updates & requests

A clearer next step.

Staff confirm important dates, manage tasks, prepare updates and request missing files. Portal messages bring client questions back into the matter workflow.

Two experiences. One connected matter.

A working space for the firm.
A clear window for the client.

The internal case file and the client portal serve different needs. Review and sharing controls connect them while keeping internal preparation within the firm.

Inside the firm

The complete working context.

  • Leads, conflict review and matter opening
  • Documents, extracted sources and review queues
  • AI drafts, research, chronology and strategy work
  • Dates, tasks, updates and incoming client requests

Through the client portal

The information they need next.

  • Chosen matter updates and documents
  • Approved dates and next steps
  • Requests for missing files
  • Messages and replies in one place

Follow one document through the system

From source material
to something ready for review.

The interesting engineering sits between the upload and the update. Explore how ownership, extraction, AI context and staff decisions stay connected at each stage.

Workflow illustration · explore each stage

Preserve the source

Original document

An authorised upload is linked to its firm and matter. The original is retained with a content hash; extracted text and later versions are separate records.

Source ownership, document identity and the original file remain connected.

Make the file usable

Extract & organise

A Python worker processes queued documents, extracting text from PDFs and DOCX files and using OCR for scanned pages and images when available. Pages and chunks support later retrieval.

Processing states and errors stay visible. Candidate dates still need approval.

Work from authorised context

AI-assisted draft

The AI Gateway checks permissions, assembles allowed matter sources and requests a task-specific structured response. Source references and a review state accompany the draft.

Firm-configured provider adapters support Gemini and DeepSeek.

Put judgement at the centre

Lawyer review

Staff inspect the sources, edit work product and record an approval or rejection. Extracted dates and AI-generated drafts have explicit review steps.

Saving a draft is separate from approving it.

Make the next step clear

Chosen client share

The firm chooses which updates and documents a client can see. Explicit portal shares, visibility states and access rules determine what appears in the client workspace.

Internal work product stays internal until a permitted sharing action.

Purpose-built assistance

AI with a task.
A source. A review step.

The AI workbench brings focused tools into the matter. Each task has a purpose and an output shape, with source context and a review state carried into the resulting work product.

Disclosure summaries

Organise key documents, chronology candidates, people, dates, gaps and follow-up tasks. Extracted dates remain suggestions for staff approval.

Matter questions

Answer questions using authorised matter material, retaining source-chunk references and limitations alongside the response.

Client update drafts

Prepare a plain-language starting point from matter context. The firm reviews and edits the draft before choosing what to share.

Canadian legal research

Retrieve Canadian case-law material through A2AJ and prepare review-required memos with supplied passage references. Source inspection remains part of the lawyer’s work.

Strategy red teaming

Surface opposing theories, harmful facts, missing evidence and difficult questions to help a lawyer prepare and challenge assumptions.

Scenario analysis

Explore assumptions, vulnerabilities and scenario sensitivity. Simulations support preparation; they do not predict a court result.

Human judgement is a workflow step. AI drafts require review. Extracted dates require approval. A scenario analysis is a preparation aid, not a court-outcome prediction.

The engineering underneath

A connected product.
Deliberate boundaries.

A modular application and a document worker separate the interactive workspace from heavier processing. Typed boundaries keep identity, permissions, documents and model requests in context.

A modular web application.

Next.js App Router, React and TypeScript provide the interface. Shared packages separate domain rules, validation, authorisation, auditing, object storage, AI orchestration and legal research.

Documents have their own processing path.

The web app queues work rather than running OCR inside a page request. A Python worker claims jobs, extracts content, writes derivatives and records processing states. Cloudflare R2 holds originals and generated files.

Access follows the firm and the matter.

Supabase Auth and Postgres underpin identities, relationships and row-level access rules. Object delivery is authorised before a short-lived upload or download URL is issued. Portal visibility is an explicit record state.

AI is an application capability.

Gemini and DeepSeek adapters sit behind a permission-aware AI Gateway. Named tasks use structured outputs, source IDs, prompt versions and reviewer status. Providers receive selected context rather than database or object-store credentials.

  • Next.js App Router
  • React
  • TypeScript
  • Tailwind CSS
  • Python
  • Supabase Auth
  • Postgres
  • Cloudflare R2
  • AI Gateway
  • Zod
  • Railway

Explore the live website

Connected matters.
Informed clients.

Start a conversation

Big idea.
Small hello.

A practical problem. An ambitious idea. A system that could work better. Tell me what’s on your mind.

What would you love to stop doing manually?

Prefer the direct route?

Ontario, Canada

A little hello goes a long way.

What are we thinking?

Rough ideas are very welcome.

Just a conversation.
No perfect brief required.

Your message goes directly to Kevin.

Find something

HomeKevin DeMaraWorkPageExpertisePageAboutPageExperiencePageLabExperimentsPorchlightLocal-first Blink camera companionCounselCanCanadian legal practice platformEAIRIAI readiness & learning platformLocal AI StudioLocal-first development workspaceWildrimPersistent browser fantasy MMOYogabroResponsive yoga studioCreator Asset StudioWindows desktop applicationEvent RSVP ManagerWordPress pluginAjax Comedy ClubEvent website & management platformVelocity3D browser racing gameWebsite Security ScannerChrome extensionContacthello@kevindemara.com

Tab to navigate · Enter to open · Esc to close