Audit finding (perf). The Apps list (routes/admin/specs.rs:297) and the public landing (routes/landing.rs:201) call list_all/effective_specs, which SELECT config_json and JSON-parse every spec per render, just to read is_featured() and a few fields. config_json is the largest column.
Fix: persist featured (like state/kind) as its own column and select it in the lean query; short-TTL cache for effective_specs on the landing.
Audit finding (perf). The Apps list (routes/admin/specs.rs:297) and the public landing (routes/landing.rs:201) call
list_all/effective_specs, whichSELECT config_jsonand JSON-parse every spec per render, just to readis_featured()and a few fields.config_jsonis the largest column.Fix: persist
featured(likestate/kind) as its own column and select it in the lean query; short-TTL cache foreffective_specson the landing.