Find Your Table — DOMUS connects guests who want community with hosts who open their homes for Shabbat dinners and cultural gatherings. Guests browse events, request to join, and hosts review profiles and approvals.
Live site: domusai.tech
Open source and attribution: This app relies on many libraries, frameworks, and community patterns (listed below). Anything not credited there is intended to be original work in this repository—application code, product copy, UX flows, and database design choices specific to DOMUS. When in doubt, check package.json / package-lock.json and the Acknowledgments & licenses section; preserve upstream licenses when copying new snippets (for example from shadcn/ui).
- domusai.tech — production app
- Product / planning document
- Google AI Studio
npm install
npm run devConfigure Supabase (and any other required variables) in .env using the keys your project expects — see src/integrations/supabase/ for usage. Do not commit secrets.
For Borat chat, set one server-side key (backend env), not a client VITE_ key:
OPENROUTER_API_KEY(preferred), optionallyOPENROUTER_MODEL- or
GEMINI_API_KEYas fallback
Cloudflare deploy example:
wrangler secret put OPENROUTER_API_KEYThis section separates original work in this repository from reused open-source libraries, vendor SDKs, starter patterns, and external APIs. If something is not listed under “Original contributions,” assume it comes from a dependency, a documented starter, or a widely used community pattern (see Acknowledgments & licenses).
Unless noted otherwise in file headers, the following are authored for DOMUS on top of the stack below:
- Product concept and UX: flows for landing, login/onboarding, browsing events (filters, distance, religion-aware browse), creating events, dashboards, profiles, event detail, calendar (host vs guest commitments), messages (match threads), and navigation — including copy, layout, and DOMUS-specific styling (
src/routes/,src/components/Header.tsx, shared styles). - Application logic: routing, auth wiring, Supabase usage, forms, domain types, dashboard/messages store, unread/read helpers, chat assistant orchestration, browse city suggestions server function, and religion matching rules tailored to DOMUS (
src/hooks/,src/lib/,src/contexts/,src/providers/,src/integrations/supabase/, route files undersrc/routes/). - Data and integration choices: how events, users, join requests, and messages are modeled and consumed in the app layer (including generated or hand-maintained types where applicable).
Generated files (for example TanStack Router’s src/routeTree.gen.ts) are outputs of tooling, not hand-written product code, but they are part of this repo’s build.
- Runtime frameworks and libraries listed in Acknowledgments & licenses — including React, TanStack Start / Router / Query, Vite, Tailwind CSS, Supabase JS client, form/validation libraries, charts, maps loader, calendar UI, and UI primitives.
- UI component patterns in
src/components/ui/follow the shadcn/ui approach: Radix UI primitives,class-variance-authority,tailwind-merge, andclsx— adapted and composed for this app. Individual files may match or closely follow upstream examples; DOMUS-specific changes are still “ours,” but the underlying pattern and many snippets are community-sourced. - Starter / platform configuration from Lovable’s TanStack + Vite preset (see
vite.config.tsand related packages) that wires plugins, aliases, and build behavior. - External HTTP APIs (see below): optional AI providers, geocoding, and map services — governed by those providers’ terms, not by this repo’s license alone.
If you extend DOMUS, preserve upstream license notices where required (especially when copying new blocks from shadcn/ui or other templates).
The project is built with open-source and commercial SDKs. Exact license texts live in each package under node_modules/<package-name>/ after npm install. The list below is for attribution and quick reference; it is not a legal substitute for reading those files or the projects’ official sites.
| Software | Role in DOMUS | Project / notes |
|---|---|---|
| React | UI runtime | MIT |
| TanStack Start, TanStack Router, TanStack Query | Full-stack routing, data fetching | MIT |
| Vite | Dev server and production build | MIT |
| TypeScript | Typed JavaScript | Apache-2.0 |
| Tailwind CSS & @tailwindcss/vite | Utility-first styling | MIT |
| Radix UI | Accessible component primitives | MIT |
| shadcn/ui (patterns) | Composition and styling patterns for src/components/ui/ |
MIT |
Supabase (@supabase/supabase-js) |
Backend-as-a-service client | Apache-2.0 |
| Zod | Schema validation | MIT |
| React Hook Form & @hookform/resolvers | Forms | MIT |
Lucide (lucide-react) |
Icons | ISC |
| date-fns | Date utilities | MIT |
| react-day-picker | Calendar UI (src/components/ui/calendar.tsx, calendar route) |
MIT |
| Recharts | Charts (if used in UI) | MIT |
| Embla Carousel | Carousels | MIT |
| cmdk | Command palette pattern | MIT |
| Sonner | Toasts | MIT |
| Vaul | Drawer component | MIT |
| class-variance-authority | Component variants | Apache-2.0 |
| tailwind-merge | Tailwind class merging | MIT |
| clsx | Conditional className helper |
MIT |
| @googlemaps/js-api-loader | Google Maps script loading (when used) | Apache-2.0 |
| i18n-iso-countries | Country names / codes | MIT |
| input-otp | OTP input primitive | MIT |
| react-resizable-panels | Resizable panel layout | MIT |
| tw-animate-css | CSS animation utilities | MIT |
| vite-tsconfig-paths | Vite path aliases from tsconfig |
MIT |
| @vitejs/plugin-react | React refresh in Vite | MIT |
| @cloudflare/vite-plugin | Cloudflare Workers / deploy integration (when used) | See workers-sdk license |
| ESLint & plugins | Linting | MIT |
Lovable (@lovable.dev/* in package.json) |
Vite/TanStack scaffold, cloud auth helper, related tooling | See package metadata in npm and Lovable’s terms for your use case |
These are called over HTTP from app or server code; follow each provider’s terms and attribution requirements when deploying.
| Service | Role in DOMUS |
|---|---|
| Supabase (hosted project) | Auth, Postgres, Storage, Realtime |
| OpenStreetMap Nominatim | Geocoding / distance sorting for browse (usage policy applies) |
| OpenRouter (optional) | AI chat / browse city suggestions when OPENROUTER_API_KEY is set |
| Google Gemini (optional) | AI assistant fallback when configured |
| Google Maps (optional) | Maps when API keys are configured |
Fonts: The app loads DM Sans and DM Serif Display from Google Fonts; usage is subject to Google Fonts terms.
Complete dependency tree: Run npm install and inspect package.json and package-lock.json (if present) for every direct and transitive package.
| Command | Description |
|---|---|
npm run dev |
Start Vite dev server |
npm run build |
Production build |
npm run preview |
Preview production build |
npm run lint |
Run ESLint |
npm run supabase:link |
Link Supabase CLI to project |
npm run db:push |
Push local migrations to linked Supabase |