Right away · James's order
The short list to finish before anything else.
Tick items off as they're done. James and Shaun can add, edit, reorder and remove items, and both see the same list.
- QA everything: every page, as admin, agency owner, broker and clientJames
- Documents in and out: upload, view the PDF, send, and receive by emailJames
- Mobile site optimized: every page checked on a phoneJames
- Domain working: app.instkr.comBoth
- Decide how email works (sending and per-client inboxes)Both
- Email cost per account: confirm the estimate in section 2James
- Shaun's login, and the real Knight Insurance Services agency in AdminShaun
- Turn on Google two-step sign-in for both admin loginsBoth
- Brand the Google sign-in screen (name, logo, privacy and terms links)James
- Walk through the decision list together and mark each oneBoth
1 · Where things stand
The app works today. Email, our own address and AI are what's left.
A lot landed this week, including the admin area, agency tools for brokers and clickable dashboards. Everything below the line is what this plan covers.
Live now Working
- Sign in with Google or email and password. New people ask for access and an admin approves them.
- Policies, certificates, clients and renewals, with an Overview you can click into.
- Agency tools for brokers: add clients, invite a client's people when the client allows it, agency page with the license number.
- Admin area: see the app as any user, approve sign-ups, create a new agency, choose whether an invite sends an email.
- Help when things break: an error log, "Tell us what happened", and a feedback button on every page.
- Terms, privacy and broker disclosures from Shaun's own wording, plus an accessibility statement.
- Daily backups of all data.
Still to do Open
- Email is switched off. Invites, certificate sends and renewal reminders are built but don't go out. Section 2
- The address is a test-looking one (pages.dev), not Shaun's domain. Section 3
- Shaun's own login and the real Knight Insurance Services agency still need to be set up in Admin.
- AI reading of policies and certificates isn't built. Section 5
- From Shaun's list: Free vs Pro, upload many policies at once, photos as well as PDFs, hiding D&O and EPLI from people who shouldn't see them.
- Phone apps are built but not yet listed in the Apple and Google stores.
- One look change waits for James: the two Overview buttons.
2 · Email for each account
Send from Shaun's domain, and give every client its own inbox address.
Email has two directions. Sending is the app emailing people: invites, "a certificate was requested", renewal reminders. Receiving is people emailing documents into the app: a carrier or a subcontractor sends a certificate to the client's own address and it shows up for review. Both run on instkr.com, which Shaun already owns and which already sits on Cloudflare.
to the client's address, for example acme-7k2@in.instkr.com
One catch-all rule for every address on in.instkr.com. Free.
Saves the attachment to that client and notes who sent it. Free at our size.
The client or broker clicks Accept. Trusted senders are marked; unknown senders wait.
Sending: which email service
| Option | Monthly cost | Good | Watch out |
|---|---|---|---|
| Resend | $0 up to 3,000 emails $20 up to 50,000 | The app is already built for it. Simple setup, good delivery, clear logs of what was sent. | Free plan caps at 100 emails a day, fine until real volume. |
| Postmark | About $15 for 10,000 | Known for the best inbox delivery on account email. | No useful free plan. Code changes to switch. |
| Amazon SES | About $0.10 per 1,000 | Cheapest at large volume. | More setup, an approval step with Amazon, and plainer tools. |
Receiving: per-client addresses
| Option | Monthly cost | Good | Watch out |
|---|---|---|---|
| Cloudflare catch-all plus a small program | $0 | Unlimited addresses with no per-address setup. Lives on the same Cloudflare account as the domain. | About 2 days to build the filing step and the review tray. |
| Postmark inbound | About $15 | Ready-made, sends each email to the app. | A second paid service doing what Cloudflare does free. |
| Forward to one shared Gmail | $0 | No build. | Someone sorts every email by hand. Doesn't grow. |
Setting it up, in order
- Shaun gives James DNS access to instkr.com in Cloudflare (a member login limited to DNS, not the whole account).
- Add Resend's three records for mail.instkr.com. These prove to Gmail and Outlook that our email is real (the industry names are SPF and DKIM).
- Add a DMARC record in watch-only mode. It reports who sends as instkr.com. After 30 clean days we tighten it so fakes get rejected.
- Turn on Cloudflare Email Routing for in.instkr.com with one catch-all rule. Cloudflare adds its own records.
- James puts the sending key into the app's server settings (never in the website), then flips the email switch on.
- Test sends to James and Shaun only, check they land in the inbox, then open it to everyone.
Why subdomains
Sending from mail.instkr.com and receiving on in.instkr.com keeps app email apart from any normal mailbox on instkr.com. If the app ever has a bad sending day, Shaun's own email isn't affected, and nothing that already receives mail on the main domain has to change.
How each email looks
From "Insurance Tracker for Knight Insurance Services", sent from notices@mail.instkr.com. Replies go to the broker's own email, so clients answer a real person. Each agency gets its own name in the From line without any setup.
Who owns what
Shaun owns the domain and the Cloudflare account. The Resend account is opened under a shared company email with both of you as members, so neither person can get locked out.
Email cost per account
An active client company gets roughly 20 to 40 emails a month from the app: invites, certificate requests, renewal reminders and "a sub's certificate is expiring" notices. We use 30 here. Receiving through per-client addresses costs nothing at any of these sizes.
| Accounts | Emails a month | Resend plan | Monthly total | Per account |
|---|---|---|---|---|
| 10 companies | About 300 | Free (3,000 a month, 100 a day) | $0 | $0 |
| 50 companies | About 1,500 | Free (about 50 a day, under the cap) | $0 | $0 |
| 200 companies | About 6,000 | Pro (50,000 a month) | $20 | $0.10 |
| 1,000 companies | About 30,000 | Pro (50,000 a month) | $20 | $0.02 |
Recommendation
Use Resend on mail.instkr.com for sending ($0 to start) and Cloudflare catch-all on in.instkr.com for per-client addresses ($0). Turn sending on this week for test accounts only, then for everyone once the first emails land in the inbox. Build the receiving side this month.
OK to send app email from instkr.com through Resend, and give James DNS access?
- Owner
- Shaun
- By
- Tue Nov 4
3 · Web address and hosting
Keep the hosting. Move the address to app.instkr.com.
The website is hosted free on Cloudflare Pages (two copies today). The data, sign-in, files and server work run on Supabase, on the $25 a month plan with daily backups. Both are solid, fast and cheap, and Cloudflare is where instkr.com already lives. Moving to another host would cost time and buy nothing. What does need work is how it looks to a client: the address and the Google sign-in screen.
| Option | Monthly cost | Good | Watch out |
|---|---|---|---|
| app.instkr.com for the app, instkr.com for the landing page | $0 | About 15 minutes in Cloudflare. Looks like a real product. The old address forwards to the new one. | Google sign-in needs the new address added to its allowed list the same day. |
| Branded Google sign-in screen | $0 | Shows "Insurance Tracker", the logo and our privacy and terms links when someone signs in with Google. | Google checks the logo, which takes a few days. |
| Sign-in on our own domain (auth.instkr.com) | $10 | Google's screen says "continue to instkr.com" instead of a long Supabase address. Builds trust with new clients. | Worth it once outside clients sign in, not before. |
| Test copy (staging) | About $10 | A second copy with fake data, so changes get tried before real clients see them. | One more thing to keep in step. A free copy goes to sleep after a quiet week. |
| Stay on pages.dev | $0 | No work. | Looks like a test site to a client or a carrier. |
Recommendation
This week: move to app.instkr.com and brand the Google sign-in screen, both free. This month: add the test copy (about $10). Before the first outside client: sign-in on auth.instkr.com ($10). Retire the second Pages copy once the new address works.
Is app.instkr.com the name, and is the landing page the main instkr.com?
- Owner
- Shaun
- By
- Tue Nov 4
4 · Admin and roles
Two site admins. Everyone else gets the smallest role that does the job.
Site admin is the master key: it can see the app as anyone and create agencies. Today that is James (two emails) and Shaun. Everything else is already split into roles that only see their own agency or company.
Site admin
Admin page, see as any user, approve sign-ups, create agencies, error log.
James and Shaun onlyAgency owner
Runs one agency: name and license, invites agents, decides which agents may add clients.
Shaun for Knight Insurance Services. James only for the Sample agency.Broker (agent)
Works that agency's clients. Full or view-only per client, set by the client.
Knight staff Shaun invitesClient admin
Runs one company: its people, broker access, whether the broker may invite people.
The insured's owner or office managerClient editor or viewer
Uses that one company's policies and certificates. Viewers can't change anything.
HR, CFO, project managersAdding a third person later
| Option | Cost | Good | Watch out |
|---|---|---|---|
| Broker at Knight who may add clients | $0, works today | Right for an assistant or a new producer. Sees only Knight's clients. | Can't see sign-ups or the error log. |
| New "Support" role | About 1 day to build | Can read sign-ups and the error log to help people, but can't see as other users or create agencies. | Only worth building when that person exists. |
| Make them a site admin | $0 | Instant. | Sees every agency's clients. One stolen password exposes everyone. |
Recommendation
Keep site admin to James and Shaun, each with Google two-step sign-in turned on. Shaun is owner of the real Knight agency and leaves the Sample one. A third person starts as a broker at Knight; build the Support role only when someone needs it. The outside services (Cloudflare, Supabase, Resend, Google, Apple, GitHub) sit under shared company logins with both of you as members.
Site admin stays James and Shaun only, with two-step sign-in required?
- Owner
- Both
- By
- Tue Nov 4
5 · AI reads policies and certificates
Upload a PDF, get the fields filled in, a person checks and saves.
Anthropic's smallest current model, Claude Haiku 5.5, reads PDFs including scanned pages. It is cheap enough that cost stops mattering at our size: a certificate costs about a tenth of a cent to read. The care goes into the checking, not the price.
A policy declarations page or a certificate (ACORD 25), PDF or photo.
The AI key lives only on our server, never in the browser.
Carrier, policy number, dates, limits, insured, holder, additional insured, waiver.
Unsure fields are yellow and show the page they came from. Nothing saves by itself.
Cost to read 1,000 documents a month
Mix of 60% certificates and 40% policy declarations pages, at Anthropic's list prices.
A pilot with a few clients.
Knight's book of business.
Several agencies. Half that for bulk uploads.
Keeping it cheap
- Send the declarations pages, not the whole policy. A full 80-page policy costs about 8 cents; its first pages cost a third of a cent.
- Bulk uploads run overnight at half price (Anthropic's batch option). Good for "upload all my policies at once".
- Reuse the fixed instructions. The same field list goes with every document, and Anthropic charges a fraction for repeated parts.
- Set a monthly spending cap on the Anthropic account (start at $20) so a mistake can't run up a bill.
Privacy and accuracy guardrails
- Anthropic doesn't train on business API data by default. Only the uploaded document goes out, with no other client data.
- A fixed list of fields comes back, so the AI can't invent new ones. Dates and dollar limits are checked by plain rules (expiration after effective, limits are numbers).
- The insured name is compared with the company it's being filed under, and a mismatch is flagged.
- We keep what AI suggested next to what the person saved, to measure accuracy. James and Shaun check the first 50 real documents before clients get it.
- Issued certificates: AI can pre-fill one from the policy data, but the broker always reviews and issues it. The producer stays responsible.
- Privacy policy gets one added line about AI reading, in Shaun's wording.
Recommendation
Build AI reading with Haiku 5.5 first and Sonnet 5.5 for hard documents, running on our own server, with a person approving every save. Make it a Pro feature, with 5 free reads a month on the free plan so people see what it does. About 3 days to build. Running cost stays under $10 a month until well past 1,000 documents.
Build AI reading this month, as a Pro feature with a small free taste?
- Owner
- Both
- By
- Tue Nov 11
6 · Roadmap and running costs
Look professional this week, switch on email this month, then charge for Pro.
Each phase finishes before the next starts. Monthly costs are what we pay for services, before any revenue.
- Shaun's login, and the real Knight Insurance Services agency in Admin
- app.instkr.com live, old address forwards
- Branded Google sign-in screen
- Resend set up, test emails to James and Shaun only
- Two-step sign-in on both admin logins
Running cost $25 / month
- Email on for everyone: invites, certificate requests, renewal reminders
- Per-client inbox addresses and the review tray
- Test copy (staging)
- AI reading pilot on 50 real documents
Running cost about $35 / month
- Sign-in on auth.instkr.com
- Free vs Pro, with billing
- Upload many policies at once (overnight AI)
- Phone apps in the Apple and Google stores
- Support role, if a third person joins
Running cost about $80 / month
What could go wrong
| Risk | What we do about it |
|---|---|
| App email lands in spam | Sending subdomain, all three proof records, DMARC in watch mode first, test to our own inboxes before anyone else. |
| Email goes to a real client by surprise | Email turns on for a short list of test addresses first. Invites already ask before sending. |
| AI misreads a limit or a date | Nothing saves without a person. Plain-rule checks on dates and money. Source page shown for every field. |
| One person holds every login | Shared company logins with both of you as members, two-step sign-in, and a written list of what lives where. |
| Costs creep | Spending caps on Anthropic and Resend, and a monthly check of the bills against this plan. |
7 · All decisions in one place
Go down the list together and mark each one yes, no or change.
Every field can be changed: status, owner, date, note, and the wording itself. Add a decision at the bottom. Edits save for everyone who has this page.
| # | Decision | Recommendation | Owner | By | Status | Note |
|---|---|---|---|---|---|---|
| E1 | Send app email from instkr.com | Yes, through Resend on mail.instkr.com. Free to start. | Shaun | Nov 4 | Open | |
| E2 | Give James DNS access to instkr.com | A Cloudflare member login limited to DNS. | Shaun | Nov 4 | Open | |
| E3 | Where client replies go | To the broker's own email, not a no-reply address. | Both | Nov 4 | Open | |
| E4 | When email turns on for everyone | After test sends land in both inboxes, test list first. | James | Nov 14 | Open | |
| E5 | Per-client inbox addresses | Yes, Cloudflare catch-all on in.instkr.com, $0, review tray before anything files. | Both | Nov 11 | Open | |
| E6 | Email budget per account | $0 up to about 100 accounts, then Resend Pro at $20 a month (about 10 cents per account at 200). | James | Nov 4 | Open | |
| H1 | App address | app.instkr.com, landing page on instkr.com. | Shaun | Nov 4 | Open | |
| H2 | Brand the Google sign-in screen | Yes, free. App name, logo, privacy and terms links. | James | Nov 7 | Open | |
| H3 | Test copy (staging) | Yes, about $10 a month. | James | Nov 21 | Open | |
| H4 | Sign-in on auth.instkr.com | Yes, $10 a month, before the first outside client. | Both | Dec 15 | Open | |
| P1 | Who is site admin | James and Shaun only. | Both | Nov 4 | Open | |
| P2 | Two-step sign-in for admins | Required on both Google accounts. | Both | Nov 4 | Open | |
| P3 | Shaun's agency setup | Shaun owns Knight Insurance Services and leaves the Sample agency. | Shaun | Nov 4 | Open | |
| P4 | Who owns the outside service accounts | Shared company logins, both as members. Shaun holds the domain, James the technical side. | Both | Nov 11 | Open | |
| P5 | Support role for a third person | Build only when that person exists. Start them as a Knight broker. | James | When needed | Open | |
| A1 | Build AI reading | Yes. Haiku 5.5, Sonnet 5.5 for hard ones, a person approves every save. | Both | Nov 11 | Open | |
| A2 | AI reading on Free or Pro | Pro, with 5 free reads a month on Free. | Both | Nov 11 | Open | |
| A3 | Anthropic account and spending cap | Company account, $20 monthly cap to start. | James | Nov 11 | Open |
Assumptions
Calls made while writing this plan
James asked for this overnight without questions, so these were decided with sensible defaults. Any of them can change.
- instkr.com stays Shaun's domain on his Cloudflare account. The app uses subdomains (app, mail, in, auth), so any mailbox on the main domain keeps working.
- Resend is the sender because the app's email code was built around it. Prices are list prices checked in October 2026.
- Claude prices are Anthropic's list prices from October 2026. Document costs assume about 2,500 tokens (word pieces) per PDF page and 60% certificates, 40% declarations pages.
- Supabase stays on its $25 plan. A test copy and the custom sign-in address are each about $10 a month more.
- Dates assume work starts Wednesday October 29, 2026. Phase 3 costs include the Apple developer fee ($99 a year) and Resend's $20 plan once volume needs it.
- "Pro" and its price are not set here. The AI recommendation only says AI reading belongs in Pro.
- Two-step sign-in means Google's own 2-Step Verification on the Google accounts used to sign in. No app change needed.
- Build times are rough and assume Claude does the building with James reviewing.