Your Digital Second Brain for YouTube Videos & Personal Notes
Remind is a full-stack web application that helps you organize valuable YouTube videos and personal thoughts in one centralized, distraction-free workspace.
Instead of scattered bookmarks and random notes, Remind gives you a structured personal knowledge system.
- 📺 Save important YouTube videos
- 📝 Create and manage personal notes
- 🔐 Secure authentication (JWT-based)
- 🗂 Filter content by type (Videos / Notes)
- 🗑 Delete saved content
- ⚡ Smooth UI animations with Framer Motion
- 🎨 Modern, responsive design
- React.js
- TypeScript
- Tailwind CSS
- Framer Motion
- Axios
- Express.js
- TypeScript
- Drizzle ORM
- PostgreSQL
- JWT Authentication
Remind/
│
├── Readme.md
│
├── frontend/ # React + Vite Frontend
│ ├── src/
│ │ ├── components/
│ │ │ ├── Logo.tsx
│ │ │ ├── Hero.tsx
│ │ │ ├── Footer.tsx
│ │ │ ├── Action.tsx
│ │ │ ├── Navbar.tsx
│ │ │ ├── Features.tsx
│ │ │ └── AddContentModal.tsx
│ │ ├── pages/
│ │ │ ├── Home.tsx
│ │ │ ├── Dashboard.tsx
│ │ │ ├── Login.tsx
│ │ │ └── Register.tsx
│ │ ├── config/
│ │ │ └── config.ts
│ │ ├── assets/
│ │ ├── App.tsx
│ │ ├── index.css
│ │ └── main.tsx
│ ├── public/
│ ├── package.json
│ ├── vite.config.ts
│ ├── tsconfig.json
│ ├── eslint.config.js
│ ├── index.html
│ └── README.md
│
└── backend/ # Express + TypeScript Backend
├── src/
│ ├── controllers/
│ │ ├── authController.ts
│ │ └── contentController.ts
│ ├── routes/
│ │ ├── authRoutes.ts
│ │ └── contentRoutes.ts
│ ├── middleware/
│ │ └── middleware.ts
│ ├── drizzle/
│ │ ├── schema.ts
│ │ └── migrations/
│ │ ├── 0000_wealthy_apocalypse.sql
│ │ └── meta/
│ ├── config/
│ │ └── db.ts
│ └── server.ts
├── package.json
├── drizzle.config.ts
├── tsconfig.json
└── .gitignore
- User registers / logs in
- Server generates JWT token
- Token stored in localStorage
- Protected routes verify token via middleware
- User-specific data fetched using
createdByfield
- id
- password
- id
- title
- url
- createdBy
- createdAt
- id
- title
- userNotes
- createdBy
- createdAt
git https://github.com/Lucid-Synth/Remind.git
cd remindcd backend
npm installCreate a .env file:
DATABASE_URL=your_postgresql_connection_string
JWT_SECRET=your_secret_key
PORT=3000
Run migrations (Drizzle):
npx drizzle-kit pushStart backend:
npm run devcd frontend
npm install
npm run devMake sure Base_Url in config points to your backend:
export const Base_Url = "http://localhost:3000";POST /auth/registerPOST /auth/login
-
GET /content/yt -
POST /content/yt -
DELETE /content/yt/:id -
GET /content/notes -
POST /content/notes -
DELETE /content/notes/:id
All content routes require Authorization header:
Authorization: <JWT_TOKEN>
Modern learning is fragmented:
- YouTube playlists
- Random note apps
- Browser bookmarks
- Screenshots
Remind centralizes everything into one structured second-brain system.
- Frontend → Vercel
- Backend → Netlify
- Database → NileDB
Built with ❤️ by [LucidSynth]
MIT License