Home
Softono
fortyone

fortyone

Open source TypeScript
19
Stars
3
Forks
2
Issues
0
Watchers
1 month
Last Commit

About fortyone

The Open Source Agentic Project Management Platform

Platforms

Web Self-hosted

Languages

TypeScript

FortyOne

License Node.js Version TypeScript Next.js

A modern, open-source web platform for project management and collaboration. FortyOne provides a comprehensive suite of tools for teams to organize, track, and deliver projects efficiently.

A full-stack, open-source platform for project management and collaboration, with a Go API and multi-app web/mobile clients.

✨ Core Features

  • 🎯 Project Management: Organize projects with objectives, key results, and milestones
  • πŸ“‹ Task Tracking: Create, assign, and track tasks with rich text editing
  • πŸ‘₯ Team Collaboration: Real-time collaboration with team members
  • πŸ“Š Analytics: PostHog integration for user analytics and insights
  • πŸ” Authentication: Secure authentication with NextAuth and Google OAuth (projects app)
  • πŸ“± Cross-Platform: Web application with React Native mobile app
  • 🎨 Modern UI: Built with Radix UI, Tailwind CSS, and Framer Motion
  • ⚑ Performance: Optimized with Next.js 15 and React 19
  • πŸ” Search: Built-in search functionality across all content
  • πŸ“š Documentation: Comprehensive documentation site with Fumadocs

πŸ“Έ Screenshots

Core Features

πŸ“‹ List View - Story Management

List View

πŸ“Š Kanban Board - Task Workflow

Kanban Board

🎯 OKR Objectives - Goal Tracking

OKR Objectives

πŸ€– Maya AI Assistant

Maya AI Assistant

πŸš€ Quick Start

# Clone the repository
git clone https://github.com/complexus/fortyone.git
cd fortyone

# Install dependencies
pnpm install

# Set up environment variables
cp apps/landing/.env.example apps/landing/.env
cp apps/projects/.env.example apps/projects/.env
cp apps/mobile/.env.example apps/mobile/.env
cp apps/server/.env.example apps/server/.env
# Edit .env files with your actual values

# Start development server
pnpm dev

Visit the marketing site locally or in production to explore the product. Workspace access and authentication now live in the projects app.

Self Hosting

Use the installer to run FortyOne with Docker Compose (no repo clone required).

Install

  1. Create a folder and enter it (keeps self-hosting files isolated):

    mkdir fortyone-selfhost
    cd fortyone-selfhost
  2. Download the installer (latest release asset):

    curl -fsSL -o setup.sh https://github.com/complexus-tech/fortyone/releases/latest/download/setup.sh
  3. Make it executable:

    chmod +x setup.sh
  4. Run the installer:

    ./setup.sh

πŸ“– Documentation

πŸ—οΈ Architecture

FortyOne is built as a monorepo using Turborepo with the following structure:

fortyone/
β”œβ”€β”€ apps/                    # Applications
β”‚   β”œβ”€β”€ landing/            # Marketing site
β”‚   β”œβ”€β”€ docs/               # Documentation site
β”‚   β”œβ”€β”€ projects/           # Main project management app
β”‚   β”œβ”€β”€ server/             # Go backend API
β”‚   └── mobile/             # React Native mobile app
β”œβ”€β”€ packages/               # Shared packages
β”‚   β”œβ”€β”€ ui/                 # Component library
β”‚   β”œβ”€β”€ lib/                # Shared utilities
β”‚   β”œβ”€β”€ icons/              # Icon library
β”‚   └── [config]/           # Tooling configurations
└── tools/                  # Development tools

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development

# Install dependencies
pnpm install

# Start development
pnpm dev

# Run tests
pnpm test

# Lint code
pnpm lint

πŸ“„ License

This project is licensed under the FortyOne License - see the LICENSE file for details.

The FortyOne License allows free personal and non-commercial use, while requiring commercial licensing for businesses with $200K+ annual revenue.

πŸ“ž Contact & Support

πŸ™ Acknowledgments


Prerequisites

Before setting up the development environment, ensure you have the following installed:

