artlu.ai
100 days. 100 features.
Just AI and an internet connection.
day 64/100 · 82 shipped · 18 to go
← all projects
day 47 · may 3, 2026 · launched

payment engine rewrite + calendar UI + light theme — TRACK v2

Major update to contractor tracker — rebuilt payment system as derived state, added monthly calendar with EOD previews, professional light/dark theme toggle

Came back to the contractor tracker after six weeks of production use and found the payment system had a critical flaw — overriding a missed day auto-triggered a payment, placing two paid badges one day apart. Root cause: storing derived payment state as cached values that every function had to keep in sync. Ripped out the entire payment layer and rebuilt it as a pure derived system. getAllCountedDays scans daily logs, vacation approvals, and status overrides. getPaymentState derives totals, cycle boundaries, and remaining days from raw payment records. Nothing is cached, nothing can drift.

Also shipped: a monthly calendar UI with status labels and 4-line EOD preview text inside each day cell, three-state pay badges (PAY DAY → PAYMENT DUE → PAID), admin status overrides with persistent contractor notifications, a professional white default theme with dark mode toggle, vacation days properly counting toward payment, weekend day activation, payment and bonus logging with 2-step confirmation, a unified links/references section, auto-expanding text areas, guest read-only view, and a home button. Still a single index.html, still $0/month.

stack

ReactHTMLCSSJavaScriptBabel standaloneFirebase Realtime DatabaseNetlify

screenshots