PrintCBS is a modern, secure, and lightning-fast file sharing platform that allows users to share files instantly without requiring any login or registration. Perfect for students, professionals, and anyone who needs to quickly transfer files between devices.
- 🚀 Instant File Sharing - Share files with a simple 6-character code
- 🔒 Secure & Private - Files are automatically deleted within 24 hours
- 📱 Cross-Device Compatible - Works seamlessly across all devices and browsers
- 🎯 Any File Type - Support for documents, images, videos, and any file format
- ⚡ Lightning Fast - Blazing-fast upload and download speeds
- 🔍 File Search - Easily search through shared files
- 📊 Real-time Statistics - Track the number of files shared globally
- Visit the Send Files page
- Get a unique 6-character bucket code
- Drag & drop or select files to upload
- Share the bucket code with recipients
- Visit the Receive Files page
- Enter the 6-character bucket code
- Browse and download shared files
- Search through files if needed
- Frontend: Next.js 15, React 19, TypeScript
- Styling: Tailwind CSS, Radix UI Components
- Database: PostgreSQL with Prisma ORM
- File Storage: UploadThing
- Deployment: Vercel
- UI Icons: Lucide React
- Node.js 18+
- npm, yarn, pnpm, or bun
- PostgreSQL database
- UploadThing account (for file storage)
-
Clone the repository
git clone https://github.com/yourusername/printcbs.git cd printcbs -
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables Create a
.env.localfile in the root directory:DATABASE_URL="postgresql://username:password@localhost:5432/printcbs" UPLOADTHING_SECRET="your_uploadthing_secret" UPLOADTHING_APP_ID="your_uploadthing_app_id"
-
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev # or yarn dev # or pnpm dev
-
Open your browser Navigate to http://localhost:3000 to see the application.
PrintCBS/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── receive/ # File receiving pages
│ ├── send/ # File sending pages
│ └── page.tsx # Homepage
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components
│ └── receive.tsx # Receive form component
├── lib/ # Utility libraries
├── prisma/ # Database schema and migrations
├── server/ # Server actions
└── utils/ # Utility functions
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpx prisma studio- Open Prisma Studio for database management
The easiest way to deploy PrintCBS is using Vercel:
- Push your code to GitHub
- Import your repository to Vercel
- Add your environment variables
- Deploy!
We welcome contributions from the community! Here's how you can help:
- Check if the bug has already been reported in the Issues section
- Create a new issue with a clear title and description
- Include steps to reproduce the bug
- Add screenshots or videos if applicable
- Check if the feature has already been suggested
- Create a new issue with the
enhancementlabel - Describe the feature and its benefits
- Provide mockups or examples if possible
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the existing code style
- Add tests if applicable
- Update documentation if needed
- Commit your changes
git commit -m 'Add amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style and conventions
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation for any new features
- Ensure all tests pass before submitting a PR
bug- Something isn't workingenhancement- New feature or requestdocumentation- Improvements or additions to documentationgood first issue- Good for newcomershelp wanted- Extra attention is needed
This project is licensed under the MIT License - see the LICENSE file for details.
Vinu - LinkedIn
Made with ❤️ for the community
- Next.js for the amazing framework
- Vercel for hosting and deployment
- UploadThing for file storage
- Prisma for database management
- Tailwind CSS for styling
⭐ If you find this project helpful, please give it a star on GitHub!