Community website
California Reflections HOA
The website for the 174-home community where I serve as board president. I moved it off a paid CMS to Markdown and added email and push updates for residents.
- Year
- 2023–present
- Role
- Board president and developer
- Status
- Live

At a glance
- 174Homes served
- $0Annual CMS cost
- 2023Since
Overview
As a resident and board president of the California Reflections HOA, I built and maintain the community website for its 174 homes. I moved the site from Contentful to a Markdown-based system, which removed the CMS bill and made posting simpler for the board. The site is the community's hub for news, documents, dues, and resident updates by email and push notification.
Result
No CMS bill
The move to Markdown removed about $300 a year in Contentful fees.
Updates reach residents
New posts can go out by email and push notification.
Simple for the board
Posts are plain files, categorized automatically.
Self-hosted
Runs on the same infrastructure as my other live apps.
Contentful to Markdown migration
The biggest change was replacing a hosted CMS with plain files:
- Migration scriptsConverted the existing Contentful entries to Markdown automatically.
- FrontmatterDates, categories, and authors live in each post's frontmatter.
- Automatic categoriesPosts are categorized from their content, so the board does not tag by hand.
- No CMS billRemoved about $300 a year in Contentful fees.
Email and push updates
Residents can choose how they hear about new posts:
- Email subscriptionsResidents subscribe to community announcements, sent through Resend.
- Automatic notificationsNew posts can go out by email and push notification.
- Unsubscribe handlingEvery email carries an unsubscribe path, and the board can manage subscribers.
- Push notificationsBrowser push through OneSignal for residents who prefer it.
Technical stack
A small stack I can maintain as a volunteer:
- Framework
- Next.js 16 with App Router
- Language
- TypeScript
- Content
- Markdown with gray-matter frontmatter
- UI
- MUI 9
- Database
- PostgreSQL with Prisma 7
- Notifications
- Resend for email, OneSignal for push
- Hosting
- Self-hosted on Hetzner via Coolify
Lessons
- CMS migrationMoved content from a hosted CMS to local Markdown while keeping the existing editorial workflow usable.
- Automatic categorizationCategorizing posts from their content removed a manual step without making the board learn a new tool.
- Volunteer budgets change the mathFor a community association, the total cost of ownership matters more than features nobody will maintain.
- Notifications need restraintResidents want to hear about what affects them, so updates stay infrequent and every channel is easy to leave.
More work
Let's talk.
Need a website that does useful work? I build maintainable sites that pair a clear public experience with the publishing, communication, or lead workflows behind it.


