Option 1 — localStorage (current)
This planner stores entries in the browser's localStorage. Zero backend needed. Works offline. Data persists per device/browser.
No backendFree
localStorage.setItem('cf_entries', JSON.stringify(entries));
const entries = JSON.parse(localStorage.getItem('cf_entries') || '[]');
Option 2 — Supabase (recommended)
Free PostgreSQL backend with REST API. Add multi-user support, auth, and cross-device sync to askakshay.com tools.
Free tierPostgresAuth built-in
CREATE TABLE cashflow_entries (
id uuid DEFAULT gen_random_uuid() PRIMARY KEY,
user_id uuid REFERENCES auth.users,
type text CHECK (type IN ('income','expense')),
amount numeric(12,2),
category text,
description text,
entry_date date,
created_at timestamptz DEFAULT now()
);
ALTER TABLE cashflow_entries ENABLE ROW LEVEL SECURITY;
CREATE POLICY "own_entries" ON cashflow_entries
USING (auth.uid() = user_id);
Option 3 — Airtable / Notion API
If you already use Airtable or Notion, connect your tools directly. Good for non-technical editors who want a spreadsheet UI.
No-code friendlyVisual editor