Work/Platforms

Shul software

One app runs a synagogue office, from High Holiday seating to pledges to a portal for each family. Shown here as Congregation Shore Haven, a fictional congregation.

DemoWeb

Shown as Congregation Shore Haven, a fictional congregation with sample households.

Home. Households, pledges, and the membership drive at a glance.
  1. 01Home. Households, pledges, and the membership drive at a glance.
  2. 02Families. Members, approvals, and a waitlist, with CSV import and export.
  3. 03Seating. A chart for each High Holiday service, men and women.
  4. 04Kibbudim. Honors for each service, with what each one raised.
  5. 05Pledges. Pledged, collected, and still open, by family.
  6. 06Reconcile. Match each payment to a family or a purpose.
  7. 07Budget. Projected revenue against actual, in whole dollars and cents.
  8. 08The family page. Each household sees its balance and pays online.

Sample data

Home. The family's balance, giving to date, the Hebrew date, and the next minyan.
  1. 01Home. The family's balance, giving to date, the Hebrew date, and the next minyan.
  2. 02Commitments. Pledges and the payment plan, with a button to pay online. Past balances and tax receipts sit below.
  3. 03Zmanim. The day's prayer times, with a countdown to the next minyan.
  4. 04Renewal. Five steps from family details to payment, with what is left to send.
  5. 05Simcha. A request form for the shul's hall. It says plainly that it is a request, not a booking.
  6. 06Giving history. Gifts by year, with a button to tell the office if something looks wrong.

Sample data

What it does

The office runs it from a phone. Each household holds its people, Hebrew names, and yahrzeits, and the app reads the Hebrew calendar to list the ones coming up and to time its reminders. For the High Holidays, the office builds a seating chart for each service, places families, and prints seat cards and usher lists.

Families sign in to their own portal with an emailed link or a one-time code, where they can see their giving, request an aliyah, or renew. Pledges, payments, and bank lines all land in one set of books. A public wall board shows the Hebrew date and the week's prayer times.

Hard problem we solved

Keeping one shul out of another's books

One codebase serves many congregations, and all of their rows sit in the same tables. A single query that forgets its filter would show one shul another shul's pledges. That is an easy bug to write and a hard one to forgive.

So every domain query is scoped by an org id. Every row in D1 carries one, and the Hono routes on the Worker scope each domain query by it, so there is no code path that forgets the filter. A role layer sits on top and strips money fields from admins who lack finance access, so a limited-scope admin never sees a dollar amount they are not cleared for.

Admin and portalPhone-first webWorkerHono, TypeScriptWall boardPublic, read-onlyD1Every row has org_idR2Plans and receiptsScheduled jobsHourly and dailyPayments, bankStubbed in the demo

Where it stands

A demo copy runs on one machine on made-up data, about 40 invented households, and has no live deployment.

Gallery

Sample data. Fictional names and figures.

Free-loan fund software

Runs an interest-free community loan fund, from the first application to the last payment.

Next in Platforms