My wife needed a cycle tracker. Everything out there was either Flo (which got sued twice for sharing health data) or an abandoned GitHub project. So I built Ovumcy. Single Go binary, SQLite, Docker-ready. No analytics, no third-party APIs, no cloud. Your data stays on your server. Features: period tracking, symptom logging, predictions (ovulation, fertile window), statistics, CSV/JSON export, dark mode, Russian and English. Just pushed v0.2.5. Looking for feedback from real users.
I use Android, my wife - iOS. So many things that on F-Droid are simply unavailable to her (yes, I tried to convince her to go to our side). So I searched for living projects with self-hosting idea, did not find one and decided to create one. I have a CS background, though my professional work today is mostly in finance as a senior analyst where I write code to automate and optimize workflows. Ovumcy started as a personal project exploring a self-hosted approach to cycle tracking.
I recommend you set the Content-Security-Policy http header so that inline javascript (commonly used for XSS attacks) cannot be executed.
https://web.dev/articles/strict-csp
CSP being off is not exactly a security hole but it makes security holes much more likely. By using a strict CSP configuration you close off the possibility of a whole class of holes.
Also think about setting the
Access-Control-Allow-Originheader and enable CORS on your REST endpoints.https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Origin
Again, kind of a pain in the ass but gets rid of a bunch of potential problems before they start.
Thanks for the suggestions, those are good points.
CSP is something I plan to tighten over time, but enabling a strict policy right now would require refactoring some inline JS patterns used in the templates. It’s definitely on the roadmap as part of security hardening.
Regarding CORS, the application currently runs as a same-origin server-rendered app rather than a cross-origin API, so CORS headers aren’t enabled by default. If external clients or integrations are added in the future, I’d likely introduce a restricted allowlist for specific API routes.
Do you know about drip? It as local non-profit cross-platform open source smartphone app and my girlfriend is a happy user for years.
It is a greap project, mine is not a replacement, but a little bit different approach. It’s a self-hosted web application that you run on infrastructure you control and access from multiple devices. In Drip you can export or import data, but this step is a payment for privacy. Mine offers privacy but from a different perspective.
I use a period tracker to identify file extensions.
As a non-native speaker, I had to use LLM to get that joke)
Why not use drip or mensinator? Both FOSS.
Ovumcy isn’t trying to replace them. The idea here is to explore a self-hosted, web-based approach that focuses on running the app on infrastructure you control, with simple deployment and cross-device access through the browser.
Different tools optimize for different things. Native apps like Drip or Mensinator are great for fully local tracking, while Ovumcy explores a self-hosted model that can be accessed from multiple devices without relying on a third-party service.
this is great, especially when our government starts tracking everything we do online.
great forward thinking if that was your intention.
I see that we face it all over the world now.
Yup. If you stopped menstruating for a bit you must be pregnant. Where is the baby? Omg you murdered the baby by taking Tylenol!
I see how they differ now. Local vs self hosted. Niche use. But I get your idea especially helpful between partners I suppose. Keep it going! Let’s see where it lands in time. Personally I think the name is hard to remember and pronounce correctly which means it might not be super catchy and really take off. My opinion and in no way should deter you. Perhaps tweak the name. Overall though good job and keep going. This not a negative thing I say. Just to trying to help you refine the idea to success. Best of luck!
Appreciate that!
I was going to recommend this to someone I know but when I realised your readme.md is entirely AI-generated, I guess the whole project is probably vibe-coded. I can’t in good conscience recommend someone trust their health data to a vide-coded app because they tend to have security problems.
Also all ai-generated code is public domain so your AGPL license is kinda empty. Might as well use MIT.
Thanks for doing this, I was debating doing the same. It needs to exist.
F-Droid has Drip, Bluemoon and Periodical.
I do use AI tools while developing this project, but I also have a BSc in Computer Science. AI is a productivity tool.
Security is something I take seriously, especially since the project deals with health data. All code has test and you’re welcome to inspect the repository yourself or point out any specific security concerns if you notice them.
Regarding licensing: the AGPL license applies to the project as a whole regardless of the tools used to write parts of the code.
If you have concrete technical feedback or security issues, I’d genuinely appreciate it.
The danger being raised with the licensing is that you can’t license something if you’re not considered to be the author. There are growing examples of courts and lawmakers determining AI output to be public domain:
The US Supreme Court recently refused to reconsider Thaler v. Perlmutter, in which the plaintiff sought to overturn a lower court decision that he could not copyright an AI-generated image. This is an area of ongoing concern among the defenders of copyleft because many open source projects incorporate some level of AI assistance. It’s unclear how much AI involvement in coding would dilute the human contribution to the extent that a court would disallow a copyright claim.
https://www.theregister.com/2026/03/06/ai_kills_software_licensing/
This is an evolving, global situation and hard to know what to do right now. I think what you’ve got is fine though - you’ve made it clear your intention is to license with AGPL. It’s just that depending on the jurisdiction it might be public domain instead.
This is another reason to be clear about the use of AI in the README so your users can make an informed decision.
How does AI help with productivity? I’ve gotten so many false answers that I quit trusting it
Because it’s able to write boilerplate faster than a human. And because it’s able to perform refactorings that are not possible with IDEs or regex due to their lack of structure. Also because you can ask it to review your files and it does find bugs that would otherwise be missed at first. There’s a huge difference between vibe-coded slop and using the tools available to you effectively.
Imagine you are on the ground under your car and need a different tool. You ask for it and somebody hands it to you. That person is young and inexperienced. It is up to You to check if it’s the right tool, and if not pass it back (and in this example tell the person about the error and help them correct it).
And sure, You can always crawl out and get the tool yourself and sometimes that is the only option and in coding terms in my opinion best practice. But you can be faster with your helper. Use it appropriately and see how it affects your work. And that’s the point, your work. Don’t pass responsibility or thought off to AI.
I’m guessing you let the AI make the tests and everything, which wouldn’t give me much reassurance that any of the code is good. Sadly AI will jump through any hoops it can to get tests to pass if it can’t get the code working.
I think people who let AI run wild to create a whole app should write the tests themselves or at least only with line completion (jusdging by a quick look at the project files, I am guessing an AI did everything).
Could be food for thought?
You should add a disclaimer stating that you have used an LLM. I have done so for a tool I built with an LLM that I needed, because I don’t know jackshit about coding and I am not gonna pretend I do.
Why?
It makes sense to try to give users an idea of how robust a project is, but the exact details of the tools involved in its creation rarely add much to that. It gets a little weird with LLMs because they allow someone with no programming skill to create software that appears to work, which ought to be disclosed; “I don’t know what I’m doing and I asked a robot to make this” does indicate unreliable code. A skilled developer having an LLM fill in some extra test cases, on the other hand can only make the project more robust.
It’s not realistic to expect no AI assistance in coding in 2026.
It’s also not a stand-in for a human. There’s a huge field of gray where it’s unclear how much of it was fully vibe coded vs how much is carefully hand reviewed and/or written.
I’ve been a professional developer for decades and I’ve done both. Obviously I’ve hand coded stuff for many years. The fully vibe coded stuff is personal, to test and learn the capabilities of the tech. My professional stuff I watch much more closely, and I’m much more targeted in what I’m having the AI do.
That said, if I were gonna use this I’d actually review the code. I’m not recommending this guy’s stuff, but you can’t rule it out on the basis of ai assistance alone.
It may not be a stand in for a human, but that’s exactly how many of these vibe coded projects are. It’s not unreasonable to ask the developer to spend 30 seconds to describe how they use these tools.
You can see that I use some of metrics, like test coverage, estimates and so on to prove its validation as potentially serious project, that will grow from a pet one.
Partially agree, but I do know how to code and use it as a tool.
Charitably, it could be an AI readme and hand rolled code, but it definitely is a smell.
Yeah there are other signs too. Look at those commit messages, all vague, all perfectly capitalized. All with a nice long description with bullet points.
No one does that in a project they’re building for themselves.
No one does that in a project they’re building for themselves.
Speak for yourself, I always did that and I found it easier with LLMs nowadays.
I hate most AI shite with a passion but when it helps my colleagues write commits which are more than “add stuff”, “fix some things” I’m fine with it.
I rarely use AI to generate code, usually only when I need a starting point. It’s much easier to unfuck AI code than to stare blankly at a screen for an hour. I’d never commit code I don’t fully understand or have read to the last byte.
I hope OP is doing the same. LLMs fail at 90% of coding tasks for me but for the other 10% (mostly writing tests, readmes, boilerplate) it’s really OK for productivity.
Ethics of LLMs aside, if you use them for exactly what they’re built for – being a supercharged glorified autocomplete – they’re cool. As soon as you try to use them for something else like “autocompletion from zero” aka “creativity”, they fail spectacularly.
Judging code quality by use of LLM in a documentation and commit messages is weird.
While I write all of my code myself and I’m against vibe coding etc., there is one place where I let a LLM write for me: readmes, commit messages and Javadoc comments.
I know how to write code but at the same time I’m shit at both my native language and even more so at English. So I let Language Models write natural language texts for me and just fix them when necessary. My documentation is more clear, grammatically correct and more detailed than in any of my previous projects, and I can focus on writing code.
And I wouldn’t say “No one does that in a project they’re building for themselves”. I do that for projects that only I will ever see, and OP shared his project with others, so it’s great that he included a clear documentation
I answered earlier, that I use AI and this is just a commit skill for an agent.
I did the same thing for my partner. She didn’t migrate in the end, and google killed my play store account.
https://bloodyhealth.gitlab.io/ - is also a good option.
Some kind of data import would be nice to have according to my partner, but it might be tricky with all the different apps.
I like the naming:) and is there any chance to restore access to your account? It looks like it might have a future.
That link isn’t mine, and it is available and active.
Mine is https://github.com/cameroncros/PrivatePeriodTracker
But it’s abandoned. Your welcome to steal anything you like from it.
Well, not stealing, being inspired)
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System IP Internet Protocol LXC Linux Containers SSH Secure Shell for remote terminal access
4 acronyms in this thread; the most compressed thread commented on today has 8 acronyms.
[Thread #140 for this comm, first seen 7th Mar 2026, 01:40] [FAQ] [Full list] [Contact] [Source code]
Fuck bots.
I think this particular bot is a good one
This is super cool! I’m not afab so I can’t help test and my question may be ignorant but I’m curious why one would want this functionality to not be something native and benefits from being hosted at all?
There are some f-droid trackers that look nice (I keep seeing one there with a super pretty ui) but I’m not sure what the tradeoffs of just using a native application for something like this might be
The benefit over a purely local app is mainly cross-device access and easier syncing/backups, while still avoiding a third-party service storing your data.
Ownership of your data, privacy concerns, apps being tracked, cross-device, no f-droid for iOS.
deleted by creator





