La Palapa Resident Portal is a web app for condominium residents and building administrators. It combines a public marketing landing (building info, committee, operations gallery, contact) with a protected resident area for notices, building projects, polls, financial announcements, and linked third-party services — all backed by Supabase auth and PostgreSQL with row-level security.
Private dashboard as requested by client
What it does
Public landing
Single-page site with scroll-spy navigation across six sections:
- Quiénes somos — Building introduction and community positioning
- Acerca de — Property details and resident information
- Comité — Board/committee member profiles
- Operación — Image carousel showcasing building operations and amenities
- Galería — Photo gallery of common areas and events
- Contacto — Contact form with name, email, and message fields
Residents access the portal via Iniciar sesión; authenticated users are routed to /portal.
Resident portal
Protected dashboard with four tabbed sections:
| Tab | Content |
|---|---|
| Informes | Building notices (rich-text announcements) and a services grid of linked apps |
| Proyectos | Active building improvement projects with progress bars |
| Encuestas | Resident polls with single-vote enforcement and live result tallies |
| Financiero | Financial announcements and fee-related updates |
The portal uses an interactive DotGrid background (orange/teal proximity effect) and a responsive tab layout that collapses to a 2×2 grid on mobile.
Profile
Residents manage their profile: full name, unit number, and account settings tied to their Supabase auth identity.
Admin panel
Role-gated (admin) CMS for building managers:
- Users — Create residents, assign unit numbers, promote/demote admin roles
- Notices — Rich-text editor (React Quill) for building announcements
- Projects — CRUD for improvement projects with 0–100% progress tracking
- Polls — Create polls with multiple options, view vote counts
- Financial — Publish financial announcements to the resident portal
- Apps — Manage linked services (launch URLs, icons, SSO capability flags)
Database & security
Supabase migrations define the full schema with RLS policies:
profiles— Resident profiles auto-created on signup (name + unit number)notices— Building announcements (admin write, residents read active)apps— Third-party service launcher entriesprojects— Building improvement trackingpolls/poll_options/poll_votes— Independent poll system (decoupled from projects in a later migration)financial_announcements— Fee and budget communications
Admins are identified by a role column on profiles; all write operations check admin membership via RLS.
Tech stack
| Layer | Choice |
|---|---|
| Framework | React 18 + TypeScript + Vite |
| UI | shadcn/ui + Tailwind CSS |
| State / data | TanStack React Query |
| Auth & DB | Supabase (Auth + PostgreSQL + RLS) |
| Routing | React Router 6 with protected and admin routes |
| Rich text | React Quill (dynamic import wrapper for build safety) |
| Icons | Lucide React |
| Toasts | Sonner |
The app runs on port 8080 in development and deploys as a static Vite build to CDN hosting (Vercel, Netlify, or DigitalOcean Spaces) with VITE_SUPABASE_* environment variables.
Development process
Template scaffold
Started from the shadcn/Vite React TypeScript template with Tailwind and component library preconfigured.
Core portal & Supabase
Connected to Supabase (initially via Lovable Cloud). Built auth flow, resident profiles with unit numbers, notices system, and apps launcher. First database migration created profiles, notices, and apps tables with RLS.
Admin, projects, polls & financial
Major feature push:
- Full admin panel with user management and role assignment
- Building projects section with progress tracking
- Polls with options and vote counting
- Financial announcements section
- Additional SQL migrations for projects, polls, and financial tables
- DigitalOcean deployment build fixes (TypeScript and import resolution across three fix commits)
Main screen & lockfile cleanup
SuperArregloMainScreen — comprehensive fix to the resident portal main view layout and tab behavior. Resolved bun/npm lockfile conflicts for reliable CI/CD deployment.
Database preseed & assets
Added database preseed script for demo/staging data. Fixed building image asset loading (chapimagen) and bun compatibility.
Encoding & storage fixes
Corrected Spanish accent characters and Supabase storage blob handling for uploaded media.
Mobile polish & branding
- Viewport correction and back-button fix on the login screen
- New app icon and improved favicon
- Final icon refinement pass


Building Smartclic Demo