Entity Document CRM
An internal tool for compliance documents across 20 businesses
The problem
A group of 20 businesses needs its EIN letters, licenses, and insurance policies in one place, with renewal dates tracked. Different staff should only see the businesses they're responsible for, and it all had to run on free tiers.
What it does
20
business entities tracked
3
roles: admin, editor, viewer
6/6
v1 requirements shipped
$0
monthly hosting cost
- A dashboard of the businesses each person can access, with alerts for licenses and insurance expiring within 30 and 60 days.
- A page for each business with its EIN records, licenses, and policies, and the documents behind them.
- Upload from a phone camera, so staff can take a photo of a document and file it on the spot.
- Monthly cash sheets for each business, with an automatic email listing any that are missing.
- An audit log of every create, edit, and delete.
- An admin panel to add staff logins and decide who can see which business.
How access is kept safe
Hiding buttons in the interface isn't security. In this app, the database itself checks every request:
- Sign inStaff log in with email and password.
- RequestThe app asks for a business's records.
- Database checkPostgres Row Level Security looks up the user's role and which businesses they've been granted.
- ResultOnly permitted rows come back. Anything else is refused, whatever the app asked for.
The audit log works the same way: nobody can write to it directly. Database triggers add an entry whenever data changes, so nothing is left out.
How I worked
My part was the business side: I wrote the v1 requirements (goal, features, access model, and build order), decided how the tool should work for staff, and tested it against real needs. The code was written and run by Claude, an AI assistant, working from those requirements. Coding isn't my specialty. Since v1, I've added edit and delete, an editor role, the audit log, password reset, and cash sheets as new needs came up. Every change is automatically checked to make sure the app still builds.
Tech stack, for reference: Next.js, TypeScript, Supabase (Postgres), Vercel.