A self-contained community website template for any Homeowners Association. Runs on flat files (no database required), works on any standard PHP/Apache host, and gives your board complete control over content without calling a developer.
What This Site Does
This template gives your HOA a modern community website with all the core tools a neighborhood needs:
- Shared events calendar — board announcements + committee meetings in one place
- Club/group/committee management — every committee gets its own page with events, members, and announcements
- Secure resident voting — one vote per household via unique emailed codes
- Self-hosted video conferencing — private Jitsi server, no accounts or logins, one-click join for board meetings
- Public meeting broadcast — community members can listen and view board meetings live, with chat Q&A
- Private Virtual Board Room — hidden discussion forum for board members with topics, replies, and document sharing
- Activity audit log — every authenticated action tracked by who, when, and what across the entire site
- Dues & special assessment invoicing — Stripe-powered recurring dues and one-time assessments with automatic reminders and payment tracking
- Form submission & review system — homeowners upload completed forms (painting, shed, fencing, etc.), assigned committees review and email responses
- Violation notice generator — three-tier escalating letters (friendly → firm → formal), auto-detects which tier based on prior history, per-address tracking
- Neighborhood mail list — with owner/renter distinction for voting eligibility
- Garage sale postings — self-serve, address-verified, with photos and PIN-protected deletion
- Community poll — quick one-question pulse checks
- Pond/landscape info pages — for common grounds information
- Lawn care tips — with embedded YouTube videos
- FAQ — resident-submitted, board-approved
- CCRs, Bylaws & HOA Forms — document library
- Local events — things happening nearby the neighborhood
- Random quote widget — friendly touch on every page
- Wildlife flyover — geese, ducks, or swans animate across the screen once per visit
How The Site Is Organized
Public Pages (everyone can view)
| Page |
File |
What It Does |
| Home |
••• |
Welcome message, board-editable content blocks |
| HOA Events |
••• |
Board events (featured with images) + committee events (compact list), merged chronologically |
| HOA News |
••• |
Board announcements and news items |
| Garage Sale |
••• |
Self-serve resident postings with photos, dates, knock-time, PIN protection |
| Our Grounds → Ponds |
••• |
Common grounds information with sections and images |
| Our Grounds → Lawn Care |
••• |
Lawn care tips with content blocks and embedded videos |
| Local Events |
••• |
Things happening nearby the neighborhood |
| Community → Poll |
••• |
Quick community pulse polls |
| Community → Committees |
••• |
Browse all committees with cards showing chair, member count, next event |
| Individual Committee |
the page?id=xxx |
Events, members, announcements, chair-editable |
| Committee Calendar |
••• |
All committee events merged, color-coded, grouped by month |
| Vote |
••• |
Enter unique code from email, cast secure vote |
| FYI → FAQ |
••• |
Frequently asked questions organized by section |
| FYI → CCRs, Bylaws, etc. |
••• |
Governing documents and downloadable HOA forms |
| FYI → Mail List |
••• |
Subscribe/unsubscribe with owner/renter + voting opt-in |
| FYI → BOD Meeting |
••• |
Public listen-only meeting viewer (shows "no meeting" when inactive) |
| FYI → Contact |
••• |
Contact info for the board and management |
Board-Only Pages
| Page |
File |
Who Uses It |
| Board Meeting Room |
••• |
Self-hosted Jitsi video meeting — password-protected, with public viewing toggle |
| Public Meeting Viewer |
••• |
Listen-only embed for community members during public board meetings |
| Virtual Board Room |
••• |
Private discussion forum for board members — topics, replies, file uploads |
| BOD Admin Panel |
••• |
Admin-only: manage all posts, passwords with assignments, activity log |
| Treasurer |
••• |
Stripe Dashboard access, invoice CSV export, dues and assessment instructions |
| Form Submission |
••• |
Homeowners upload completed architectural/permit forms for board or committee review |
| Form Review |
••• |
Board or assigned committee reviews submissions — approve, deny, email response |
| Violation Notice Generator |
••• |
Generate, print, and track violation notices with auto-tier escalation |
| Violation Letter Templates |
••• |
Printable 3-tier letter templates by violation type, with old templates for reference |
Admin Config Pages (CONFIG pages — board password required)
These are how the board edits the site. Each one is accessed directly by URL and requires the board password.
| Config Page |
What It Manages |
••• |
Nav menu labels, site logo, header banner image |
••• |
Home page content blocks |
••• |
Contact page information |
••• |
Site footer content |
••• |
Ponds page sections + page title |
••• |
Lawn care page sections + page title |
••• |
Random quotes shown in corner widget |
Board passwords (•••) |
••• |
View/manage the HOA mail list |
••• |
Create committees, manage club/group/club/group/committee passwords |
••• |
Create votes, send codes, view results |
••• |
Edit the list of valid neighborhood streets |
Committees System
How It Works
The board creates a committee and assigns a unique password to its chair. The chair uses that password on their committee's public page to add events, manage members, and post announcements. Each club/group/committee password only works on its own page — the knitting group can't edit the card players' events.
What Each Committee Page Has
- Info block — description + chair name and email
- Pinned announcement — short message at top (chair editable)
- Member list — name, role (Chair, Co-Chair, Member, etc.), phone, email
- Upcoming events — with date, time, location, description, and optional image
- Past events — collapsed by default
- Edit section at bottom — password-protected, lets chair:
- Add one-time or recurring events (weekly / every 2 weeks / monthly)
- Delete past events
- Add/remove members
- Update the pinned announcement
- Upload an image per event (500KB max)
What The Board Admin Sees (the admin page)
- Table of all committees with:
- Chair name and email
- Member count + event count
- Last updated date (flags dormant committees)
- Club/group/club/group/committee password (visible, editable)
- Add new committee (generates password)
- Edit committee info (name, description, chair)
- Change any committee's password
- Delete committee (removes everything tied to it)
Use Cases For Committees
Real examples: Knitting Circle, Card Players Club, Pond Cleanup Crew, Book Club, Walking Group, Garden Club, Architectural Review (ARC), Social Events Committee, Landscaping Committee, Welcome Committee, Newsletter Committee, Neighborhood Watch, Holiday Decorations, Trash Pickup Volunteers.
Architectural Review Committee (ARC)
The ARC is a special committee that reviews homeowner form submissions (painting, sheds, fencing, concrete, flagpoles, solar panels, etc.). Unlike social committees, the ARC has form submissions routed to it automatically:
- Homeowner submits a form at
••• (e.g. painting request)
- The ARC chair receives an email notification
- Chair logs into
••• with their club/group/committee password
- Reviews the submission, approves or denies, emails the homeowner the decision
The ARC can also hold meetings (like any committee), post announcements, and manage members on their committee page. The form type → committee mapping is configured by the admin at ••• → Form Assignments tab.
Events Calendar (Merged View)
The "HOA Events" page shows everything in one chronological list:
- Board events display as full cards with the uploaded image, date badge, title, and description — they're the featured, attention-grabbing items
- Committee events display as compact single-line rows with a color badge linking to that committee's page — secondary, informational
This hierarchy keeps important HOA events visually dominant while still showing residents everything happening in the community.
Board members edit from the bottom of ••• (edit toggle, password protected). Committee events are read-only here — chairs edit from their own committee page.
Secure Voting System
Why It's Needed
HOAs often need to vote on things: approve a budget, elect board members, decide on community projects, change bylaws. Paper ballots are slow; online voting is fast but fraud is a risk. This system solves both.
How It Works
- Board creates a vote via
••• — question, 2-6 options, deadline (all dropdowns, easy for seniors)
- Board clicks "Send Codes" — the system:
- Groups the mail list by household street address
- Generates one unique code (V-XXXXXXXX) per household
- Emails the code to every voting-eligible email at that address
- Residents receive email, go to
•••, enter the code, pick an option, submit
- Code burns on use — any second attempt from that household fails
- First person at the address to vote wins — other people in the house can't change it
Who Can Vote
- Homeowners only — renters are explicitly blocked
- Must opt in — mail list signup has a voting checkbox (only visible to owners)
- Owner vs renter is set at signup time
Results
- Board can view results any time through
•••
- Public sees results at
••• after voting OR after deadline passes OR when board closes the vote
- Results show vote counts, percentages, color-coded winner, and participation rate (e.g. "17 of 24 households voted")
Garage Sale Page
Residents self-post — no board involvement needed. Safety is enforced by street address validation.
How It Works
- Anyone enters: house number + direction (N/S/E/W) + street name + suffix (Way, Dri, Str, etc.) — all validated against the neighborhood street list
- Multiple photos (up to 4) with upload
- Start and end dates (dropdowns — month/day/year)
- "Knock on my door between" time window (dropdowns — hour/minute/AM/PM)
- Description with bad-words filter
- Creates a 6-digit PIN — required to delete their own post later
- Auto-expires 15 days from posting if no end date given
Anchor Link
The page heading has a green "⬇ Post a Garage Sale" button right next to the title. One click jumps to the posting form at the bottom — no scrolling through existing listings.
Address Validation (Important!)
Three layers:
- House number — must be 1-5 digits at the start
- Direction — N, S, E, or W (North/South/East/West also accepted)
- Street name + suffix first letter — the street must be in the streets config with matching suffix first letter
Example: If the config has N Baxter Way, these all pass:
1234 N Baxter Way
1234 N Baxter Wy (typo)
1234 North Baxter Wya (also typo)
1234 n baxter W (lowercase, any W-starting suffix)
These all fail:
1234 N Baxter (no suffix)
1234 N Baxter St (wrong suffix — street config says Way not Str)
1234 W Baxter Way (wrong direction)
1234 Baxter Way (missing direction)
the admin page
The board manages the valid street list through this admin page. Add a street with:
- Direction dropdown (N/S/E/W)
- Street name input (just the name — no prefix, no suffix)
- Suffix dropdown: Way, Dri, Str, Ave, Lan, Crt, Cir, Blv, Rd, Pl
If a street has multiple suffix versions (e.g. Stockhelm Way AND Stockhelm Ave), add it twice.
Mail List
More than just an email list — it's the foundation of the voting system.
Signup requires:
- Full name
- Email address
- Verified street address (must match the neighborhood street list)
- Owner or Renter radio button
- Voting opt-in checkbox (only shown for owners)
The signup form automatically hides the voting checkbox if "Renter" is selected — keeps it obvious that only homeowners vote.
What The Mail List Powers
- HOA announcements — board emails (future feature)
- Voting codes — one unique code per household address
- Committee emails — chairs can email their members
Removal
Self-serve — enter email + street address to remove. No password needed since only the person who owns that email gets the confirmation.
Board Video Meetings
The HOA runs its own private video conferencing server at meet.your-hoa.com using self-hosted Jitsi Meet. No Google, GitHub, or Apple sign-in required — ever. Anyone with the link just types their name and joins.
Why Self-Hosted Jitsi
- No login wall — the public Jitsi servers (meet.jit.si) now require a Google/GitHub/Apple sign-in to start a room, which is too complex for older board members. Self-hosted eliminates this completely.
- No accounts needed — click a link, type your name, join. That's it.
- Free, no time limits, works in any browser on any device
- Resolution capped at 180p to minimize bandwidth — audio quality is excellent, video is small face thumbnails
- Full control over room settings, privacy, and features
How Board Meetings Work
- Board member goes to
••• and enters the board password
- Clicks the big green "Join Meeting Now" button — opens the Jitsi room in a new tab
- Browser asks to allow microphone — click Allow
- Type your name and click "Join meeting" — you're in
- The room uses an obscure URL that only appears behind the password gate — nobody can guess it
Public Meeting Broadcast (2-4x per year)
For quarterly or annual meetings where the community can listen in:
- Board member clicks "Turn ON Public Viewing" on the board meeting page
- This enables
••• — a public page that embeds the meeting so community members can listen and view
- Community members go to
••• (linked from the FYI → BOD Meeting nav item)
- Listeners can hear everything but cannot speak, turn on camera, or control the meeting
- Listeners get a chat button — they can type questions for Q&A at the end of the meeting
- Board sees chat messages in their Jitsi window and answers verbally
- When the public portion ends, board member clicks "Turn OFF Public Viewing"
- The public viewing page automatically reverts to "No public meeting in progress"
What Public Viewers Can and Cannot Do
| Can Do | Cannot Do |
| Hear all audio from board members | Speak or unmute microphone |
| See video if board members enable cameras | Turn on their own camera |
| Send chat messages (Q&A) | Share screen, start recording, or kick anyone |
| Page auto-detects when meeting starts/ends | Access any meeting controls or toolbar |
Security Layers
- Password-protected page — only board members see the meeting link
- Obscure room name — not guessable (e.g.
Preserve-BOD-7x9k2m)
- Public toggle — community can only listen when a board member explicitly enables it
- Listen-only embed — public viewers join via the Jitsi IFrame API with all controls disabled
Server Details
- Server:
meet.your-hoa.com (dedicated server)
- Resolution: 180p max (hard-capped server-side) — optimized for audio, not HD video
- Bandwidth: ~40 Kbps per person for audio-only; 5-person meeting uses negligible bandwidth
- SSL: Let's Encrypt, auto-renewing
- No login, no accounts, no app downloads required
Virtual Board Room
A private discussion forum exclusively for board members at •••. Not linked from the public site — URL must be known.
Features
- Discussion topics — create, reply, archive. Newest replies appear at the top.
- File uploads — attach documents to any discussion (active or archived). Up to 25MB per file.
- File tagging — optional tag (e.g. "Minutes", "Budget", "Legal") shown as a badge on each file
- Document sidebar — uploaded files appear as clickable thumbnails on the right side of each discussion, sticky as you scroll. Images show actual thumbnails; PDFs, Word docs, and spreadsheets show file-type icons.
- Self-delete (24 hours) — members can delete their own posts and uploaded files within 24 hours using their password. After 24 hours, only the admin can delete.
- Archive — completed discussions can be archived. Archived topics are read-only for replies but still accept file uploads.
- Board Meeting link — quick link to
••• in the workspace header
Login
Members enter their name and board password. The name is attached to all their posts — no anonymous content. Each member's unique password from ••• links their actions to their identity.
BOD Admin Panel
Accessible at ••• with a separate admin password (•••). Three tabs:
- Topics & Posts — view and delete any post in any topic, delete uploaded files
- Passwords — see all board passwords with name assignments, add/remove passwords, update who is assigned to each one
- Activity Log — chronological record of every authenticated action across the entire site (see Audit Log below)
Homeowners download forms (painting checklists, shed requests, flagpole guidelines, etc.) from the CCRs page, fill them out, then upload them via ••• for board or committee review.
Homeowner Submission Flow
- Homeowner downloads the appropriate form from
•••
- Fills it out and goes to
••• (linked prominently on the CCRs page)
- Enters their name, email, address, selects the form type (Painting, Flagpole, Shed, Concrete, Fencing, Solar, Landscaping, Architectural, Other)
- Uploads up to 4 files (PDF, JPG, PNG — 10MB max each)
- Receives a reference number (e.g. FR-A3B2C1D4) immediately
- The assigned committee chair receives an email notification with the submission details
Committee Review Flow
- Committee chair receives email notification of new submission
- Logs into
••• with their club/group/committee password
- Only sees submissions assigned to their committee (e.g. ARC sees painting, sheds, fencing — not other types)
- Reviews the attached files, sets status (New → Under Review → Approved → Denied)
- Types comments and clicks "Email Response" — homeowner receives the decision by email
- When done, clicks "Archive" to move it out of the active view
The board admin configures which committee handles which form types via the ••• → Form Assignments tab (requires the admin password). This maps form types to committees (e.g. all architectural form types → ARC). Unassigned types are only visible to board members. This is a one-time setup. The mapping is stored in •••.
- Board password — sees all submissions across all types, can assign committees
- Club/group/club/group/committee password — sees only submissions mapped to their committee
- No password needed for homeowners to submit
Submissions older than 24 months are flagged for archiving. The board can archive submissions at any time. Archived submissions are hidden from the active view but remain in the data file.
Violation Notice System
A three-tier escalating notice system that replaces the old one-size-fits-all violation letters. Accessible at •••.
Three-Tier Approach
| Tier | Name | Tone | Deadline | Fine Mentioned? |
| 1 | Friendly Reminder | Neighborly, offers help | 30 days | No |
| 2 | Follow-Up Notice | Firm but fair, quotes CCR briefly | 14 days | Warning only |
| 3 | Final Notice | Formal/legal, full CCR quote | 10 days | Yes — specific consequences |
Violation Types (Pre-Written)
- Landscaping / Yard Maintenance (CCR 6.6)
- Trailer, RV, or Boat in Driveway (CCR 6.11)
- Trailer, RV, or Boat on Street (CCR 6.11)
- Vehicle Needing Repair — Flat Tire, Inoperable (CCR 6.11)
- Vehicle Blocking Sidewalk (CCR 6.11)
Each violation type has all three tiers pre-written with the correct CCR text already included. The only fields to fill in are name, address, and dates.
Automatic Tier Detection
When generating a notice, the system checks the history: "Has this address received a notice for this violation type before?" If yes, it automatically selects the next tier. The operator can override if needed.
History & Tracking
Every notice sent is logged with: date, homeowner name, address, violation type, and tier. The History tab organizes notices by street address with a search bar, so the management company can instantly see a property's full violation history and know which tier to send next.
Management Company Config
The management company's name, address, email, and signature line are stored in •••. Every generated letter pulls from this config. When the HOA switches management companies, update one form at ••• → Management Co. tab — all letters update automatically.
Printable Letter Templates
Static printable versions of all letters are also available at ••• with the old "horrible" templates linked for reference. These are useful as a reference but the generator system is the recommended workflow.
Treasurer — Dues & Invoicing
••• — a password-protected page for board members that provides access to the HOA's Stripe account for managing dues collection and special assessments.
How Recurring Dues Work
- Treasurer exports the mail list as a Stripe-ready CSV from the treasurer page (owners only, renters excluded)
- Uploads the CSV to Stripe Dashboard → Invoicing → Import
- Sets a recurring schedule (monthly, quarterly, or annual)
- Stripe automatically emails each homeowner an invoice with a secure payment link each cycle
- Homeowners pay via ACH bank transfer (0.8%, capped at $5) or credit card (2.9% + 30¢)
- Money deposits directly to the HOA bank account
After the initial CSV import, Stripe runs on autopilot. The treasurer only logs in when a home sells, dues change (usually annually), or someone's email changes.
Special Assessments
One-time charges (gate repair, signage, legal fees, etc.) are handled as separate invoices — same CSV export process, but sent as a one-time invoice without a recurring schedule. Regular dues continue unaffected.
Automatic Payment Reminders
Stripe sends up to 3 automatic reminder emails to homeowners who haven't paid (e.g. 3 days before due, 7 days after, 30 days after). The dashboard shows all unpaid invoices at a glance so the treasurer can see who is delinquent without chasing anyone manually.
Security
- No financial data is stored on the HOA website — ever
- The treasurer page only provides a link to Stripe and a CSV export tool
- Stripe requires its own secure login (Google sign-in or two-factor authentication)
- Board passwords on the site do NOT grant access to Stripe or financial accounts
Audit / Activity Log
Every password-authenticated action on the site is logged to •••. The log records:
- When — date and time of the action
- Who — the member name (looked up from password assignments)
- Where — which page the action occurred on
- What — description of the action (e.g. "Added event: Spring Cleanup", "Deleted 3 post(s)")
This covers all 22+ pages that require a password: calendar events, HOA news, garage sales, FAQ entries, config changes, password management, Virtual Board Room activity, board meeting access, public viewing toggles, file uploads, and more.
Why This Matters
Each board member has a unique password. If someone deletes another member's post, the log shows exactly who did it and when. This prevents "I never saw that" disputes and provides accountability without requiring user accounts.
Viewing the Log
The activity log is viewable in the BOD Admin Panel (•••) under the "Activity Log" tab. Newest entries first, paginated 50 per page.
Ponds & Landscape + Lawn Care Pages
These are board-editable content pages for common grounds information.
Ponds Page
Use for things like:
- Rules about fishing in community ponds
- Wildlife information
- Swim/boat restrictions
- Water source information
- Common area rules
- Landscape maintenance info
Lawn Care Page
Use for things like:
- Recommended lawn care schedule
- Fertilization advice
- Mowing height tips
- Weed and pest control
- Watering guidance (especially useful in drought-prone areas)
- Embedded YouTube videos demonstrating techniques
Each section on these pages supports:
- Title
- Rich HTML content (with links)
- Optional image (ponds) or YouTube embed (lawn care)
- Alert-box styling for warnings and critical info (lawn care only)
Page Title Editing
Both config pages (PONDS-CONFIG, LAWN-CONFIG) have a "Page Title & Menu Label" section at the top — change the title there and it updates both the nav menu and the page heading in one step.
FAQ Page
Residents submit questions → board reviews and approves → approved answers appear publicly. Organized by section. Bad-words filter applies. Good for questions like:
- "What days is trash pickup?"
- "How do I report a streetlight outage?"
- "What are the pool hours?"
- "How do I request architectural approval?"
Document library page. Board uploads PDFs and links. Good for:
- CCRs (Covenants, Conditions, Restrictions)
- HOA Bylaws
- Architectural Review Forms
- Landscape Change Request Forms
- Rental Registration Forms
- Complaint Forms
- Meeting Minutes Archives
Quick single-question pulse checks. Different from the full voting system — this is for informal questions like "What time should we host the summer BBQ?" The real voting system is for legally binding decisions.
Home Page
Welcome area for the community. Board adds content blocks via •••. Good for:
- Welcome message and community introduction
- Latest HOA announcements summary
- Upcoming major events
- Key contact info
- Community statistics or highlights
- Pictures of the neighborhood
Navigation Dropdowns
The nav menu uses dropdowns to keep the header clean:
- Community → Garage Sale, Community Poll, Committees
- Our Grounds → Ponds, Lawn Care
- FYI → FAQ, CCRs/Bylaws, HOA Mail List, BOD Meeting, Contact
Hover to open on desktop, tap to toggle on mobile. Active pages automatically highlight their dropdown parent.
Security & Privacy
- All admin pages are password protected — passwords stored in
••• (text file, one password per line, board controls)
- Each board member has a unique password — mapped to their name via
•••, enabling full audit trails
- Activity audit log — every authenticated action logged with who, when, where, and what (viewable in BOD Admin Panel)
- Committee pages have per-club/group/club/group/committee passwords — stored in
•••, board controls via the admin page
- No public signups — the mail list is the only thing residents can self-register for
- Garage sales use PIN — 6-digit PIN set at posting, required to delete that post
- Bad words filter — runs on all user-generated content (garage sale descriptions, FAQ submissions, committee posts)
- Voting fraud prevention — one code per household, burned on use, codes expire with deadline
- Street validation — only verified neighborhood addresses can post or sign up
- Self-hosted video conferencing — board meetings run on a private Jitsi server, no third-party accounts required
- Upload directory hardening — PHP execution blocked in all upload directories via .htaccess rules
- Form submissions — homeowners submit without passwords, but review requires board or club/group/committee password. Committee members only see their assigned types.
- Violation notice tracking — every notice generated is logged with who sent it, preventing disputes about what was communicated
Multi-Level Access Control
The site uses a four-tier password system to control who can access what:
- Admin — one master password for the site administrator. Controls board password management, form assignments, and the activity log.
- Board Members — each board member gets a unique password tied to their name. Full access to all site features including the Virtual Board Room.
- Web Helpers — trusted non-board volunteers who help manage clubs/groups/committees and review form submissions. Cannot access board-only areas.
- Club/Group/Committee — each group gets its own password for their chair to manage events, members, and announcements on their page.
Every action is logged with who did it and when — full accountability without user accounts.
Web Helpers
Web helpers are trusted people (not board members) who assist with day-to-day site management. They are given a helper password and can:
- Create, edit, and delete committees via
•••
- Manage club/group/club/group/committee passwords
- Review and respond to homeowner form submissions via
•••
- Help ARC committee members with submission issues
They cannot access the Virtual Board Room, board discussions, treasurer tools, violation notices, board meeting controls, or any board-only CONFIG pages. They never see the Virtual Board Room navigation header.
Helper passwords are managed by the admin at ••• → Helper Passwords tab, with name assignments for accountability.