Skip to main contentLoren Couse
Menu
All work

Web app · Next.js

Canker Core

Mark a canker sore on a map of the mouth, log it daily, and know whether it is healing.

Role
Design and code
Years
2024–2026
Links
Live site ↗Code ↗

Built and the result

  • Tracking

    Sores marked on a three-view mouth map, with size and pain logged each day

    Healing you can see

  • Insight

    History charts and a tally of triggers and treatments logged before each sore

    Patterns over time

  • Content

    A public mouth-map guide and 14 articles, written for search

    Found on Google

  • Platform

    Self-hosted Postgres and Better Auth, packaged for iPhone and Android

    One codebase, three platforms

Canker Core screenshot

Stack

  • Next.js
  • React
  • TypeScript
  • Tailwind
  • Postgres
  • Better Auth
  • Capacitor

Timeline

  1. 2024First version on Supabase and Vercel
  2. 2026Moved to self-hosted Postgres and Better Auth, packaged as iPhone and Android apps
  3. 2026Mobile-first redesign of Today and the mouth map
The full story

Short Explanation

Canker sores all feel like they last forever. Canker Core lets you mark where one is, log its size and pain each day, and find out whether it is actually shrinking, and whether anything you tried made a difference.

Canker Core mouth-map guide, with a tab for each part of the mouth

Features

  • Mouth map: three flat views (front, cheeks, lips). Tap to mark a sore, drag to move it, pinch to zoom.
  • Today: the daily check-in. Every open sore with size and pain sliders, a "same as last time" shortcut, and a log of suspected triggers and treatments. A daily reminder on iPhone and Android.
  • History: open sores, typical days to heal, worst pain and most common spot, a size-over-time chart, and each sore's own course with its notes.
  • A nudge to see a dentist when a sore runs past two weeks.
  • Account: email, magic link, GitHub and Google sign-in, CSV export of every reading, and self-serve deletion.
  • Writing: a public guide to each part of the mouth and articles on causes and treatments, written to be found in search.

Tech Stack Used

Built with Next.js, React, TypeScript, Tailwind CSS

  • Next.js and React: server-rendered pages so the guide and articles can rank.
  • Postgres: self-hosted, plain SQL over a connection pool, no ORM.
  • Better Auth: email and password, magic link, GitHub and Google.
  • Recharts: the history charts.
  • Capacitor: the iPhone and Android apps, plus an installable web app.
  • Docker on Coolify: deployed to my own server.

Project Goals

I built Canker Core to understand my own canker sores, and to give others a simple way to do the same: see whether a sore is healing, and learn what tends to come before one.

NextFoldy Friends

Hiring an SEO & AEO growth engineer? Write to me.

contact@lorencouse.com