An intelligent link saving application that uses AI to automatically summarize and categorize your links.
- User Authentication: Secure registration and login with JWT. Includes password confirmation for new accounts.
- Save & Analyze: Save any URL, and the app will automatically fetch the title, description, and a relevant image.
- AI-Powered Summaries: Google Gemini AI generates a concise summary of every link you save.
- AI-Powered Tagging: Links are automatically categorized for easy discovery.
- Clean Dashboard: View all your saved links in a clean, minimalist dashboard.
- Search Functionality: Instantly search through your saved links by title or domain.
- Modern UI: A clean, light-themed, and responsive interface built with React and Tailwind CSS.
- Landing Page: A beautiful and welcoming landing page for new users.
- Frontend: React, TypeScript, React Router, Tailwind CSS, Axios
- Backend: Node.js, Express, PostgreSQL
- AI: Google Gemini
- Authentication: JWT, bcrypt
- In the root of the project, create a file named
.env. - Copy the contents of
.env.exampleinto your new.envfile. - Fill in the values in your
.envfile:DATABASE_URL: Your full PostgreSQL connection string.GEMINI_API_KEY: Your API key from Google AI Studio.JWT_SECRET: A long, random string for signing tokens. You can generate one here.PORT: The port for the backend server (defaults to 3001).
- Install dependencies for both the root and the
serverdirectory:npm install
- Start the frontend and backend servers:
- To run the backend server (on port 3001):
npm run server
- To run the frontend dev server (on port 5173):
npm run dev
- To run the backend server (on port 3001):
Your application should now be running. Open your browser to the frontend URL to see the landing page.
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/me- Get current user info
POST /api/links- Save a new linkGET /api/links- Get all user's linksGET /api/links/:id- Get specific link detailsDELETE /api/links/:id- Delete a link
- URL Validation: Ensures valid URL format
- Metadata Extraction: Fetches page title, description, and Open Graph image
- AI Analysis: Gemini AI analyzes content for tagging and summarization
- Database Storage: Saves all data with user association
- Password hashing with bcrypt
- JWT token authentication
- Protected API routes
- SQL injection prevention with parameterized queries
- Real-time search and filtering
- Responsive grid and list views
- Smooth loading states
- Error handling with user feedback
- Optimistic UI updates
For production deployment:
- Set up your PostgreSQL database
- Configure environment variables on your hosting platform
- Build the frontend:
npm run build - Deploy both frontend and backend
- Set up SSL certificates for secure connections
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.