reposs makes open source discovery easy and quick. It's a modern web application that helps developers, students, and teams discover, explore, and track open-source GitHub repositories. Built with a focus on clarity and speed, reposs layers powerful search, filters, and curated views on top of GitHub's data so you can find projects that match your interests and skills.
- 🔍 Advanced Search & Filtering: Search repositories by name, filter by programming language (JavaScript, Python, TypeScript, Go, Rust, Java, C++, PHP, and more), and set minimum star thresholds
- 📊 Multiple Views:
- Home: Clean starting point for filtered search and exploration
- Trending: Discover fast-growing repositories over different time ranges (daily, monthly, yearly)
- Staff Picked: Curated selection of high-quality repositories handpicked by the team
- Discover: Explore recently active repositories to find maintainers who are still engaged
- ⭐ Smart Sorting: Sort repositories by stars, forks, or recent activity to find the most relevant projects
- 🔖 Bookmarks: Save repositories for later. Works seamlessly for both guest users (local storage) and authenticated users (cloud sync)
- 👥 Authentication: Optional GitHub authentication unlocks personalized experiences and cloud bookmark sync
- 🛡️ Admin Panel: Manage staff picks with custom badges and notes
- 🏷️ Badge System: Categorize staff picks with predefined badges (Startup, Bug Bounty, GSSoC, AI, DevTools) or custom labels
- 📈 Analytics Dashboard: Track staff picks, badges, and repository statistics
- 🎨 Modern UI: Clean, intuitive interface built with Radix UI and Tailwind CSS
- 🌙 Dark Theme: Beautiful dark theme optimized for extended browsing sessions
- ⚡ Fast Performance: Optimized queries and caching for quick repository discovery
- 📱 Responsive Design: Works seamlessly across desktop, tablet, and mobile devices
- Framework: Next.js 15 with App Router
- Styling: Tailwind CSS
- UI Components: Radix UI and Lucide React
- Animations: Framer Motion
- 3D Graphics: React Three Fiber & Three.js
- Database: Convex for real-time data and bookmarks
- Authentication: NextAuth.js with GitHub OAuth
- GitHub Integration: Octokit with retry and throttling plugins
- Caching: Built-in caching layer for repository data
- Hosting: Vercel
- Analytics: Vercel Analytics
To get a local copy up and running, follow these simple steps.
-
Clone the repo
git clone https://github.com/krishn404/reposs.git
-
Navigate to the project directory
cd reposs -
Install dependencies
pnpm install
-
Set up environment variables
Create a
.env.localfile in the root of the project with the following variables:# NextAuth.js NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-nextauth-secret-here # GitHub OAuth (for authentication) GITHUB_CLIENT_ID=your-github-client-id GITHUB_CLIENT_SECRET=your-github-client-secret # Convex (for database and bookmarks) CONVEX_DEPLOYMENT=your-convex-deployment-url NEXT_PUBLIC_CONVEX_URL=your-convex-url # Optional: Google Analytics NEXT_PUBLIC_GOOGLE_TAG_ID=your-ga-id
You'll need to:
- Create a GitHub OAuth App at GitHub Developer Settings
- Set up a Convex project at convex.dev
- Generate a NextAuth secret (you can use
openssl rand -base64 32)
-
Run the development server
pnpm dev
I'm currently focusing on:
- 🔍 Enhanced Search: Improved search algorithms and better relevance ranking
- 📊 Contribution Insights: Track your contributions and get personalized recommendations
- 💾 Saved Views: Save and share custom filter combinations for quick access
- 🔔 Notifications: Get notified when bookmarked repositories have new releases or activity
- 📈 Repository Analytics: Deeper insights into repository health, activity trends, and contributor patterns
- 🌐 Social Features: Share discoveries and collaborate with teams
- ⚡ Performance: Further optimizations for faster load times and smoother interactions
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
- Fork the Project
- 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
Distributed under the MIT License. See LICENSE for more information.
