Familist is a modern, real-time shared list application designed for couples and families. It allows users to collaborate on shopping lists, chores, and plans instantly across devices.
- Real-time Collaboration: Updates appear instantly on all connected devices using Socket.io.
- AI-Powered Audio Input: Dictate your list items! Uses Google Gemini AI to intelligently extract items from your voice notes.
- Drag & Drop: Easily reorder items with a smooth drag-and-drop interface.
- Dark Mode: Beautifully designed UI with seamless light and dark mode switching.
- Multiple Lists: Create and manage separate lists for different needs.
- Frontend: React, Vite, TailwindCSS, Lucide Icons
- Backend: Node.js, Express, Socket.io
- AI: Google Gemini API (via
@google/genai)
- Node.js (v18 or higher)
- npm
-
Clone the repository:
git clone <repository-url> cd familist
-
Install dependencies:
npm install
-
Configure Environment: Copy
.env.exampleto.env:cp .env.example .env
Edit
.envand add your keys:GEMINI_API_KEY=your_api_key_here VITE_APP_PASSWORD=your_secure_password # Defaults to 'admin' if not set
-
Run Locally:
npm run dev
This will start both the frontend (Vite) and the backend server concurrently.
- Frontend:
http://localhost:5173 - Backend:
http://localhost:3001
- Frontend:
This project is configured for deployment on Docker.
- See DOCKER_DEPLOY.md for Docker deployment.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository.
- Create a feature branch (
git checkout -b feature/amazing-feature). - Commit your changes.
- Open a Pull Request.
This project is open source and available under the MIT License.