Building La Palapa Resident Portal

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.

Live Demo

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:

TabContent
InformesBuilding notices (rich-text announcements) and a services grid of linked apps
ProyectosActive building improvement projects with progress bars
EncuestasResident polls with single-vote enforcement and live result tallies
FinancieroFinancial 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 entries
  • projects — Building improvement tracking
  • polls / 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

LayerChoice
FrameworkReact 18 + TypeScript + Vite
UIshadcn/ui + Tailwind CSS
State / dataTanStack React Query
Auth & DBSupabase (Auth + PostgreSQL + RLS)
RoutingReact Router 6 with protected and admin routes
Rich textReact Quill (dynamic import wrapper for build safety)
IconsLucide React
ToastsSonner

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

Blog

recent-work

Building Smartclic Demo

Modern landing page for a Mexican web development agency — React 19, Vite, Tailwind v4, GSAP scroll, 3D viewer, and bilingual ES/EN.

Read more →

Smartclic Demo

Landing page for a Mexican web agency — React 19, Tailwind v4, GSAP scroll, 3D viewer, and bilingual ES/EN.

How it was built →
border-home1