-
65 - Add the 0.4.1 changelog entry
StableAll checks were successfulBuild and Push Docker Image / build (push) Successful in 26m47sreleased this
2026-08-16 13:28:30 +02:00 | 0 commits to main since this release[0.4.1] - 2026-08-16
Cleanup after v0.4.0, found once the release was actually cut.
Changed
- The production image is built on version tags only (#62). A release merges to
mainand is tagged at the same commit, so both triggers matched and the
multi-arch image was built twice — 36 minutes of the duplicate, and:latest
published twice from identical source. - The production image should build considerably faster (#65)
- PHP extensions come from prebuilt binaries rather than being compiled. Six
C compiles under QEMU emulation dominated the arm64 half of the build. - Composer dependencies install before the application source is copied, so a
code change no longer reinstalls them. - The build uses a registry cache, and
exifis no longer installed. linux/arm64is kept deliberately: nothing of ours deploys to it, but the
image is published for self-hosters and dropping it would exclude ARM
machines.
- PHP extensions come from prebuilt binaries rather than being compiled. Six
- The onboarding and set-value forms are one Blade component (#64). They were
near-identical, down to a 200-character class string that existed twice.
Removed
fakerphp/fakerandlaravel/sail, neither of which the project used, along
withdocker/dev/podman-sail-alias.shand thefaker_localeconfig (#63)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The production image is built on version tags only (#62). A release merges to
-
v0.4.0
Stablereleased this
2026-08-16 11:59:12 +02:00 | 6 commits to main since this release[0.4.0] - 2026-08-16
incr began as a tracker for VWCE shares and accumulated a ledger, asset prices,
milestones, an onboarding wizard and a React frontend on the way. This release
removes all of it. What remains is a counter: click the number to add one, or
open a dialog to set it directly.Changed
- The frontend is Blade and Livewire 4 instead of React and Inertia (#52)
wire:click="increment"replaces a page component, a display component, a
dialog and the fetch layer between them.- The build output went from 2264 modules and 311 kB of JavaScript to two
modules and 13 kB of CSS. No JavaScript is shipped to the browser. - npm dependencies went from 33 to 4: vite, tailwindcss and two plugins.
- The page now renders server-side with the count already in the HTML. There
is no loading spinner and no fetch after paint.
- The counter is a single integer (#50)
- It was
SUM(quantity)over anentriesledger. Per-increment history was
never displayed and is deliberately not kept. POST /incrementandPATCH /countreturn JSON with real status codes. The
endpoints they replaced returned redirects, whichfetch()followed — a
validation failure reported success.
- It was
- Onboarding is a single input for the starting value (#51)
- It was a three-screen wizard asking for a label, a unit, a date, a quantity
and a milestone. - A counter sitting at zero used to be indistinguishable from an unconfigured
app and was sent back to setup. The gate is now whether a counter exists.
- It was a three-screen wizard asking for a label, a unit, a date, a quantity
- CI runs in about 40 seconds instead of two to forty minutes (#46, #57)
- PHP is baked into a prebuilt image rather than installed on every run.
- Tests run against sqlite in memory rather than a MySQL service container,
taking about a second instead of 53. - The Composer cache path was wrong, so no packages were ever cached.
- Thirteen migrations squashed into one (#46). The chain created and dropped
nine tables to arrive at a single table, and replaying it required
MySQL-specific DDL. Existing installations are unaffected.
Removed
- Asset and price tracking: the
AssetandAssetPricemodels, their
controllers, eight routes and two tables (#48) - Milestones, the progress bar and the stats box (#49)
- The user layer. The app is single-user with no authentication, but carried a
fake user, an auth config, andusers,sessionsandpassword_reset_tokens
tables that existed only to be bypassed (#53) - 51 unreachable frontend files left by the Laravel starter kit — a layout
system, a component library and an unrouted landing page, none of which any
page imported (#47) - Stale CI: two GitHub Actions workflows targeting a branch that does not exist,
and a Jenkinsfile pointing at a registry the project left months ago (#56)
Added
- PHPStan with larastan at level 7, clean with no baseline (#55)
- Test coverage for the counter, from 4 tests covering only milestones to 17
covering increment, set-value, validation and onboarding (#54)
Fixed
- The 7-segment display font never loaded in development. Vite serves assets
itself, so the absolute/fonts/path returned 404 and the browser silently
fell back to a monospace face (#59) - The browser tab said "Laravel" and the favicon was the framework default (#59)
GET /registerreturned an error rather than 404: the route and controller
outlived the page component they rendered (#53)container_tinkerran expressions but discarded their return values, and
container_db_readinvoked a MariaDB client against a MySQL container (#58)
Note
Price tracking (#38, #35) and a dropdown fix (#17) were closed as won't-fix.
They built or repaired subsystems this release removes.Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The frontend is Blade and Livewire 4 instead of React and Inertia (#52)
-
v0.2.0 Stable
released this
2025-08-01 01:12:21 +02:00 | 75 commits to main since this releaseOnboarding
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
v0.1.15 Stable
released this
2025-07-29 21:02:54 +02:00 | 80 commits to main since this releaseDocker deployment
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads
-
Source code (ZIP)
-
released this
2025-07-13 12:57:13 +02:00 | 127 commits to main since this release● incr v0.1.0 - Initial Release
🎉 First stable release of incr - a minimalist VWCE share tracking application
✨ Features
- LED-style share counter - Large red digital display showing current share count
- Purchase tracking - Add and manage share purchases with historical data
- Milestone progress - Visual progress bar with configurable investment goals
- Financial insights - Portfolio value and withdrawal estimates (3%/4% rates)
- Responsive design - Modern React UI with Tailwind CSS and shadcn/ui components
🐳 Docker Distribution
- Production-ready Docker image available at codeberg.org/lvl0/incr:0.1.0
- One-command deployment via Docker Compose
- Multi-stage builds for optimized image size
- Built-in Nginx for static asset serving
🛠️ Technical Stack
- Laravel 12 + PHP 8.2
- React 19 + TypeScript + Inertia.js
- MySQL 8.0 database
- Tailwind CSS 4 with modern component library
📦 Quick Start
git clone https://codeberg.org/lvl0/incr.git
cd incr
docker compose -f docker/docker-compose.yml up -d📄 License
Released under GPLv3 to ensure the project remains free and open source.
🔮 What's Next
Future releases will focus on automatic price fetching, enhanced analytics, and additional financial planning features.
Downloads
-
Source code (ZIP)
2 downloads
-
Source code (TAR.GZ)
2 downloads