IdeaBlob is a modern web application that combines note-taking with AI-powered features to help you organize your thoughts, generate ideas, and manage your notes efficiently.
- AI-Powered Chat: Interact with Google Gemini AI to brainstorm ideas, get suggestions, and more
- Smart Note Organization: Categorize and tag your notes for easy retrieval
- Dark/Light Mode: Choose your preferred theme for comfortable viewing
- Responsive Design: Works seamlessly on desktop and mobile devices
- User Authentication: Secure login with email/password or Google authentication
- Real-time Updates: Changes to notes are saved and updated in real-time
- Client-side API Key: Your Google Gemini API key is stored securely in your browser
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- UI Components: shadcn/ui
- Authentication: Firebase Authentication
- Database: Firebase Firestore
- AI Integration: Google Gemini 2.0
- State Management: React Context API
- Form Handling: React Hook Form with Zod validation
- Node.js 18.17 or later
- pnpm package manager
- Firebase account
- Google Gemini API key (users can add their own in the app)
-
Clone the repository:
git clone https://github.com/yourusername/ideablob.git cd ideablob -
Install dependencies:
pnpm install
-
Create a
.env.localfile in the root directory with the following variables:NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_firebase_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_firebase_project_id NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_firebase_storage_bucket NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_firebase_messaging_sender_id NEXT_PUBLIC_FIREBASE_APP_ID=your_firebase_app_id -
Run the development server:
pnpm dev
-
Open http://localhost:3000 in your browser to see the application.
- Sign up or log in using email/password or Google authentication
- Add your Google Gemini API key in the profile settings
- You can get a free API key from Google AI Studio
- The key is stored securely in your browser's localStorage
- Start chatting with the AI assistant to generate ideas and take notes
- Organize your notes by categories and tags
- Customize your experience in the profile settings
ideablob/
├── app/ # Next.js app directory
│ ├── chat/ # Chat page
│ ├── notes/ # Notes page
│ ├── profile/ # Profile page
│ ├── layout.tsx # Root layout
│ └── page.tsx # Root page (redirects to /chat)
├── components/ # React components
│ ├── auth/ # Authentication components
│ ├── chat/ # Chat components
│ ├── layout/ # Layout components
│ ├── notes/ # Notes components
│ └── ui/ # UI components (shadcn/ui)
├── lib/ # Utility functions and services
│ ├── ai-service.ts # Google Gemini integration
│ ├── auth-context.tsx # Authentication context
│ ├── category-service.ts # Category management
│ ├── firebase.ts # Firebase configuration
│ ├── note-service.ts # Note management
│ └── user-context.tsx # User preferences context
├── public/ # Static assets
└── ... # Configuration files
- Firebase Authentication secures user accounts
- Firestore Security Rules protect user data
- API Keys are stored in the user's browser localStorage, not on the server
- HTTPS ensures secure communication
This project is licensed under the MIT License - see the LICENSE file for details.