MIKHAIL NERI

Case study · Product I own

Internal Team Operations Platform

Kanban, team calendar, time tracking, messaging and an encrypted vault, self hosted.

Role
Sole architect and developer
Status
Live
Period
Jun 2026 to Jul 2026
Stack
CodeIgniter 4, Shield, MariaDB, Service Worker

Summary

Problem
A team needed projects, time tracking, messaging and shared secrets in one self hosted system.
System
A full internal ops suite on CodeIgniter 4 and Shield: Kanban projects and tasks, a team calendar, worker owned time tracking, messaging and broadcasts, an internal board, notifications and an encrypted vault.
Outcome
Live as a private, self hosted platform, repeatable for any team that needs one.

What needed to exist

One self hosted place for the work and the people doing it.

A team needed projects, time, messaging and shared secrets in one system it hosts itself: Kanban projects and tasks, a team calendar, worker owned time tracking, team messaging with broadcasts, an internal board with voting, notifications, and an encrypted secrets vault.

Architecture

Server rendered, with a soft navigation layer.

The suite runs on CodeIgniter 4 and Shield over MariaDB. Pages render on the server, with a soft navigation layer and a service worker on top. It connects to a third party workforce time tracker with tokens encrypted at rest, and failed cron runs alert by email and Telegram.

Decisions

Trust first: the defaults are the culture document.

Private by default

Context
Every internal tool decides what the people overseeing the work can see.
Tempting answer
Open by default, and claw visibility back feature by feature.
What I did
New surfaces start personal; sharing or team visibility is a choice a person makes.
Why
It stops visibility being argued again on every feature, and it does not quietly normalise exposure.
  1. One all seeing role

    A single owner who can see everything is the counterweight that makes privacy for everyone else credible, and the way to resolve a dispute or audit a mess.

  2. No surveillance

    No screenshots, no idle detection, no keystroke logging. People are judged by what they ship, not by hours in a seat.

  3. Oversight without control

    Overseers watch; they do not rewrite. The person doing the work owns their record: they can correct it, export it and keep it.

  4. Two honest numbers

    When one metric feels wrong it is usually two metrics wearing one hat, so the platform shows both and surfaces the overlap as data.

Result

Live and self hosted.

The platform is live as a private, self hosted system with no public URL, and it is repeatable for any team that needs one.

Building something like this?

Start a project

StoqShelf Next system