I built SomniaPlanner, a web app that maximizes your time off by aligning PTO with city-level public holidays and weekends.
What’s different: (1) you can mark block (must-work) and prefer (must-take) days as hard constraints—the optimizer must satisfy them. (2) A linear calendar view for planning fans.
Why: this was a first step toward a parental-leave planner for Spain; PTO planning lets me validate the constraint UX and solver.
How: a client-side dynamic programming algorithm enumerates feasible ranges and scores them by days-off/PTO, with a small balance term to trade off one long streak versus several shorter breaks. Runs fully in the browser (<20ms); no backend. Optimization engine written in TypeScript.
Try it: San Francisco 2026 - https://somniaplanner.com/en/san-francisco/2026 Barcelona 2026 - https://somniaplanner.com/en/barcelona/2026 Bogota 2026 - https://somniaplanner.com/en/bogota/2026 Browse all cities: https://somniaplanner.com/en
Feedback: – What drawbacks do you see from running client-side only? – Are the block/prefer interactions intuitive and explanations clear? – Any ideas for extending this app (e.g. parental-leave planner or Travel-aware planning — budget + flights/hotels)?