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.
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.
