Your digital library, automated.
AI-powered bookmark manager that automatically categorizes, tags, and organizes your web findings using Google Gemini.
Features • Demo • Quick Start • Deployment • Self-Hosting Guide • GitHub Deployment
- Smart Metadata Extraction: Automatically fetches titles, descriptions, and favicons
- Intelligent Tagging: Gemini AI generates relevant tags based on content analysis
- Auto-Categorization: AI-driven categories that adapt to your habits
- Bulk Operations: Edit, tag, categorize, or delete multiple bookmarks at once
- Advanced Search: Search by title, URL, tags, or categories
- Flexible Views: Switch between grid and list layouts
- Smart Filtering: Filter by categories, tags, or favorites
- Activity Timeline: GitHub-style contribution calendar showing your saving patterns
- Usage Statistics: Track total bookmarks, tags, and weekly/monthly trends
- Category Distribution: Visual breakdown of your bookmark organization
- Recent Activity: Quick access to your latest additions
- Dual Themes:
- Light Mode: "Vintage Journal" - Warm parchment tones with navy and gold accents
- Dark Mode: "Midnight Library" - Sleek ink black with teal highlights
- Responsive: Works seamlessly on desktop, tablet, and mobile
- Minimal & Clean: Distraction-free interface focused on your content
- Firebase Authentication: Secure login with Google or email/password
- Encrypted Storage: Your data is securely stored in Firestore
- Personal & Private: Your bookmarks are yours alone
- No Tracking: Minimal data collection, maximum privacy
- Open Source: MIT licensed, fork and customize as you wish
- Modern Stack: React 19, TypeScript, Vite, TailwindCSS
- Easy Deployment: Deploy to Vercel, Netlify, or any static host
- Self-Hostable: Full control over your data (Self-Hosting Guide)
View your bookmark analytics, recent additions, and activity timeline at a glance.
Just paste a URL - Gemini AI handles the rest:
- Extracts page title and description
- Generates relevant tags
- Suggests appropriate categories
- Saves high-quality favicon
Select multiple bookmarks to:
- Add or remove tags in bulk
- Move to different categories
- Mark as favorites
- Archive or delete
- Node.js 18+ installed
- Firebase project (Create one here)
- Gemini API key (Get one here)
-
Clone the repository
git clone https://github.com/VishalRashmika/Ephemera.git cd ephemera -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envand fill in your credentials:GEMINI_API_KEY=your_gemini_api_key_here VITE_FIREBASE_API_KEY=your_firebase_api_key VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your-project-id VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
-
Configure Firebase (See FIREBASE_SETUP.md)
- Enable Authentication (Google & Email/Password)
- Create Firestore database
- Set up security rules
-
Run the development server
npm run dev
Open http://localhost:3000 in your browser.
-
Push your code to GitHub
git add . git commit -m "Initial commit" git push origin main
-
Import to Vercel
- Go to vercel.com
- Click "New Project"
- Import your GitHub repository
- Add environment variables (see below)
-
Configure Environment Variables in Vercel
- Go to Project Settings > Environment Variables
- Add each variable from your
.envfile - Deploy!
-
Build the project
npm run build
-
Deploy
- Drag the
distfolder to Netlify Drop - Or use Netlify CLI:
npm install -g netlify-cli netlify deploy --prod
- Drag the
-
Set environment variables in Netlify dashboard under Site Settings > Environment Variables
For automated deployments with GitHub Actions and detailed instructions on setting up secrets, see the GitHub Deployment Guide.
Quick setup: Add these secrets to your GitHub repository (Settings → Secrets and variables → Actions):
GEMINI_API_KEYVITE_FIREBASE_API_KEYVITE_FIREBASE_AUTH_DOMAINVITE_FIREBASE_PROJECT_IDVITE_FIREBASE_STORAGE_BUCKETVITE_FIREBASE_MESSAGING_SENDER_IDVITE_FIREBASE_APP_ID
- Frontend: React 19, TypeScript, TailwindCSS
- Build Tool: Vite 6
- AI: Google Gemini API
- Backend: Firebase (Auth + Firestore)
- Charts: Recharts
- Icons: Lucide React
- Self-Hosting Guide - Deploy Ephemera on your own infrastructure
- Firebase Setup - Detailed Firebase configuration steps
- Firestore Setup - Database structure and security rules
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Google Gemini for the amazing AI capabilities
- Firebase for backend infrastructure
- Lucide for beautiful icons
- Recharts for elegant data visualization
If you have any questions or run into issues:
- Open an issue on GitHub
- Check the Self-Hosting Guide
- Review existing issues for solutions
Made with ❤️ for bookmark hoarders everywhere
This is a vibe coded project ✨
