Overview¶
Stowaway is a modern, self-hosted inventory management system designed for individuals and small teams who want to keep track of their belongings.
Why Stowaway?¶
Self-Hosted¶
Your data stays on your server. No subscriptions, no third-party access, no vendor lock-in.
Modern Stack¶
Built with Next.js, Prisma, and SQLite - technologies that are fast, reliable, and easy to maintain.
Easy to Use¶
A clean, intuitive interface that works on desktop and mobile devices.
Core Concepts¶
Items¶
Items are the core of Stowaway. Each item represents something you want to track:
- Physical goods - Tools, equipment, supplies
- Collectibles - Books, media, memorabilia
- Household items - Kitchen appliances, electronics
- Business inventory - Products, materials, assets
Categories¶
Categories help you organize items into logical groups:
- Color-coded for visual identification
- Filter items by category
- Track item counts per category
Locations¶
Locations represent where items are physically stored:
- Rooms in your home
- Shelves in a warehouse
- Storage units
- Any custom location you define
Architecture¶
graph TD
A[Browser] -->|HTTPS| B[Next.js Server]
B -->|API Routes| C[Prisma ORM]
C -->|SQL| D[SQLite Database]
B -->|Static Files| E[File System]
E -->|Images| F[Uploads Directory] Components¶
| Component | Technology | Purpose |
|---|---|---|
| Frontend | React + Next.js | User interface |
| Backend | Next.js API Routes | REST API |
| Database | SQLite + Prisma | Data persistence |
| Auth | NextAuth.js | Authentication |
| Styling | Tailwind CSS + shadcn/ui | UI components |
User Roles¶
Admin¶
- Full access to all features
- Can manage all users' items
- First registered user automatically becomes admin
User¶
- Can manage their own items
- Cannot access other users' data
- Standard access to all features
Data Flow¶
- User Action - User interacts with the web interface
- API Request - Browser sends request to Next.js API route
- Authentication - NextAuth.js validates the session
- Database Query - Prisma executes the database operation
- Response - Data is returned and rendered in the UI
Next Steps¶
- Features - Detailed feature documentation
- Managing Items - Learn how to work with items
- API Reference - Technical API documentation