Added SMART goal tracking using JSON fields for flexible, clean task and goal planning. Includes automatic resume logic for on hold items.
I just finished a solid upgrade to the task manager: SMART goals, implemented properly, without bloating the schema or bolting on a bunch of extra tables. Both Goals and Tasks now store SMART data in a single JSONB column, exposed through clean Ruby accessors. It keeps the database flexible, the forms editable, and the UI readable.This means I can add or adjust SMART fields later without migrations, keep historical data intact, and still treat each field like a first class attribute in Rails. Editing works. Display works. No copy paste nonsense. On top of that, I added hold and resume logic so tasks and goals can pause and automatically reopen based on a date. No gems. No cron spam. Just a simple daily runner and predictable behavior. This is one of those changes that doesn’t look flashy but makes the whole system feel grown up.
Posted: December 16, 2025