Required Tools

  • Node.js (v18 or higher) - Download here
  • pnpm (v9.3.0 or higher) - Install with npm install -g pnpm
  • Go (v1.23 or higher) - Install Go

Local Development Setup

1. Clone and Install Dependencies

git clone <repository-url>
cd fortyone
pnpm install

2. Start Development Environment

The project includes a unified development command that starts all applications:

pnpm dev

This command will:

  • Start all Next.js applications in development mode
  • Enable hot reloading across all apps

3. Access Applications

Once running, access your applications at:

Code Structure

This is a Turborepo monorepo with the following structure:

fortyone/
β”œβ”€β”€ apps/                    # Applications
β”‚   β”œβ”€β”€ landing/            # Main landing page (localhost:3000)
β”‚   β”œβ”€β”€ docs/               # Documentation site (localhost:3002)
β”‚   └── projects/           # Projects management app (localhost:3001/{workspace})
β”œβ”€β”€ packages/               # Shared packages
β”‚   β”œβ”€β”€ ui/                 # Shared React components
β”‚   β”œβ”€β”€ icons/              # Icon library
β”‚   β”œβ”€β”€ lib/                # Shared utilities and helpers
β”‚   β”œβ”€β”€ tailwind-config/    # Shared Tailwind configuration
β”‚   β”œβ”€β”€ eslint-config-custom/ # ESLint configuration
β”‚   └── tsconfig/           # TypeScript configurations
└── package.json           # Root package.json with scripts

Applications

🏠 Landing App (apps/landing/)

  • Purpose: Main marketing and landing pages
  • Port: 3000
  • Tech Stack: Next.js 15, React 19, Framer Motion, GSAP
  • Features:
    • MDX content support
    • PostHog analytics
    • Cal.com integration

πŸ“š Docs App (apps/docs/)

  • Purpose: Documentation and guides
  • Port: 3002
  • Tech Stack: Next.js 15, Fumadocs
  • Features:
    • MDX-based documentation
    • Built-in search
    • Code syntax highlighting

πŸš€ Projects App (apps/projects/)

  • Purpose: Main application for project management and authentication
  • Port: 3001
  • Tech Stack: Next.js 16, React 19, TanStack Query, Tiptap
  • Features:
    • Rich text editing with Tiptap
    • Drag and drop functionality
    • Real-time collaboration
    • Path-based workspace routing (/[workspaceSlug]/...)
    • Jest testing setup
    • Docker support

Shared Packages

🎨 UI Package (packages/ui/)

Shared React component library built with:

  • Radix UI primitives
  • Tailwind CSS for styling
  • TypeScript for type safety

πŸ”§ Lib Package (packages/lib/)

Shared utilities, helpers, and business logic used across applications.

🎯 Icons Package (packages/icons/)

Centralized icon library for consistent iconography across all apps.

βš™οΈ Configuration Packages

  • tailwind-config: Shared Tailwind CSS configuration
  • eslint-config-custom: Custom ESLint rules and configurations
  • tsconfig: TypeScript configuration presets

Development Workflow

Building Applications

# Build all apps and packages
pnpm build

# Build specific app
pnpm build --filter=landing
pnpm build --filter=docs
pnpm build --filter=projects

Linting and Formatting

# Lint all packages
pnpm lint

# Format code
pnpm format

Testing

# Run tests (projects app has Jest setup)
cd apps/projects
pnpm test

Networking Architecture

Applications run on separate ports for development:

  • localhost:3000 (projects)
  • localhost:3001 (landing)
  • localhost:3002 (docs)

This setup allows for:

  • Clean application separation: Each app runs independently
  • Simplified routing: Path-based workspace navigation within the projects app
  • Easy development: No complex proxy configuration needed

Troubleshooting

Common Issues

Port conflicts:

  • Check if ports 3000, 3001, 3002 are available
  • Kill conflicting processes: lsof -ti:3000 | xargs kill

Dependencies issues:

  • Clear node_modules: rm -rf node_modules && pnpm install
  • Clear Turbo cache: pnpm turbo clean