HOA Copilot
AI assistant for HOA management · React · 2025
Built with: React, TypeScript, Vite, Tailwind, Supabase, Claude API, Outlook add-in
HOA Copilot helps the people who run homeowner associations answer residents' questions quickly and correctly. Staff pick a community, upload its governing documents, and ask in plain English. Every answer points to the document it came from and quotes the exact rule, so they can check it before they reply.
I built it at Indicode, the company I co-founded. I was the product manager and one of the developers: I wrote the requirements, set up the React app, built most of the interface, and built an Outlook add-in that brings it right into the inbox.

The problem
Every community has its own CC&Rs, rules, and architectural guidelines, often hundreds of pages spread across several PDFs. So when a homeowner asks something simple, like whether guests can park overnight, someone at the management company has to find the right document and the right section by hand.
How it works
Each community gets its own library of documents and instructions, so answers stay specific to it. Here's what happens to that parking question:
Once per community
Upload
Parking_Policy.pdf
plus the CC&Rs and other governing documents
Convert
Willow Creek library
Every PDF as searchable text
Every question
Ask
Can guests park overnight?
Answer
Claude
Reads the question with the Willow Creek library
Cite
Yes, for up to 72 consecutive hours.
“Guests may park in marked visitor spaces for up to 72 consecutive hours.”
What I built
I wore two hats on this project: product manager and front-end developer.
- Product. I wrote the spec that turned a single-page chatbot into an app built around communities, then set priorities and scoped each round of work.
- Outlook add-in. I built an add-in so staff can ask HOA Copilot about an open email and get a document-backed answer without leaving Outlook. (I don't have screenshots of this one.)
- The interface. I built most of the front end: the sidebar and navigation, a collapsible files panel, a prompt box that grows as you type, and a branded sign-in and landing page with a searchable community picker.
- Excerpt cards. I pulled the quoted rule out of each answer and gave it its own card, so the source is easy to check at a glance.
- Mobile. I made the communities list, the community page, and the sidebar work well on a phone.



On the phone




Under the hood
- React and TypeScript, built with Vite and Tailwind, with light and dark modes and a handful of color themes.
- Supabase holds the data and files, and a Supabase Edge Function uses Claude to turn PDFs into searchable text.
- Claude answers each question with the community's documents in hand, and the prompt requires it to cite and quote its source.
All screenshots use made-up communities and documents.