Why it exists
“Diskarte” is Filipino for resourcefulness — the everyday skill of making things work with what you have. Meal-planning apps assume a supermarket and a fixed grocery budget; most Filipino households plan around a daily budget, a wet market and prices that differ by region. Diskarte starts from the budget and works backwards.
Architecture
- Frontend — React 18 with TypeScript and Vite, React Router, Tailwind CSS with a Filipino-inspired palette, and a Context + useReducer store that also carries the
t()translation function. - Backend — Node.js with Express, a SQLite database loaded through sql.js so the whole thing deploys as one service, rate limiting, CORS and cache-control middleware.
- Data — 70 recipes across six categories, 82 ingredients with prices for three regions and seasonal availability, plus substitution rules with cost deltas.
Accessibility
Contrast ratios meet WCAG AA, modals trap focus, there is a skip-to-content link, live regions announce plan changes, a high-contrast mode is one toggle away, and every touch target is at least 44px. The shopping list has a print stylesheet because a printed list is still how many families shop.