Analysis updated 2026-05-18
Self host a private period tracker that keeps all data on your own machine
Log period start dates and see automatically calculated cycle phase and predictions
Build your own health tracking tool on top of a simple JSON file and two APIs
| chaodeng060-source/period-tracker | achrefelouafi/basicproceduralbuilding | acoyfellow/tuiport | |
|---|---|---|---|
| Stars | 16 | 16 | 16 |
| Language | TypeScript | TypeScript | TypeScript |
| Setup difficulty | easy | moderate | moderate |
| Complexity | 2/5 | 3/5 | 4/5 |
| Audience | general | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
No authentication is built in, add your own if exposing it beyond your own machine.
Period tracker is a minimal, self hosted app for logging your menstrual cycle. Everything is stored in a single JSON file on your own machine, there is no account to create, no cloud service, no ads, and no data sent anywhere else, so your health data stays entirely under your control. The app has one main action: tap a button to record that your period has started. You can also click any day on the calendar to add or remove a start date if you forgot to log it in real time. From the dates you log, the app automatically works out your average cycle length, when your next period is expected, which day of the current cycle you are on, and which phase you are likely in, such as menstrual, follicular, ovulation, or luteal. The calendar is color coded by phase, but only up through today, since it does not try to predict future days beyond the current one. If you accidentally tap the start button twice for the same period, the app recognizes the duplicate and does not let it throw off the cycle math. To run it, you install a small set of Python dependencies and start a server with a single command, then open the page in your browser. The frontend is already built and included, so you do not need Node.js installed just to use the app. A few environment variables let you change where the data file lives, which port the server uses, and which network address it listens on, and the README notes that if you expose the app beyond your own machine you need to add your own authentication, such as a reverse proxy with basic auth. If you want to modify the frontend itself, there is a separate development setup using npm, and a small pytest based test suite is included. The cycle math is based on the average gap between recorded start dates and estimates ovulation around fourteen days before the next expected period. The README is clear that predictions are not medical advice. The project is released under the MIT license.
A minimal self hosted period tracker that stores all your cycle data in one local JSON file, with no account or cloud service.
Mainly TypeScript. The stack also includes Python, TypeScript.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly general.
This repo across BitVibe Labs
Verify against the repo before relying on details.