Convert Figma logo to code with AI

mattermost-community logofocalboard

Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.

21,347
1,890
21,347
739

Top Related Projects

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.

162,288

Visual Studio Code

227,213

The library for web and native user interfaces.

185,446

An Open Source Machine Learning Framework for Everyone

95,657

Deliver web apps with confidence 🚀

170,434

The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

Quick Overview

Focalboard is an open-source, self-hosted project management tool that serves as an alternative to Trello, Notion, and Asana. It offers a customizable workspace for organizing tasks, managing projects, and collaborating with team members through boards, cards, and views.

Pros

  • Self-hosted and open-source, providing full control over data and privacy
  • Customizable and flexible, allowing users to create tailored workflows
  • Integration with Mattermost for enhanced team collaboration
  • Cross-platform support (web, desktop, and mobile)

Cons

  • Relatively new project, may lack some advanced features of established alternatives
  • Smaller community and ecosystem compared to more popular project management tools
  • Self-hosting requires technical knowledge and resources for setup and maintenance
  • Limited third-party integrations compared to commercial alternatives

Getting Started

To get started with Focalboard, follow these steps:

  1. Visit the Focalboard GitHub repository
  2. Choose your preferred installation method:
    • Docker: docker pull mattermost/focalboard
    • Ubuntu: Download and install the latest .deb package
    • macOS/Windows: Download and install the desktop app
  3. For server installation, configure the config.json file
  4. Start the Focalboard server
  5. Access the web interface at http://localhost:8000 (default)
  6. Create an account and start organizing your projects

For detailed instructions, refer to the official documentation.

Competitor Comparisons

freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.

Pros of freeCodeCamp

  • Larger community and more contributors, leading to faster development and issue resolution
  • Comprehensive curriculum covering a wide range of programming topics
  • Extensive documentation and learning resources for users

Cons of freeCodeCamp

  • More complex codebase due to its larger scope, potentially harder for new contributors
  • Heavier resource requirements for running the full platform locally
  • Longer time to review and merge pull requests due to the project's size

Code Comparison

Focalboard (React component):

export default function ViewHeader(props: Props): JSX.Element {
    return (
        <div className='ViewHeader'>
            <div className='viewSelector'>{/* ... */}</div>
            <Editable
                className='title'
                value={view.title}
                placeholderText='Untitled View'
                onChange={onTitleChange}
            />
        </div>
    )
}

freeCodeCamp (Express route):

app.get('/api/users/:id', function(req, res) {
  User.findById(req.params.id, function(err, user) {
    if (err) return res.status(500).send(err);
    if (!user) return res.status(404).send('User not found');
    res.json(user);
  });
});

Both projects use modern JavaScript/TypeScript, but Focalboard focuses on React components for its UI, while freeCodeCamp includes server-side code using Express for its API endpoints.

162,288

Visual Studio Code

Pros of VS Code

  • Extensive ecosystem with a vast library of extensions and themes
  • Robust IntelliSense and debugging capabilities for multiple languages
  • Regular updates and active development from Microsoft

Cons of VS Code

  • Larger resource footprint, potentially slower on older hardware
  • Steeper learning curve for advanced features and customization
  • Privacy concerns due to telemetry and data collection

Code Comparison

VS Code (settings.json):

{
  "editor.fontSize": 14,
  "editor.wordWrap": "on",
  "files.autoSave": "afterDelay",
  "workbench.colorTheme": "Monokai"
}

Focalboard (config.json):

{
  "serverRoot": "http://localhost:8000",
  "port": 8000,
  "dbtype": "sqlite3",
  "dbconfig": "./focalboard.db"
}

VS Code focuses on editor-specific settings, while Focalboard's configuration is more about server and database setup. This reflects their different purposes: VS Code as a code editor and Focalboard as a project management tool.

227,213

The library for web and native user interfaces.

Pros of React

  • Larger community and ecosystem, with extensive third-party libraries and tools
  • More mature and battle-tested in production environments
  • Flexible and can be used for various types of applications (web, mobile, desktop)

Cons of React

  • Steeper learning curve, especially for beginners
  • Requires additional tools and libraries for state management and routing
  • More complex setup and configuration for larger projects

