Note: This project started as a learning exercise to create modern dashboards. However, it gradually moved away from the original idea, so I decided to pivot and start fresh. You can check the original approach here: https://github.com/synqcloud/synq
Synq is a modern inventory and sales management system designed for individual online sellers. Built for simplicity and efficiency, it helps you track your inventory, manage sales across different platforms, and gain insights into your business performance.
- 📦 Simple Inventory Tracking – Monitor stock levels and product details
- 📊 Sales Overview – Track sales across different platforms
- 💰 Basic Profitability – Calculate costs and revenue
- 🔄 Data Import/Export – Easy migration from spreadsheets
- 📈 Basic Reports – Generate simple financial insights
-
Frontend:
- Next.js
- React
- TypeScript
- Tailwind CSS
- Shadcn UI components
- React Query for data fetching
- React Hook Form with Zod validation
- Recharts for data visualization
-
Backend:
- Next.js API Routes
- Supabase for authentication and database
-
Development:
- Turborepo for monorepo management
- ESLint and Prettier for code quality
- TypeScript for type safety
synq/
├── apps/ # Applications
│ ├── web/ # Next.js web application (port 3000)
│ └── desktop/ # Desktop application (port 3001)
├── packages/ # Shared packages
│ ├── ui/ # Shared UI components
│ ├── supabase/ # Supabase client and utilities
│ ├── eslint-config/ # Shared ESLint configuration
│ └── typescript-config/ # Shared TypeScript configuration
├── infra/ # Supabase for Local Development
│ ├── supabase/
└── .github/ # GitHub workflows and templates
- Node.js 20.9.0 or later
- Yarn 1.22.19 or later
- Docker Desktop installed and running
- Supabase CLI installed (see official documentation for installation methods)
-
Clone the repository:
git clone https://github.com/yourusername/synq.git cd synq -
Install dependencies:
yarn install
-
Start Local Supabase:
cd infra && supabase start
This will start the local Supabase instance and output your API credentials.
-
Set up environment variables:
cp apps/web/.env.example apps/web/.env.local
Edit
apps/web/.env.localwith the values from the Supabase start output:NEXT_PUBLIC_SUPABASE_URL: http://localhost:54321NEXT_PUBLIC_SUPABASE_ANON_KEY: Your anon key from the Supabase start output
-
Reset the database (if needed):
cd infra && supabase db reset
This will run migrations and seed the database with test data.
-
Start the development server:
yarn dev
The application will be available at:
- Web Application: http://localhost:3000
- Supabase Dashboard: http://localhost:54323
- Auth Emails: http://localhost:54324
yarn dev- Start development server with Turbopackyarn build- Build the applicationyarn start- Start production serveryarn lint- Run ESLintyarn format- Format code with Prettieryarn generate-types- Generate Supabase database types
If you encounter issues:
- Ensure Docker Desktop is running
- Check Supabase status:
cd infra && supabase status
- Restart Supabase if needed:
cd infra && supabase start
- Reset the database:
cd infra && supabase db reset
- Verify your environment variables in
.env.local
This project is licensed under the AGPL-3.0 for non-commercial use.
