Changelog
All notable changes to the Microbirding/SthlmBetong web app are documented here.
The format is based on Keep a Changelog, and the versioning convention is Semantic Versioning.
0.1.5
Date: 2026-02-15
Refactor code before starting work on database cache for Artportalen, and tidy up app resources.
Miscellaneous
- Ensure HTMX resources
/hx/are only returned if the HTTP headerHX-Request: trueis set. - Make the
/design-systemresource available only in DEV. - Remove OpenAPI doc resources in PROD.
- Refactor and simplify configuration and settings to entirely use Pydantic-settings.
- Refactor utility code for handling observations and make it easier to add other sources of observations with API:s, like eBird and iNaturalist.
0.1.4
Date: 2026-01-28
Fix fav-icons for home screen shortcuts
Fixed
- Fix issue 10 and add desktop and home page shortcut icons for Linux, Mac, Windows, Android and iOS.
0.1.3
Date: 2026-01-26
Refactor more code.
- Refactor source-code directory structure for Jinja2 templates and static assets files.
0.1.2
Date: 2026-01-25
Fix minor bug and refactor source code directory structure.
Fixed
- Fix issue 11 with internal server error when observation data lacks "sex" attribute.
Miscellaneous
- Refactor source-code directory structure for Python code.
0.1.1
Date: 2026-01-03
Add tracking of selected date to see how users use that feature.
Miscellaneous
- Track selected date via Umami.
0.1.0
Date: 2025-12-26
Release first proof-of-concept app.
Fixed
- Fix bug in display of sex icons.
- Rewrite Tailwind CSS layout and tighten up layout on mobile.
- Fix better background and header colors.
- Handle Artportalens HTTP status code 429 (Too many requests). Implement a retry scheme with max 5 retries and exponential back-off. But response times for the app starts to degrade after just 20+ simultaneous users, due to the rate limiting of Artportalens API. Eventually I will need to implement a local cache for better response times.
Added
- Add short description of the app and a personal data policy on the "Om" page.
- Add map showing the geographical extent of SthlmBetong on the "Karta" page.
- Add 404 page.
- Fix responsive layout for smaller (mobile) screens.
- Show version info and changelog.
- Add dark mode.
- Add navigation to previous and next days observations.
- Include links to each observation in Artportalen.
- Show basic information on each observation.
- Add main app page that shows observations from Artportalen, for today and within the SthlmBetong geopolygon area.
Miscellaneous
- Add hint coloring for DEV-environment.
- Add analytics tracking with Umami.
- Set up reasonably good logging with log rotation and deletion.
- Set up server with Docker, Portainer and Traefik for running a public development environment with Let's encrypt certificates, on DigitalOcean.
- Write a Docker file for the web app.
- Set up application code structure and a CI/CD-pipeline with GitHub Actions.
- Decide on tech stack for web app; Python, FastAPI, HTMX, TailwindCSS and Docker. For maps I use MapLibre GL JS and OpenStreetMap.
- Implement a simple CLI-program for trying out the Artportalen API:s.
- Fix a geopolygon for the SthlmBetong area.
- Set up GitHub repository.
- Register a developer account and get API keys from Artportalen.