Development Roadmap

These notes primarily serve my personal reference, but I see no harm in sharing my thoughts. If you happen to possess a good idea for a running website feature, I encourage you to reach out and get in touch.

Alpha α

Migrate my own running activities away from my personal website.

  1. Add 301 redirects from URLs. (To avoid duplicate content).

  2. Template recfactor

    • Remove (get|set)Template data from Core, move it into Controller(s).

    • Refactor _head to not have any PHP code.

    • Refactor header to not have any PHP code..

    • Refactor sidemenus to not have any PHP code..

    • Develop and isActive/subIsActive method for both.

    • Refactor footer to not have any PHP code.

    • Verify on new badges page, then port all templates to use extends.

Private Beta β

Crucial features before allowing any external users:

  1. Add a blog for updates (ChangeLog but more verbose).

  2. Events:

    • UIX: allow managing BIB from registrations.

    • Finish 'wishlist/reminder'.

    • Content: detail pages for Events.

    • Integrate event detail page (as well as participation history) on activity detail page.

    • UIX: interface for adding Events.

  3. User Accounts:

    • Allow changing password.

    • Email/Notification settings, always off by default with explicit opt-in.

    • UIX: signup/login journey. Redirect to a welcome page with tips for clean signup, but keep context when signing up to comment/like.

    • Add invitation page, codes per user plus e-mail/share method for invitations.

  4. Use geteventSuggestions in upload/edit.

  5. Allow custom name for activities (for feed and detail). Still suggest from generateName() and especially eventRunId() in overview. Also for city names.

  6. Security: double-check all _POST _GET _FILES _REQUEST variables plus their journey toward database and output

  7. Security: ensure all GETs are idempotent (/settings/admin, /shoes/retire, notifications, activities, events, etc)

Public Beta β

  1. Showcase gallery page:

    • UIX: Media favourites functionality for inclusion in future showcase galleries.

  2. User display preferences: timezone, miles/km.

  3. Ticket&Issues tracker.

  4. User Accounts:

    • Enable the Google app for production and re-enable its button.

    • GDPR: allow deletion of account and download of account data.

    • Keep invitation methods, but remove invitation code requirement: open for all.

  5. Browser notifications through Web Push API.

  6. Badges. Finish pre-launch to give beta users something special.

  7. Finish Patreon external page and internal page with financial goals (and cost explanation), perks and a special badge.

  8. Add upload hints as notification and on profile/results for Pending/DNS.

  9. Handle DNF situations. Take into account that the activity will mismatch distance and might suggest the wrong event or none. Allow a checkbox to specify DNF (showing longer events as well), also very important to make sure distance is not adjusted.

    Insert some sort of dummy special split for the final distance or just add DNF (and DNS, I guess) to the bottom of views from a separate query based on registrations and DNF-marked activities?


  1. Legal: DPIA, when large scale.

  2. Extend the admin interface for Events to something organisers can use to promote their event (as a suggestion or self-managed).

  3. SEO/Content:

    • Enable i18n/l10n and have a focused .nl

    • Meta descriptions where possible.

    • for Event pages.

    • Add IndexNow POST after upload/curation

    • Support seo_name.ext format for Thumbnails.

    • Tools (pace calculator, pace charts).

  4. Allow uploading multiple activities at once.

  5. Finish the 'curate' page when allowing multiple activities.

  6. Support more file types, from different watches.

  7. Upgrade to Chartist 1.3.0 where possible.

Post-Launch Planned Features

Or at least imagined.

  1. Scrapers for results.


    • mylaps

    • racetimer

    • athlinks

    • everything else... some races only have PDFs

  2. Bring race goals back, but pretty unsure how and what I want...

    • Link to event or distance? Allow both? (distance is then for the first next race without explicit goals)

    • Preferably multiple goals allowed per event (a,b,c or custom amount?)

    • Allow specific times and paces, but also PR, PR3, PR10, "finish", "don't walk" and "don't finish last".

  3. Extra charts?

    • Pace distribution chart

    • Add race/type average to activity detail pages for comparison

  4. Garmin API Connect: unfortunately business only, so might require going corporate and removing all 'hobby project' branding.

  5. Mobile app. Primarily because web share action doesn't support images, although meta og:image might be sufficient. Might be useful for uploading also. Not intending to support activity recording myself, but never say never.

  6. Collage generator for sharing:

    • With attribution (small watermark/logo, maybe short URI?). Removable as a perk?

    • Use share APIs beyond navigator.share (Mastodon, Twitter, Facebook, Instagram...