A modern SaaS print business management application built with a monorepo architecture.
"Let's Print" is a cloud-based SaaS platform for print business startups. It lets users subscribe, get their own CRM and storefront, manage client orders, forward jobs to production, and handle all workflows from marketing to delivery—no need for their own print machinery.
The platform supports four distinct user roles with customized dashboards:
- Client - Place orders, track deliveries, manage printing needs
- Business Owner - Manage orders, coordinate with production, oversee clients
- Production Owner - Handle production workflows, manage equipment and jobs
- SuperAdmin - Complete system administration and oversight
This project uses a monorepo structure with the following components:
- Frontend: Next.js application (React-based)
- Backend: Node.js/Express REST API
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- Git
lets-print/
├── frontend/ # Next.js frontend application
│ ├── src/
│ ├── public/
│ ├── .env.example # Environment variables template
│ ├── .env.local # Local environment variables (create from .env.example)
│ └── package.json
├── backend/ # Node.js/Express backend API
│ ├── src/
│ ├── .env.example # Environment variables template
│ ├── .env # Local environment variables (create from .env.example)
│ └── package.json
├── package.json # Root package.json for monorepo
└── README.md
# Install all dependencies
npm run install:all
# Start both frontend and backend in development mode
npm run devgit clone https://github.com/digi5org/lets-print.git
cd lets-printcd frontend
npm install
cp .env.example .env.local
# Edit .env.local with your configuration
npm run devThe frontend will be available at http://localhost:3000
cd backend
npm install
cp .env.example .env
# Edit .env with your configuration
npm run devThe backend API will be available at http://localhost:5000
See frontend/.env.example for required environment variables.
See backend/.env.example for required environment variables.
cd frontend
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint- 🔐 Role-based authentication (Client, Business Owner, Production Owner, SuperAdmin)
- 📱 Fully responsive design with mobile-first approach
- 🎨 Modern UI with Tailwind CSS
- 🚀 Optimized performance with Next.js App Router
- 📄 Pages: Landing, Login, Signup, Dashboard, Error, 404
- 🎭 Dynamic navigation based on user roles
cd backend
npm run dev # Start development server with nodemon
npm start # Start production server
npm run lint # Run ESLint
npm test # Run testsnpm run dev- Start both frontend and backend concurrentlynpm run dev:frontend- Start only frontendnpm run dev:backend- Start only backendnpm run build- Build both frontend and backendnpm run install:all- Install dependencies in all workspacesnpm run clean- Remove all node_modules and build artifacts
Each workspace has its own set of scripts. Refer to the individual package.json files for details.
- Next.js 14 (App Router)
- React 18
- JavaScript (ES6+)
- Tailwind CSS
- Role-based authentication system
- Node.js
- Express
- TypeScript
- MySQL (Database)
- Prisma (ORM)
- JWT (Authentication)
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software. All rights reserved.
For questions or support, please contact the development team.