Skip to content

Project update

Feature freeze update 3

This is the third update on feature-freeze progress. Before I start, have you already subscribed to Endurain's newsletter, powered by Keila? If not, you can subscribe at the end of this blog post.

Yesterday, we released v0.19.0, the first release in Endurain's new release cycle, which was announced in the previous blog post. We are not sure whether an August release will happen because of the holiday period, but beta releases for the upcoming v0.20.0 will take place during August.

For v0.19.0, you can check the changelog in the release notes, but I will summarize some of it here: - We fixed an authorization issue affecting activity media uploads. Under certain conditions, an authenticated user could upload media to an activity they did not own. The issue was reported responsibly by Christian Flaßkamp. Thank you for helping make Endurain safer. Users should update to the latest release; - Endurain has a new frontend, rebuilt from scratch with the help of AI. This is where AI shines: it worked with the existing code and helped us refactor it into a better overall position. In the past, a new version could ship with broken functionality because a schema or another part of the frontend had not been updated to reflect API changes. Now, those changes go through CI, which reports a non-passing status so they no longer go unnoticed. The frontend is now fully type-checked, more modular, and provides the foundation for caching and other important future features. We also think it looks better, which is supported by some of your feedback. You will also see a visual hint in the frontend when a new version is available; - We also introduced new logos and brand guidelines. This gives Endurain a more mature and polished feel, making the product more cohesive overall; - Some new environment variables were introduced, along with validation that alerts an instance administrator when a legacy or unused environment variable is in use; - We made many backend fixes and, more importantly, defined a way forward for evolving the platform. More information is below; - We also made some less visible improvements, including new CI logic, new tests, simplified setup for new instances, and documentation fixes that improve the overall experience.

You can also check out our new website.

Feature freeze update 2

This is the second update on feature-freeze progress. Before I start, have you already subscribed to Endurain's newsletter powered by Keila? If not, you can subscribe to it at the end of this blog post.

To start let me introduce the new Endurain release cycle. We are aiming to a monthly release, targeting the 3rd Wednesday of each month, where we can skip a release if necessary. An example of this is the month of August, where typically things slow down with holidays. Yesterday was the 3rd Wednesday of the month, however we did not release an official release this month. Instead we are releasing a beta version. Possibly we will release a beta each week until next month so we can get feedback if we are breaking something on all the refactoring we are doing. These releases will almost certainly have bugs and regressions so backup before upgrading.

On the next release (and beta versions until then) you'll notice a new login screen image if using the default one. Fun fact, this was a bikepacking weekend that myself and Hugo did a few years ago and this image seemed perfect to celebrate Hugo joining the project.

We are exploring launching official Endurain gear to help us promote and support the project. We have nothing defined yet, but we would like your feedback on it. You can give your feedback in this form.

We created a new bot account pacer-bot and we will start automating some things.

Feature freeze update 1

This is the first update on feature-freeze progress. To be honest, I do not have much to share development-wise, but since I have a new toy, the new newsletter powered by Keila, I had to use it. You can subscribe to it at the end of this blog post.

The newsletter will mirror, at least for now, the blog posts, and this may change in the future.

Before jumping into the development updates, we will stop framing work as I did this... or I decided this... and use We did this... and We decided this... instead. Please welcome Hugo as a project member! 🎉 You may have already seen some commits, PRs, issues, comments, etc. done by him.

Pausing new features so Endurain can keep growing

Endurain has grown a lot since it started as a personal self-hosted fitness tracking project. It now supports multiple users, activity imports, Strava and Garmin integrations, privacy controls, goals, notifications, MFA, password reset flows, SSO support, translations, and more.

That growth is a good thing. It means the project is useful to more people and is solving real problems for self-hosted fitness tracking. But it also means the codebase has reached a point where adding more features without first strengthening the foundations would make the project harder to maintain over time.

For that reason, I am putting Endurain into a temporary feature freeze.

This does not mean the project is paused. It means the focus is shifting from adding visible features to making the existing project stronger, easier to maintain, and safer to evolve.