Squared is a comprehensive task management and team collaboration platform designed to streamline project workflows, team communication, and task tracking.
This is a monorepo containing the following applications and services:
web: A Next.js application providing the main user interface for task management and team collaboration.api: An Express-based backend service handling data processing, authentication, and business logic.webhooks: A Go service for handling webhook integrations (GitHub, etc.).www: A marketing website and documentation built with Next.js.
- Frontend: React with Next.js
- Backend: Express (Node.js), Go (webhooks)
- Database: PostgreSQL (implied from DB scripts)
- State Management: Zustand
- Build System: Turborepo
- Package Manager: pnpm
- Testing: Jest
- Linting/Formatting: Biome
- CI/CD: Supports Docker containerization
- User authentication and authorization
- Workspace management
- Task tracking and updates
- Team collaboration tools
- Sprint planning and management
- GitHub integration
- Real-time notifications
- Node.js (>=23.0.0)
- pnpm (>=10.11.0)
- Docker and Docker Compose (for containerized development)
- Go (for webhooks service)
-
Clone the repository:
git clone https://github.com/SquaredMade2/squared.git cd squared -
Install dependencies:
pnpm install
-
Set up environment variables:
- Copy
.env.exampleto.env(if available) and fill in the required values
- Copy
-
Initialize the database (if using Docker):
pnpm docker:db:init
-
Start the development server:
pnpm dev
This repo is configured to be built with Docker and Docker Compose:
# Create a network, which allows containers to communicate
docker network create app_network
# Build using Docker BuildKit
COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
# Start in detached mode
docker-compose up -dAccess the web application at http://localhost:3000 and the API at http://localhost:5173.
pnpm dev: Start all services in development modepnpm build: Build all packages and applicationspnpm test: Run tests across all packagespnpm lint: Run linting across all packagespnpm format: Format code using Biomepnpm check-types: Run TypeScript type checking
For application-specific commands:
pnpm test:api: Run API testspnpm test:web: Run web application testspnpm storybook: Start Storybook for UI components
pnpm db:migrate: Run database migrationspnpm db:push: Push schema changes to the databasepnpm db:gen: Generate database clientpnpm docker:db:seed: Seed the database with initial data
squared/
├── apps/
│ ├── api/ # Backend API service
│ ├── web/ # Main web application
│ ├── webhooks/ # Go service for webhooks
│ └── www/ # Marketing website
├── packages/ # Shared packages and libraries
├── docker-compose.yml # Docker configuration
├── turbo.json # Turborepo configuration
└── package.json # Root package.jsonThe project follows a monorepo structure using Turborepo for build orchestration and pnpm for package management. Each application can be developed and deployed independently while sharing common packages and configurations.
Please follow the existing code style and patterns when contributing. The project uses Biome for formatting and linting, and Husky for Git hooks to ensure code quality.
[Include license information here]