focalboard
Focalboard is an open source, self-hosted alternative to Trello, Notion, and Asana.
Top Related Projects
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
Visual Studio Code
The library for web and native user interfaces.
An Open Source Machine Learning Framework for Everyone
Deliver web apps with confidence 🚀
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:
- Visit the Focalboard GitHub repository
- 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
- Docker:
- For server installation, configure the config.json file
- Start the Focalboard server
- Access the web interface at
http://localhost:8000
(default) - 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.
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.
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.
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.
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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
[!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
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)
- Windows: Download from the Windows App Store or download
focalboard-win.zip
from the latest release, unpack, and runFocalboard.exe
. - Mac: Download from the Mac App Store.
- Linux Desktop: Download
focalboard-linux.tar.gz
from the latest release, unpack, and openfocalboard-app
.
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
- 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 .
- To run it locally from offical image:
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
- Changes: See the CHANGELOG for the latest updates
- Bug Reports: File a bug report
- Chat: Join the ~Focalboard community channel
Top Related Projects
freeCodeCamp.org's open-source codebase and curriculum. Learn to code for free.
Visual Studio Code
The library for web and native user interfaces.
An Open Source Machine Learning Framework for Everyone
Deliver web apps with confidence 🚀
The most popular HTML, CSS, and JavaScript framework for developing responsive, mobile first projects on the web.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot