{"id":32329855,"url":"https://github.com/daanish04/synap","last_synced_at":"2026-04-11T11:04:54.649Z","repository":{"id":312295902,"uuid":"1040400402","full_name":"daanish04/Synap","owner":"daanish04","description":"Synap is a knowledge management platform designed to help users capture, organize, and retain information through an intelligent system of content cards, collections, and spaced repetition learning.","archived":false,"fork":false,"pushed_at":"2025-10-17T22:54:27.000Z","size":7614,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-18T23:52:27.242Z","etag":null,"topics":["clerk","gsap","knowledge-management","nextjs","postgresql","react","spaced-repetition","typescript"],"latest_commit_sha":null,"homepage":"https://synap-six.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daanish04.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-18T23:28:23.000Z","updated_at":"2025-10-17T22:54:30.000Z","dependencies_parsed_at":"2025-08-29T18:46:21.635Z","dependency_job_id":"f48c855d-23ca-4fc8-87bd-f28d6a8e63a4","html_url":"https://github.com/daanish04/Synap","commit_stats":null,"previous_names":["daanish04/synap"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daanish04/Synap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daanish04%2FSynap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daanish04%2FSynap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daanish04%2FSynap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daanish04%2FSynap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daanish04","download_url":"https://codeload.github.com/daanish04/Synap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daanish04%2FSynap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280668370,"owners_count":26370295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clerk","gsap","knowledge-management","nextjs","postgresql","react","spaced-repetition","typescript"],"created_at":"2025-10-23T18:19:24.608Z","updated_at":"2026-04-11T11:04:54.641Z","avatar_url":"https://github.com/daanish04.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synap - Knowledge Management Platform\n\n\u003e **Capture. Bundle. Share.** - A modern knowledge management platform that helps you organize, learn, and share information effectively using spaced repetition and intelligent content organization.\n\n## 🎯 Overview\n\nSynap is a comprehensive knowledge management platform designed to help users capture, organize, and retain information through an intelligent system of content cards, collections, and spaced repetition learning. The platform combines traditional knowledge management with modern learning science to create an effective personal knowledge base.\n\n## ✨ Key Features\n\n### 📚 Content Management\n\n- **Smart Content Cards**: Capture links, notes, and ideas with rich metadata\n- **Intelligent Tagging**: Organize content with flexible tagging system\n- **Favorites \u0026 Pinning**: Mark important content for quick access (up to 5 pinned items)\n- **Full CRUD Operations**: Create, read, update, and delete content seamlessly\n\n### 📁 Collections System\n\n- **Dynamic Collections**: Group related content into organized bundles\n- **Public Sharing**: Share collections with unique, secure links\n- **Collection Management**: Create, edit, and organize collections\n- **Cross-Collection Content**: Add content to multiple collections simultaneously\n\n### 🧠 Spaced Repetition Learning\n\n- **SM-2 Algorithm**: Implemented SuperMemo SM-2 spaced repetition algorithm\n- **Adaptive Scheduling**: Content review intervals adjust based on performance\n- **Review Dashboard**: Track due items and learning progress\n- **Quality-Based Learning**: Rate recall quality to optimize review timing\n\n### 🔐 Authentication \u0026 Security\n\n- **Clerk Integration**: Secure user authentication and session management\n- **Route Protection**: Middleware-based authentication for protected routes\n- **Public Content Access**: Secure sharing without authentication requirements\n\n### 🎨 Modern UI/UX\n\n- **Responsive Design**: Mobile-first design with Tailwind CSS\n- **Dark/Light Mode**: Theme switching with next-themes\n- **Interactive Animations**: GSAP-powered smooth animations and transitions\n- **Component Library**: Custom UI components built with ShadCN UI\n\n## 🛠️ Tech Stack\n\n### Frontend\n\n- **Next.js** - React framework with App Router\n- **React** - Latest React with concurrent features\n- **TypeScript** - Type-safe development\n- **Tailwind CSS** - Utility-first CSS framework\n- **GSAP** - High-performance animations\n- **ShadCN UI** - Accessible component primitives\n- **Lucide React** - Beautiful icon library\n\n### Backend \u0026 Database\n\n- **Prisma ORM** - Type-safe database ORM\n- **PostgreSQL** - Robust relational database\n- **Next.js Server Actions** - Type-safe server-side operations\n- **Clerk** - Authentication and user management\n\n## 🏗️ Architecture\n\n### Database Schema\n\n```sql\nUsers → Contents (1:many)\nUsers → Collections (1:many)\nContents ↔ Collections (many:many via ContentCollection)\nContents ↔ Tags (many:many via ContentTag)\nContents → SpacedRepetition (1:1 optional)\n```\n\n### Key Models\n\n- **User**: Authentication and profile management\n- **Content**: Core content items with metadata\n- **Collection**: Organized content groups\n- **Tag**: Flexible content categorization\n- **SpacedRepetition**: Learning algorithm data\n\n### File Structure\n\n```\n├── app/                    # Next.js App Router\n│   ├── (auth)/            # Authentication routes\n│   ├── (main)/            # Protected main application\n│   └── brain/             # Public shared content\n├── components/            # Reusable UI components\n├── actions/               # Server actions for data operations\n├── lib/                   # Utilities and configurations\n└── prisma/               # Database schema and migrations\n```\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n- PostgreSQL database\n- Clerk account for authentication\n\n### Installation\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/daanish04/Synap.git\n   cd synap\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   npm install\n   ```\n\n3. **Environment Setup**\n   Create a `.env.local` file:\n\n   ```env\n   DATABASE_URL=\"postgresql://username:password@localhost:5432/synap\"\n   NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=\"your_clerk_publishable_key\"\n   CLERK_SECRET_KEY=\"your_clerk_secret_key\"\n   ```\n\n4. **Database Setup**\n\n   ```bash\n   npx prisma migrate dev\n   npx prisma generate\n   ```\n\n5. **Start Development Server**\n\n```bash\nnpm run dev\n```\n\n6. **Open Application**\n   Navigate to localhost\n\n## 📊 Core Algorithms\n\n### Spaced Repetition Implementation\n\nThe platform implements the SuperMemo SM-2 algorithm for optimal learning:\n\n```typescript\n// Review quality affects interval calculation\nenum ReviewQuality {\n  FORGOT = 0, // Reset to 1 day\n  HARD = 1, // Reset to 1 day\n  GOOD = 2, // Continue progression\n  EASY = 3, // Increase interval\n  VERY_EASY = 4, // Significant increase\n}\n```\n\n**Key Features:**\n\n- Adaptive ease factor (1.3 - 2.5+)\n- Interval progression: 1 → 6 → 6 → (interval × easeFactor)\n- Maximum interval cap (365 days)\n- Performance-based adjustments\n\n## 🎯 Performance Optimizations\n\n- **Database Indexing**: Strategic indexes on frequently queried fields\n- **Transaction Safety**: Atomic operations for data consistency\n- **Caching**: Next.js revalidation for optimal data freshness\n- **Component Optimization**: Client/server component separation\n- **Image Optimization**: Next.js Image component with lazy loading\n\n## 🔮 Future Enhancements\n\n- **AI Integration**: Content summarization, quiz generation, tag suggestions and connection discovery\n- **Pagination**: Efficient handling of large content datasets\n- **Browser Extension**: User friendly content addition and sharing\n- **Advanced Search**: Full-text search across content and metadata\n- **Export/Import**: Data portability features\n- **Blog-like Environment**: Users able to follow other's profiles and save collections, with visible likability and views for each content/collection. More personalized user profile page (Bio, Social Links, Followers/Following List, Avatar, Achievements) [Low]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaanish04%2Fsynap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaanish04%2Fsynap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaanish04%2Fsynap/lists"}