A local-first workshop tool inventory system for cataloging and tracking your tools.
- Tool Catalog: Add tools with photos, labels, descriptions, and notes
- Hierarchical Locations: Organize tools in nested containers (e.g., Garage → Workbench → Top Drawer)
- Borrowed Tracking: Track which tools are lent out and to whom
- Full-Text Search: Search across all tool fields using SQLite FTS5
- Filtering: Filter by location and borrowed status
- Frontend: SvelteKit with TypeScript
- Database: SQLite with Drizzle ORM
- Styling: Tailwind CSS
- Search: SQLite FTS5 for full-text search
- Node.js 18+
- npm
# Install dependencies
npm install
# Start development server
npm run devThe app will be available at http://localhost:5173
npm run build
npm run preview- Database:
data/tools.db- SQLite database file - Images:
uploads/- Tool photos
Both directories are gitignored. To backup your data, simply copy these files.
toolshed/
├── src/
│ ├── lib/
│ │ └── db/ # Database schema and connection
│ └── routes/
│ ├── api/ # REST API endpoints
│ ├── tools/ # Tool pages (list, detail, edit)
│ └── locations/ # Location management
├── data/ # SQLite database (gitignored)
└── uploads/ # Tool images (gitignored)
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/tools |
List tools (supports ?q=, ?locationId=, ?borrowed=) |
| POST | /api/tools |
Create tool (multipart for image) |
| GET/PUT/DELETE | /api/tools/:id |
Tool CRUD operations |
| GET | /api/locations |
List locations |
| POST | /api/locations |
Create location |
| GET/PUT/DELETE | /api/locations/:id |
Location CRUD operations |
MIT