A beautiful Twitter bookmark manager that allows you to export your Twitter bookmarks as JSON and view them in three different formats: cards, gallery, and grid.
- 📱 Three View Modes: Card, Gallery, and Grid layouts
- 🖼️ Image Support: Display images from tweets
- 📤 JSON Upload: Upload your Twitter bookmarks JSON file
- 🎨 Modern UI: Built with React, TypeScript, and Tailwind CSS
- ⚡ Fast & Responsive: Optimized for performance
- React 18 with TypeScript
- Vite for build tooling
- Tailwind CSS for styling
- shadcn/ui components
- React Router for navigation
- Node.js with Express
- Multer for file uploads
- CORS enabled for cross-origin requests
- Node.js (v16 or higher)
- npm or yarn
- Clone the repository:
git clone <your-repo-url>
cd stash- Install dependencies:
# Install frontend dependencies
npm install
# Install backend dependencies
cd backend
npm install
cd ..- Start the development servers:
# Option 1: Use the provided script
./start-dev.sh
# Option 2: Start manually
# Terminal 1 - Backend
cd backend
npm run dev
# Terminal 2 - Frontend
npm run dev- Open your browser and navigate to
http://localhost:5173
- Upload Bookmarks: Click the "Upload JSON" button to upload your Twitter bookmarks JSON file
- View Modes: Switch between Card, Gallery, and Grid views using the toggle
- Browse: Navigate through your bookmarks with images and full content
A sample JSON file is included at backend/sample-bookmarks.json for testing purposes.
GET /api/bookmarks- Get all bookmarksPOST /api/upload- Upload bookmarks JSON file
cd backend
npm run devnpm run devstash/
├── backend/
│ ├── server.js
│ ├── sample-bookmarks.json
│ └── package.json
├── src/
│ ├── components/
│ │ ├── BookmarkCard.tsx
│ │ ├── BookmarkGallery.tsx
│ │ ├── BookmarkGrid.tsx
│ │ └── BookmarkViewer.tsx
│ ├── api/
│ │ └── bookmarks.ts
│ └── ...
├── start-dev.sh
└── README.md
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License