• v0.4.1 4834e7eed9

    65 - Add the 0.4.1 changelog entry
    All checks were successful
    Build and Push Docker Image / build (push) Successful in 26m47s
    Stable

    myrmidex released 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
      main and 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 exif is no longer installed.
      • linux/arm64 is kept deliberately: nothing of ours deploys to it, but the
        image is published for self-hosters and dropping it would exclude ARM
        machines.
    • 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/faker and laravel/sail, neither of which the project used, along
      with docker/dev/podman-sail-alias.sh and the faker_locale config (#63)
    Downloads
  • v0.4.0 45e1a0a4dd

    v0.4.0
    All checks were successful
    Build and Push CI Image / images (docker/build/Dockerfile.ci, incr-ci, php8.3-3) (push) Successful in 7m53s
    Build and Push Docker Image / build (push) Successful in 32m51s
    Stable

    myrmidex released 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 an entries ledger. Per-increment history was
        never displayed and is deliberately not kept.
      • POST /increment and PATCH /count return JSON with real status codes. The
        endpoints they replaced returned redirects, which fetch() followed — a
        validation failure reported success.
    • 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.
    • 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 Asset and AssetPrice models, 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, and users, sessions and password_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 /register returned an error rather than 404: the route and controller
      outlived the page component they rendered (#53)
    • container_tinker ran expressions but discarded their return values, and
      container_db_read invoked 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
  • v0.2.0 7c19684159

    v0.2.0 Stable

    myrmidex released this 2025-08-01 01:12:21 +02:00 | 75 commits to main since this release

    Onboarding

    Downloads
  • v0.1.15 d0f54fcf9c

    v0.1.15 Stable

    myrmidex released this 2025-07-29 21:02:54 +02:00 | 80 commits to main since this release

    Docker deployment

    Downloads
  • v0.1.0 22f18f6f6b

    myrmidex 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