Cache is a personal digital archiving system. It lets you save, organize, and retrieve links, media embeds, and plain-text markdown notes.
The live application is hosted at: https://cache.sampreeth.in
├── .github/workflows/ # Database backup workflows
├── backend/ # Node.js Express server, Mongoose models, and API routes
├── frontend/ # React app, Tailwind CSS, and state management
├── backups/ # Automated database backup location
└── scripts/ # Backup execution scripts
- Quick-add links and notes: Paste a URL or write a note directly into the dashboard.
- Auto-parsing: The backend scraper extracts metadata and titles for added links.
- Interactive previews: Previews for YouTube, Spotify, Reddit, and Instagram items are rendered directly.
- Hierarchical collections: Organize items inside folders and subfolders.
- Tag indexing: Categorize items using tags and filter them instantly.
- Global search: Search by title, tag, note, description, or URL.
- Responsive design: Brutalist styled interface that scales well across mobile and desktop devices.
- Local and session storage: Group settings under a single namespace for privacy and workspace boundary constraints.
- Automated backups: A backup workflow to commit database snapshots directly to the repository.
- Frontend: React 19, Vite 8, Tailwind CSS v4, and Lucide React.
- Backend: Node.js, Express, and MongoDB (via Mongoose). Can also run in a zero-dependency in-memory mock database mode when no database URI is supplied.
You need Node.js and npm installed on your system.
-
Clone the repository:
git clone https://github.com/sam-sampreeth/cache-app.git cd cache-app -
Set up the backend:
cd backend npm installCreate a
.envfile in thebackendfolder and add:PORT=5000 MONGODB_URI=mongodb://127.0.0.1:27017/cache-app JWT_SECRET=your_jwt_secret ADMIN_EMAIL=[email protected] ADMIN_PASSWORD=admin123
To run in mock database mode (in-memory, no MongoDB required), add
MOCK_DB=trueto the.envfile. -
Start the backend server:
npm start
-
Set up the frontend:
cd ../frontend npm installCreate a
.envfile in thefrontendfolder and add:VITE_API_BASE=http://localhost:5000
-
Start the frontend development server:
npm run dev
Open
http://localhost:5173in your browser.
The project includes a GitHub Actions workflow that runs database backups on the 1st of every month (or manually via workflow dispatch). The backup script dumps non-demo collections to backups/backup.json and commits it to the repository.
To configure backups:
- Go to repository Settings on GitHub.
- Select Settings > Secrets and variables > Actions.
- Add a Repository secret named
MONGODB_URIcontaining your database connection string.