Code Comparison

React:

import React from 'react';

function App() {
  return <h1>Hello, World!</h1>;
}

export default App;

Focalboard:

import {Board} from './board'

export default class BoardPage extends React.Component {
    render() {
        return <Board/>
    }
}

Both examples show a basic component structure, but React's functional component approach is more modern and concise compared to Focalboard's class-based component.

React is a general-purpose UI library, while Focalboard is a project management tool. React's versatility allows it to be used in various applications, whereas Focalboard is more specialized for collaborative work management. React's larger community and ecosystem provide more resources and support, but Focalboard offers a more focused solution for project management needs.

185,446

An Open Source Machine Learning Framework for Everyone

Pros of TensorFlow

  • Extensive machine learning and deep learning capabilities
  • Large, active community with extensive documentation and resources
  • Supports multiple programming languages and platforms

Cons of TensorFlow

  • Steeper learning curve for beginners
  • Can be resource-intensive for complex models
  • Larger codebase and installation size

Code Comparison

TensorFlow example (Python):

import tensorflow as tf

model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation='relu'),
    tf.keras.layers.Dense(10, activation='softmax')
])

Focalboard example (JavaScript):

import { Board } from '@mattermost/focalboard-sdk'

const board = new Board()
board.createCard({
    title: 'New Task',
    properties: { status: 'To Do' }
})

Summary

TensorFlow is a powerful machine learning library with extensive capabilities and community support, while Focalboard is a project management tool focused on task organization and collaboration. TensorFlow offers more advanced features for data analysis and model creation but has a steeper learning curve. Focalboard provides a simpler, more focused approach to project management and task tracking. The code examples highlight the different purposes of these projects, with TensorFlow demonstrating model creation and Focalboard showing task management functionality.

95,657

Deliver web apps with confidence 🚀

Pros of Angular

  • Comprehensive framework with a full ecosystem for building large-scale applications
  • Strong TypeScript integration for improved type safety and tooling
  • Extensive documentation and community support

Cons of Angular

  • Steeper learning curve due to its complexity and size
  • Heavier bundle size compared to more lightweight alternatives
  • Opinionated structure may be restrictive for some developers

Code Comparison

Angular:

@Component({
  selector: 'app-root',
  template: '<h1>{{title}}</h1>'
})
export class AppComponent {
  title = 'Hello, Angular!';
}

Focalboard:

const Board: React.FC = () => {
  return (
    <div className="Board">
      <h1>Hello, Focalboard!</h1>
    </div>
  );
};

Angular uses a decorator-based approach with TypeScript, while Focalboard employs React's functional components. Angular's template syntax is integrated into the component decorator, whereas Focalboard uses JSX within the component function. Both examples demonstrate a simple component rendering a heading, but Angular's approach is more tightly coupled with its framework-specific features.

170,434

The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.

Pros of Bootstrap

  • Extensive documentation and large community support
  • Comprehensive set of pre-built components and utilities
  • Widely adopted and battle-tested in production environments

Cons of Bootstrap

  • Larger file size and potential performance overhead
  • Less flexibility for custom designs without significant overrides
  • Steeper learning curve for advanced customization

Code Comparison

Bootstrap:

<div class="container">
  <div class="row">
    <div class="col-md-4">Column 1</div>
    <div class="col-md-4">Column 2</div>
    <div class="col-md-4">Column 3</div>
  </div>
</div>

Focalboard:

<Board>
  <Card>
    <PropertyMenu>
      <MenuOption>Option 1</MenuOption>
      <MenuOption>Option 2</MenuOption>
    </PropertyMenu>
  </Card>
</Board>

Bootstrap focuses on providing a grid system and pre-styled components, while Focalboard's code is more specific to its project management functionality. Bootstrap's HTML structure is simpler and more familiar to web developers, whereas Focalboard uses custom React components tailored to its use case.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

[!WARNING] Effective September 15th, 2023, Mattermost, Inc. staff are no longer reviewing or merging pull requests for either Focalboard or the Mattermost Boards plugin in this repository (mattermost/focalboard). We encourage the community to fork this repository for continued development and contributions.

