Shinro is a modern personal media organization app built with Nuxt, TypeScript, tRPC, Prisma, and PostgreSQL. It helps users keep track of movies, collections, and their own viewing habits in a clean and intuitive experience.
Shinro was created as a personal project to make media management more intentional and enjoyable. Instead of relying on scattered lists and fragmented tools, it brings everything into one place so users can organize what they want to watch, what they have watched, and what they want to keep close at hand.
- Manage personal movie collections
- Create and organize custom collections
- Search and discover movies through TMDb integration
- Keep a structured and accessible personal library
- Enjoy a fast, modern experience powered by Nuxt and tRPC
- Nuxt 4
- Vue 3
- TypeScript
- tRPC
- Prisma ORM
- PostgreSQL
- Tailwind CSS
- Zod validation
Make sure you have the following installed:
- Node.js
- pnpm
- PostgreSQL
pnpm installCreate the necessary environment variables for your local environment before running the app. The project expects database and TMDb-related values to be available through the server environment configuration.
Generate Prisma client and apply migrations:
pnpm db:generate
pnpm db:migratepnpm devThe application will be available at http://localhost:3000.
pnpm build
pnpm dev
pnpm typecheck
pnpm lint
pnpm db:studioContributions are welcome.
If you would like to contribute, please follow these steps:
- Fork the repository
- Create a feature branch
- Make your changes
- Run checks and tests where relevant
- Open a pull request with a clear description of your changes
A few good practices:
- Keep commits clear and focused
- Follow the existing code style
- Write descriptive PR messages
- Avoid introducing unnecessary changes
Shinro started as a personal tool for organizing media in a way that feels simple and expressive. Over time, it evolved into a full-stack application that combines a polished frontend experience with a robust backend architecture. The project is designed both as a practical app and as a learning platform for modern full-stack development.
This project is licensed under the GNU AGPLv3 License. See the LICENSE file for more details.