A Next.js web application for the Omi wearable device by Based Hardware. This frontend provides interfaces for managing memories, apps, and interacting with the Omi ecosystem.
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: Radix UI, Shadcn/ui
- Authentication: Firebase Auth
- Database: Firebase Firestore
- Search: Algolia
- Caching: Redis
- Icons: Lucide React, Iconoir
- Animations: Framer Motion
- Node.js 18+
- npm, yarn, or pnpm package manager
- Firebase project setup
- Redis instance (for caching)
- Algolia account (for search functionality)
-
Clone the repository and navigate to the frontend directory
git clone <repository-url> cd omi/web/frontend
-
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables
cp .env.template .env.local # Edit .env.local with your actual values -
Start the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000
See .env.template for all required environment variables. Key variables include:
- Firebase Configuration: Complete Firebase project setup
- API Configuration: Backend API URL
- Redis: Database connection for caching
- Algolia: Search service configuration
- Gleap: Customer support integration
npm run dev- Start development server with Turbonpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run lint:fix- Fix ESLint issues automaticallynpm run lint:format- Format code with Prettier
# Build the image
docker build -t omi-frontend .
# Run the container
docker run -p 3000:3000 omi-frontenddocker-compose up --buildsrc/
├── app/ # Next.js App Router pages
│ ├── apps/ # Apps management
│ ├── memories/ # Memory management
│ ├── my-apps/ # User apps
│ └── components/ # Page-specific components
├── components/ # Reusable UI components
│ ├── shared/ # Shared components
│ └── ui/ # UI component library
├── constants/ # App constants and configuration
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries (Firebase, etc.)
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
└── actions/ # Server actions
- Memory Management: View and organize personal memories
- App Ecosystem: Browse and manage Omi apps
- Search: Algolia-powered search functionality
- Real-time Updates: Firebase integration for live data
- Responsive Design: Mobile-first responsive interface
- Performance: Optimized with Next.js features and caching
The frontend connects to the Omi backend API for:
- User authentication and management
- Memory data synchronization
- App marketplace functionality
- Device communication
npm run build
npm run startEnsure all environment variables are properly configured for your deployment environment. The app supports multiple deployment targets:
- Development: Local development with hot reload
- Staging: Pre-production testing environment
- Production: Live production deployment
- Follow the existing code style and conventions
- Use TypeScript for type safety
- Ensure responsive design principles
- Test thoroughly before submitting PRs
- Update documentation as needed
For issues related to the Omi frontend application, please check the documentation or contact the development team.
This project is part of the Omi ecosystem by Based Hardware.