The reason behind these changes is to focus Mattermost developer resources on improving the platform’s performance and core features to ensure Mattermost continues being resilient, stable, and best-in-breed for critical operations.

️💡 Learn more

Focalboard

CI Status CodeQL Dev Release Prod Release

Focalboard

Focalboard is an open source, multilingual, self-hosted project management tool that's an alternative to Trello, Notion, and Asana.

It helps define, organize, track and manage work across individuals and teams. Focalboard comes in three editions:

  • Focalboard plugin: The Focalboard plugin integrates into an exsting Mattermost instance to combine project management tools with messaging and collaboration for teams of all sizes.

  • Personal Desktop: A standalone, single-user macOS, Windows, or Linux desktop app for your own todos and personal projects.

  • Personal Server: A standalone, multi-user server for development and personal use.

Try Focalboard

Mattermost Plugin

After downloading and installing the plugin in the System Console, select the menu in the top left corner and select Boards. Access the latest releases of the focalboard plugin by downloading the mattermost-plugin-focalboard.tar.gz file from the releases in this repository: https://github.com/mattermost/focalboard/releases

Personal Desktop (Windows, Mac or Linux Desktop)

Personal Server

Ubuntu: You can download and run the compiled Focalboard Personal Server on Ubuntu by following our latest install guide.

API Docs

Boards API docs can be found over at https://htmlpreview.github.io/?https://github.com/mattermost/focalboard/blob/main/server/swagger/docs/html/index.html

Getting started

Our developer guide has detailed instructions on how to set up your development environment for the Personal Server. You can also join the ~Focalboard community channel to connect with other developers.

Clone mattermost-server into sibling directory.

Create an .env file in the focalboard directory that contains:

EXCLUDE_ENTERPRISE="1"

To build the server:

make prebuild
make

To run the server:

 ./bin/focalboard-server

Then navigate your browser to http://localhost:8000 to access your Focalboard server. The port is configured in config.json.

Once the server is running, you can rebuild just the web app via make webapp in a separate terminal window. Reload your browser to see the changes.

Building and running standalone desktop apps

You can build standalone apps that package the server to run locally against SQLite:

  • Windows:
    • Requires Windows 10, Windows 10 SDK 10.0.19041.0, and .NET 4.8 developer pack
    • Open a git-bash prompt.
    • Run make prebuild
    • The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
    • Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
    • Run make win-wpf-app
    • Run cd win-wpf/msix && focalboard.exe
  • Mac:
    • Requires macOS 11.3+ and Xcode 13.2.1+
    • Run make prebuild
    • The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
    • Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
    • Run make mac-app
    • Run open mac/dist/Focalboard.app
  • Linux:
    • Tested on Ubuntu 18.04
    • Install webgtk dependencies
      • Run sudo apt-get install libgtk-3-dev
      • Run sudo apt-get install libwebkit2gtk-4.0-dev
    • Run make prebuild
    • The above prebuild step needs to be run only when you make changes to or want to install your npm dependencies, etc.
    • Once the prebuild is completed, you can keep repeating the below steps to build the app & see the changes.
    • Run make linux-app
    • Uncompress linux/dist/focalboard-linux.tar.gz to a directory of your choice
    • Run focalboard-app from the directory you have chosen
  • Docker:
    • To run it locally from offical image:
      • docker run -it -p 80:8000 mattermost/focalboard
    • To build it for your current architecture:
      • docker build -f docker/Dockerfile .
    • To build it for a custom architecture (experimental):
      • docker build -f docker/Dockerfile --platform linux/arm64 .

Cross-compilation currently isn't fully supported, so please build on the appropriate platform. Refer to the GitHub Actions workflows (build-mac.yml, build-win.yml, build-ubuntu.yml) for the detailed list of steps on each platform.

Unit testing

Before checking in commits, run make ci, which is similar to the .gitlab-ci.yml workflow and includes:

  • Server unit tests: make server-test
  • Web app ESLint: cd webapp; npm run check
  • Web app unit tests: cd webapp; npm run test
  • Web app UI tests: cd webapp; npm run cypress:ci

Staying informed