Open Net Worth
Open Net Worth is an open-source personal AI wealth assistant you run yourself: one ledger for your whole financial life, worked by an AI agent you control.
Split expenses among four people and manage settle-up requests
Translation pending
AI summary · website content
FinanceHTML · JavaScriptGitHub @vvvvvivekkkOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A shared expense splitter whose data lives in your own Google Sheet.
The frontend (index.html) is a static page you deploy to Vercel or Render.
It talks to the Sheet through a free Google Apps Script web app — so you
never run a server, and nothing gets lost.
Browser (index.html on Vercel/Render)
│ fetch()
▼
Google Apps Script web app ──► your Google Sheet (People / Expenses / Settings)
Why Apps Script and not "frontend straight to Sheets"? A browser-only page can't hold a Google credential safely — it would be visible to anyone who opens the page. The Apps Script is a tiny gatekeeper that Google hosts for free and that keeps the write access on its side.
function myFunction() {}, then paste the entire
Code.gs file from this folder. Click the Save icon.v1)./exec. Keep it handy.Test it: paste
YOUR_EXEC_URL?action=loadinto a browser tab. You should see JSON with Akshay, Praney, Vivek, Logesh. If you do, the backend works.
Open index.html and edit the two lines near the top of the <script>:
var API_URL = "https://script.google.com/macros/s/XXXXX/exec"; // your /exec URL
var API_TOKEN = ""; // leave "" for now
Save. That's the only change needed.
index.html).https://split-four-ways.vercel.app. Share it with the
other three.No GitHub? Install the CLI (npm i -g vercel), run vercel inside this
folder, follow the prompts.
. (a single dot).People, Expenses, Settings, and Settlements. New columns
(category, date, items on Expenses) are added automatically — an older sheet
keeps working and just gains the new columns.
After pasting a new Code.gs, you must Deploy → Manage deployments →
(edit the pencil) → Deploy to publish it to the same /exec URL. Just
saving in the editor is not enough.
Expenses = id, desc, amount, paidBy, splitAmong, createdAt;
People = id, name, order.Logins are enforced by the backend, not the webpage:
index.html, so no one can read
them from "View Source".Code.gs, edit the
id and pin at the top of resetPinManual_(), press Run once.AUTH_SECRET row in
Project Settings → Script Properties.Honest limits: reads (the load endpoint) are still open to anyone with the
/execURL — that's fine, the expense data isn't sensitive. And once you are logged in, your own browser holds your own token; that's expected. What's now impossible: reading other people's PINs, logging in as someone else, or a viewer making any change.
If you change Code.gs, you must Deploy → Manage deployments → (edit) →
Deploy to publish the new version to the same /exec URL. Just saving isn't
enough.
API_URL is wrong, or
the web app wasn't deployed to Anyone. Re-check Part 1 steps 4–6.AUTH_SECRET. Just log in again.Code.gs (Deploy → Manage deployments → Edit → Deploy). The
new login only works once the new backend is live.