A simple, elegant alternative to Pocket. Save, organize, and access your content effortlessly.
UnPocket is a free, open-source alternative to Pocket that allows you to save URLs and metadata via a browser extension and manage them through a web application.
This is a Turborepo monorepo containing multiple workspaces:
-
web: React web application built with Vite and TypeScript- Main dashboard for managing saved content
- Built with TanStack Router
- Hosted at unpocket.me
-
ext: Browser extension built with WXT- Cross-browser extension for saving content
- Supports Chrome, Firefox, and other Chromium-based browsers
- Integrates with the web app backend
-
@repo/ui: Shared component library using Tailwind CSS and Radix UI- Reusable components used across web and extension
- Consistent design system
-
@repo/db: Database utilities and Supabase client configuration- Shared database types and queries
- Supabase client setup
-
@repo/eslint-config: Shared ESLint configurations -
@repo/typescript-config: Shared TypeScript configurations
supabase/: Backend infrastructure- PostgreSQL database with Row Level Security
- Edge functions for metadata fetching
- Authentication via OAuth providers
- Real-time subscriptions
- Frontend: React, TypeScript, Vite, TanStack Router/Query
- Styling: Tailwind CSS, Radix UI
- Backend: Supabase (PostgreSQL, Edge Functions, Auth)
- Extension: WXT framework
- Monorepo: Turborepo with pnpm workspaces
- Clone the repository:
git clone https://github.com/akshat-OwO/unpocket.git
cd unpocket- Install dependencies:
pnpm install- Set up Supabase:
npx supabase start-
Set up environment variables for each app (see respective
.env.examplefiles) -
Run the development servers:
pnpm dev:web
pnpm dev:extContributions are welcome from everyone! Whether you're fixing bugs, adding features, improving documentation, or suggesting new ideas, we'd love to have your help.
- 🐛 Bug Reports: Found a bug? Please open an issue
- ✨ Feature Requests: Have an idea? Let's discuss it
- 📝 Documentation: Help improve our docs
- 🔧 Code: Submit pull requests for bug fixes or new features
- 🎨 Design: UI/UX improvements are always appreciated
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and add tests if applicable
- Commit your changes:
git commit -m "Add your feature" - Push to your fork:
git push origin feature/your-feature-name - Submit a pull request
Please make sure to:
- Follow the existing code style
- Update documentation as needed
- Keep pull requests focused and atomic
- [ x ] Import from Pocket: Allow users to migrate their existing Pocket saves
- Collections: Advanced organization system for grouping saves beyond tags
- Improved UI: Enhanced user interface with better visual design and user experience
- Mobile App: Native mobile applications for iOS and Android
- Collaborative Features: Share collections and saves with others
- Advanced Filtering: Filter by date ranges, content types, reading time
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.
- 🌐 Website: unpocket.me
- 🦊 Firefox Extension: Mozilla Add-ons
- 🟢 Chrome Extension: Coming Soon
- 📧 Support: GitHub Issues
- 🐦 Twitter: @akshat_OwO