Set up your shared ledger.
Owewise is a small website hosted on Cloudflare Pages. Supabase stores your login and shared balances. The space owner manages the ledger; invited members see only balances assigned to their account.
Create your Supabase project
Start a project at supabase.com. Choose the region closest to you. The free tier is enough to get started.
Create the database tables
For a new project, open Supabase SQL Editor, create a query, paste in supabase-schema.sql from the Owewise project folder, and run it. If you already installed the earlier schema, run supabase-owner-readonly-migration.sql instead to preserve your data and switch to owner-managed access.
Connect the site
In Supabase, open Project Settings → API. Copy the Project URL and the public anon or publishable key. Paste them into public/public-config.js, then save the file:
window.OWEWISE_CONFIG = {
turnstileSiteKey: "your-public-turnstile-site-key",
supabaseUrl: "https://your-project.supabase.co",
supabaseAnonKey: "your-public-anon-key"
};The anon key and Turnstile site key are intended for browser use. Never paste a service_role key or Turnstile secret here.
Publish on Cloudflare Pages
Install Node.js if needed. From the Owewise folder, run these commands and follow the Cloudflare sign-in prompt:
npx wrangler login
npx wrangler pages project create owewise
npx wrangler pages deploy public --project-name owewiseYour site will be available at https://owewise.pages.dev unless that project name is already in use. For automatic Git deploys, create the Pages project through Cloudflare's Git integration and set the root directory to Owewise, leave the build command blank, and set the output directory to public. Choose the Git setup or the Wrangler direct upload above when creating the Pages project.
Allow sign-in links
In Supabase, open Authentication → URL Configuration. Set the Site URL to https://owewise.pages.dev. Add https://owewise.pages.dev/** and https://*.owewise.pages.dev/** to the allowed redirect URLs so the main site and Cloudflare preview deployments can receive confirmation links. Add http://localhost:8788/** for local previews. Signup links return to the domain where signup started.
Enable Turnstile CAPTCHA
In the Cloudflare dashboard, create a Turnstile widget in Managed mode. Add owewise.pages.dev as its hostname; that also allows the site's preview subdomains. Add localhost too if testing locally. Copy the widget's site key into turnstileSiteKey in public/public-config.js.
In Supabase, open Authentication → Settings → Bot and Abuse Protection, enable CAPTCHA, choose Cloudflare Turnstile, and paste the matching secret key into Supabase. Keep that secret out of the site files. Deploy the public folder again after saving the site key.
Invite your people
Open Owewise, create an account, and create a shared space. The account that creates the space is its owner. Share its invite code with your group; members create their own accounts and join with that code. Members can see only IOUs the owner assigns to their account, and cannot change balances or record payments. Add an HTTPS payment link to an IOU to give its assigned member a Pay now button; record the payment in Owewise after it arrives.