- Add Stripe Checkout session and Customer Portal API calls and mutation hooks
- Add success/cancel redirect pages for Stripe Checkout flow
- Update subscription status component with upgrade buttons, manage subscription, and trial badge
- Align subscription types (limits, feature benefits, upgrade triggers) with current API response shape
- Update demo provider data to match new type contracts
- Rename "Premium" tier references to "Pro" throughout
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set person_profiles: "never" so PostHog never creates user profiles.
Remove identifyUser calls from login and fetchUser flows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Next.js NEXT_PUBLIC_* variables are baked in at build time, not
runtime. Without ARG declarations in the Dockerfile, Dokku's
--build-arg flags have no effect and PostHog/API URLs are undefined
in the client bundle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
React Query cache was shared between /app (real API) and /demo/app
(mock data) because query keys were identical. After login→logout→demo,
stale real data served from cache.
Two fixes:
1. Clear React Query cache on logout (auth store)
2. Namespace all query keys with basePath prefix so /app and /demo/app
caches are completely isolated
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Consolidate from 11 themes to one cohesive Warm Sage palette across
landing page, auth layout, dashboard components, kanban columns,
demo banner, theme picker, and CSS variables.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Layout & Navigation:
- Tighten max-width to 6xl, adjust padding, add warm gradient overlay
- Add icons to desktop nav links, responsive header height, stronger blur
- Active pill highlight on mobile nav icons
- Fix middleware blocking static assets (logo.png) behind auth
Dashboard restructure:
- Merge quick actions into hero area as inline pills
- Rename "Coming Up" to "Needs Attention", exclude completed tasks
- Promote task cards to #2 with richer card design (2-col grid, colored date badges)
- Drop "Your Homes" to #3 with accent bars and larger icons
Card redesigns:
- Residence cards: accent bar, home icon, warm hover shadow
- Contractor cards: letter avatar, text contact links, separator
- Document cards: type-colored accent bar, restructured footer
- Task cards: warm hover shadow
- Empty states: larger icon container, gradient bg, rounded CTA
Residence detail page:
- Add full kanban board with drag-and-drop for task management
- Add "Add Task" button pre-filling residence on task form
- Replace broken Users stat with Overdue/Completed stats
- Compute task summary from kanban columns (always accurate)
Data accuracy fixes:
- Fix getMyResidences() to fetch kanban data in parallel and compute
real per-residence task counts instead of hardcoding zeros
- Task form accepts defaultResidenceId prop for pre-filling
- New task page reads residence_id from URL, redirects back after create
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add demo mode with mock data provider, Docker deployment, Playwright
tests, PostHog analytics, error boundaries, and SEO metadata. Fix
residences API response unwrapping, kanban drag-and-drop with optimistic
updates, trailing slash proxy redirects, and column name mismatches with
Go API.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>