projects/2016–26 private

EverTech Memorial Platform

Memorial sites, obituaries, donations and livestreams for funeral homes across Canada.

  • TypeScript
  • React
  • Gatsby 5
  • GraphQL
  • MongoDB
  • WordPress
The EverTech admin dashboard listing memorials

EverTech Solutions is the company I co-founded in 2016. We run the websites funeral homes use to publish obituaries, collect condolences and donations, and stream services. In 2026 I rebuilt the front of it: a monorepo of Gatsby sites on a shared UI package, plus a new admin dashboard that every site embeds.

The admin dashboard

The admin is where funeral-home staff do everything, so it’s the biggest part of the rebuild. It replaces a legacy Fluxxor app with a Gatsby 5, React 18 and TypeScript single-page app.

  • Strict layering: components only call hooks. Hooks live in context/, built on useReducer with async actions. Only services/ talks to the network. Every screen follows the same one-way flow.
  • Areas: memorials (a step-by-step creation wizard with a layout picker and live preview, plus approvals and an archive), donations, users, custom domains, traffic, audit logs and a system status page.
  • One build, every site: it’s built once with a /admin path prefix and copied into each site at deploy, so it’s served same-origin at <site>/admin with no CORS and no separate host.
  • Server contracts: every GraphQL input type and REST route is checked against the backend (rest-in-print-server: Node, GraphQL, REST, MongoDB and Redis) instead of assumed.
  • “Green” means green: Jest and React Testing Library pass, gatsby build exits 0 and tsc reports zero errors.
Active memorials list in the EverTech admin
Active memorials, with each family's memorial admin.
The memorial editor on desktop with the form beside a live preview of the memorial page
The memorial editor on desktop: the form beside a live preview of the family's memorial page, rendered from the unsaved draft.
The memorial editor's Basic Info and Funeral Event steps in Form mode on a phone
The same editor on a phone: decedent details, then funeral events.

The sites

  • An npm-workspaces monorepo with one Gatsby 5 site per funeral home, using WordPress multisite for page content.
  • @evertech/funeral-ui is the shared package for the memorial and obituary UI and site sections.
  • Netlify edge functions proxy the obituary API with an allowlist and ObjectId validation. In local dev, a dev-server stand-in does the same job.
  • For local dev, a Docker stack puts WordPress, the API and the admin behind one nginx proxy, demuxed by hostname.

Screenshots use a fictional funeral home with generated data.