Focalboard – a self-hosted alternative to Trello, Notion, and Asana
focalboard.com
focalboard.com
Huge thanks to everyone who's sharing feedback and comments. It is super exciting to be trending on HackerNews!
We've just put up a new Wiki page for people to share feature ideas, to join our Discourse forum, and to report bugs: https://github.com/mattermost/focalboard/wiki/Share-your-fee...!
Thank y'all so much for being interested in our project and our space!
We've been working super hard to make something people love, and we'll continue to do so with your input and ideas!
Now asking folks to add `Enhancement:` prefix on tickets, and we can label after
https://github.com/mattermost/focalboard/blob/main/server/se...
Anyone want to offer me odds on the likelihood of a patch removing this spyware getting accepted by the maintainer in this “open source” project?
I was very interested in this. There's no way I'm using it now. I'll never trust anything from Mattermost.
Maybe it still counts as open source but with this, plus their complex licensing, I feel it runs very counter to what the FOSS community actually wants
While I understand the feeling, it's also truth that these kinds of projects appear to receive a lot more criticism than if they went completely closed source which feels a bit unfair.
The option should be to turn it on; automatically "opting users in" (a euphemism; really, it's assuming consent which does not exist) to spyware is at best unethical and in some jurisdictions actually illegal.
Co-opting a user's own hardware and connection to (silently!) spy on them is a total dickhead move whether your product is free software or proprietary.
Notion seems to be focused on wiki and notes, with built in structured data allowing you to setup things like boards and task lists.
This seems to just be the boards and task lists without the free form notes and wiki? It pretty clearly replaces Trello and Asana. Notion seems like a stretch from the 5 minutes I poked around in it.
I have been self hosting Kanboard on my rpi for my own work, and I think that Kanboard still has many 'poweruser' features that Focalboard is missing.
If there is an easy way for me to migrate my Kanboard data over to Focalboard, I would definitely give it a shot as a daily driver.
Added an enhancement ticket for this: https://github.com/mattermost/focalboard/issues/95
Open to other feedback as well! https://github.com/mattermost/focalboard/wiki/Share-your-fee...!
https://github.com/mattermost/focalboard/blob/main/LICENSE.t...
EDIT: Use of dual licensing for open source software was previously discussed here: https://news.ycombinator.com/item?id=24677481
And is it just me or does this part mean absolutely nothing:
> We promise that we will not enforce the copyleft provisions in AGPL v3.0 against you if your application (a) does not link to Focalboard directly, but exclusively uses Focalboard's Admin Tools and Configuration Files, and (b) you have not modified, added to or adapted the source code of Focalboard in a way that results in the creation of a “modified version” or “work based on” Focalboard as these terms are defined in the AGPL v3.0 license.
and does (b) mean that when i host focalboard myself, i would be allowed to hide the fact from my users?
what other benefit is there from not enforcing the AGPL against me?
if the AGPL is in applied to the unmodified version, then my users would get the original source and whether they got it from me or from upstream. so i don't see the benefit of nonenforcement
Does a promise like this actually stand up in a license file / in court? Is this sentence actually meaningful?
Some basic features have been wanted for years in the mattermost CE edition, while being implemented in the EE edition, like the capability to prevent users to kick other users from channels ( https://forum.mattermost.org/t/users-can-kick-other-users-of... ).
Anyways, good on them for sharing the code.
I mean this kind of thing continues to fuel my beliefs that software is going backwards here because frankly, how hard can it be to render some text?
It really depends. If the only thing you care about rendering is US ASCII with a monospace bitmapped font, that's not too hard.
However, a general purpose text renderer will have to handle things like directionality (left to right versus right to left text orientation), wide/half text rendering (for CJK characters), combining characters (for some European, South East Asian languages, and zalgo), line break rules (handling characters like soft hyphens and non breaking spaces), and so on.
On the font rendering side of things, there's kerning (some letters are closer to one another), font ligatures (certain fonts handle things like fi ffi fl ffl differently, not to mention things like hasklig), antialiasing, sub pixel rendering, and the fact that fonts are actually programs running on a stack based virtual machine [0].
That's also ignoring more advanced text rendering features like ruby characters and vertical text rendering. Or that apparently Turkish has different small caps than English ones [1].
In practice, it's probably not the text rendering that's the issue, it's probably just features that are implemented inefficiently.
[0] https://developer.apple.com/fonts/TrueType-Reference-Manual/...
[1] https://docs.microsoft.com/en-us/typography/opentype/spec/tt...
I agree that Notion has big performance problems, and I myself left it for logseq a long time ago just because of the performance issues and the non-flexible architecture overall. But Notion's performance issues are not about rendering text, it's rendering everything but text.
There’s also situations like German, where, until 2017, a single lower case letter could map to two upper-case letters (but they wouldn’t map back to that single lower-case letter):
toUpper(ß) == SS, toLower(S) == s, toLower(SS) == ss, toLower(toUpper(ß)) != ß
(Since 2017 that’s been fixed, although not adopted by every publication or software yet, by using ẞ. toUpper(ß) == ẞ, toLower(ẞ) == ß, toLower(toUpper(ß)) == ẞ)
It's a fun meme to blame Electron for everything but the problems with Notion are obviously with its state and data management. Booting/rendering performance is not the bottleneck here, and having used lightning fast Electron apps, I'm sure it never will be.
Put differently: what measurements do you have of the performance issues of Notion and is Electron performance the root problem of them?
Compare it with the few MBs needed by an equivalent native app with exactly same functionality.
By any standard and by any metric, Electron is bloated. Some applications (like VSCode) can disguise it quite well and give a an acceptable user experience.
Text Rendering, CSS Layouts, Accessibility, being good at cross-platform, Canvas/WebGL and a myriad of other APIs make Electron pretty powerful. I don't know exactly, but I think QT would be it's main competitor when it comes to those features. But QT isn't always that easy to develop with.
Here you are complaining that a "hello world" uses a lot of memory. Yes, that's true, but the use case for Electron is not to display just "hello world", it's to build full, accessible applications in languages who are usually native on the web.
What counts is the final user experience.
There is a level of optimization where that is relevant and it's relevant in a bigger context of responsible resource usage but that's not what we're talking about here.
This was exactly my point as to the "memes" of Electron criticisms, your point is completely off topic but because someone mentioned "Notion" someone has to make your point nearly verbatim every time.
It does not add anything valuable to the discussion. Talking about caching strategies, offline/online functionality and layout thrashing is much, much more interesting here.
Really makes me want a lightweight alternative because I love its editing model.
edit: To clarify, using they mobile app will require paid subscription in all scenarios, I think (not sure, as I don't need that).
Nope. They've said they'll support opening a folder on a phone. Therefore, as long as you sync the folder using some cloud software, the mobile app will work just fine.
But of course, you can pay them for the convenience and they'll sync them for you.
You can try the "Focalboard Personal Desktop" to run locally where your performance won't be affected by other users.
We made it available in Windows Store and Apple AppStore to make it easy to try out.
This is just a v0.6 right now, and we would love bug reports and enhancement ideas.
It's the early days of the project and we are excited to hear input: https://github.com/mattermost/focalboard/issues
I would prefer a simple non-store app, a portable app perhaps. Can I get a classic zip/whatever?
> wget https://releases.mattermost.com/focalboard/0.5.0/focalboard-...
> tar -xvzf focalboard-server-linux-amd64.tar.gz
The file is actually a zip with the tar.gz inside:
focalboard-server-linux-amd64.tar.gz: Zip archive data, at least v2.0 to extract
$ unzip -l focalboard-server-linux-amd64.tar.gz
Archive: focalboard-server-linux-amd64.tar.gz
Length Date Time Name
--------- ---------- ----- ----
12461347 02-02-2021 00:38 focalboard-server-linux-amd64.tar.gz
-------- -------
12461347 1 files
Running tar directly (as written in the instructions) will fail with:
$ tar -tzvf focalboard-server-linux-amd64.tar.gz
tar: invalid magic
tar: short read
It seems like there's something unintentionally producing a zip at the end of the build process.
Hi @kogepathic, sorry about that, adding your report as a ticket here: https://github.com/mattermost/focalboard/issues/94
[EDIT] Someone did it already: https://github.com/PaperStork/focalboard/pull/1/commits/6452...
Anyways, here's a Dockerfile I whipped up that builds and runs a local version configured to use sqlite. No nginx or other stuff, it's just simple localhost config (not production ready):
# Focalboard v0.6.1 requires node 10+
FROM node:15-buster-slim
# Focalboard source to clone.
ARG FOCALBOARD_REPO="https://github.com/mattermost/focalboard.git"
ARG FOCALBOARD_BRANCH="v0.6.1"
# Focalboard v0.6.1 requires make.
RUN apt-get update && apt-get install -y \
gcc \
git \
make \
&& rm -rf /var/lib/apt/lists/*
# Focalboard v0.6.1 requires go 1.15+
COPY --from=golang:1.16-buster /usr/local/go /usr/local/go
ENV PATH="/usr/local/go/bin:$PATH"
# Clone focalboard.
WORKDIR /opt/focalboard
RUN git clone --depth 1 --branch $FOCALBOARD_BRANCH $FOCALBOARD_REPO .
# Build focalboard.
RUN make prebuild \
&& make webapp \
&& make
# Setup a localhost configuration with sqlite.
RUN echo '{\
"serverRoot": "http://localhost:8000",\n\
"port": 8000,\n\
"dbtype": "sqlite3",\n\
"dbconfig": "/data/focalboard.db",\n\
"useSSL": false,\n\
"webpath": "./webapp/pack",\n\
"filespath": "/files",\n\
"telemetry": true,\n\
"session_expire_time": 2592000,\n\
"session_refresh_time": 18000,\n\
"localOnly": false,\n\
"enableLocalMode": true,\n\
"localModeSocketLocation": "/var/tmp/focalboard_local.socket"\n\
}' > /opt/focalboard/config.json
# Uploaded files are stored here.
VOLUME /files
# Sqlite database is stored here.
VOLUME /data
CMD ["/opt/focalboard/bin/focalboard-server"]
It will need a volume at /files for uploaded file storage, and /data for its sqlite database. It exposes a server on port 8000, and an admin API unix socket on /var/tmp/focalboard_local.socket (read their docs for what it's useful for, like resetting passwords). The Dockerfile should be multiarch, but I can only test on amd64. Low spec hardware (raspberry pi) might struggle a bit with the build as it's a non-trivial go server build, and then production webpack bundle... weird failures might be OOM issues.Here's an example of a basic build and run, saving the files and db to a local directory:
<copy Dockerfile contents above to file>
docker build -t focalboard .
docker run --rm -p 8000:8000 -v $PWD/files:/files -v $PWD/data:/data focalboard
Access http://localhost:8000 and it will let you create a new user account.(go wild with the Dockerfile above, I release it in public domain)
make webapp
make
bin/focalboard-serverI am always surprised when people don't mention Open Project. Cos isn't this fragmentation? Open Project...
- Have been there for a long time.
- Good motivated team AFAIK,
- Have forum software.
- Project board
- And even version control!
Everything self hosted or enterprise/cloud for serious stuff or people who want to support them.
Or is there some other reason why openproject is not known? Would love to hear more from the HN community on this.
I mainly used this list https://github.com/awesome-selfhosted/awesome-selfhosted#tas...
I did focus on "Task management/To-do lists", while OpenProject is listed under the "Project Management" section. This is likely why I missed it as I've been looking for something clean and simple (not JIRA) that is more akin to the earlier versions of Trello (rather than the feature bloated whale it has now become).
Looking at it now and to be honest it doesn't quite look like what I'm looking for when looking for a Trello alternative, I just want cards on a board I can move around (with a bit of metadata)
Yeah you won't find that in OpenProject. I mean, they do have kanban boards, but they're in an enterprise version that I'm assuming you're not interested at.
If I may, what did you finally settle on?
Tempted to try building something from scratch since I can always see myself using such a system.
I feel like people may overlook gitlab when evaluating this sort of product because they think of it as "just" a git hosting solution, or because they assume that PM type features might all be paywalled. I'm sure real power users will find it lacking, but for simple workflows it does the job very well, and it ticks so many boxes in one solution.
[0] https://docs.gitlab.com/ee/user/project/issue_board.html
Screenshots look good and it is nice to see that they have figured out a good business model for open source software.
But I don't like to see that 2FA is available only in the paid version still in 2021. Security should be at the core of these kinds of systems.
And I hope that maintaining it is much easier than other Ruby projects that I have encountered in the past. For example, I used to run Redmine project management system, and maintaining it up to date was painful due to fragmentation and differences between Ruby versions. Hopefully Docker and better migration scripts have solved those problems nowadays. Still, even with containerization available, when it comes to self hosted solutions I definitely prefer ones that get compiled to nice binaries. Go, Rust, C, etc.
We weren't aware of Open Project previously, and we're glad to hear about it.
I think you're right, Focalboard is a lot earlier than Open Project, and it doesn't have as many features.
Focalboard was starting during the Mattermost 2020 Hacktoberfest last year: https://mattermost.com/blog/hacktoberfest-2020-recap/
It's in the early stages of development, only v0.6 right now: https://github.com/mattermost/focalboard/blob/main/CHANGELOG...
That said, we're working on it constantly and excited about its future.
Of the features Open Project has now, are there one or two top priorities you'd suggest we consider adding to Focalboard?
We'd love to hear any feedback, feature suggestions or bug reports: https://github.com/mattermost/focalboard/wiki/Share-your-fee...!
I would say, if 2FA is not already available, 2FA! This is the biggest bumper when I have to choose Open project.
Also, Appimage or Flatpak would be great for easier installation for Linux users. Please don't publish ONLY to snapstore if you're planning. Snap might be good for the Mattermost, but the users dread it and each snap adds boot time to the user's machine which is why I stopped using it. Please add a flatpak or appimage if you plan to add it as snap in snapstore! :)
But for me, fragmentation is one of the key benefits of open source. Let thousands of alternatives bloom!
When we blindly copy our own "Hello World" program into a text file nobody bats an eye. When a group of musicians play a metal song on classical instruments it's called a cover. But when someone builds their own database to have some fun and get better in-depth understanding of the tech you will always find someone whining about the not-invented-here-syndrome.
Effort isn't wasted just because it didn't change the world.
I agree that launching similar products has its own downsides, but the upside is that competition acts like evolution - it strengthens the best products, and destroys the weak ones.
I use Jira heavily in different projects and I am baffled at how slow it is. Such a popular product but the user experience due to frontend slowness is terrible.
The problem with project management systems is that you have four important levers:
* configurability (enforcing rules, custom workflows, triggers)
* usability of the UI (speed, simplicity)
* multi-user (including consistency between users)
* scale (number of projects, users, tickets)
You can't have all those at the same time. If you want it to be very configurable, you have to choose whether to prioritise scale (Jira), or usability (Trello, Asana), or drop the multi-user (Excel, Google Sheets).
In my opinion, the problem with most project management systems is the problem with project management management itself - trying to do too many complicated things at the same time. It's pretty easy to manage even a fairly large programme of well-scoped projects on just about any software.
I don't think that speed is dependent on simplicity. One could make an advanced system with all the features that is still optimized for speed. There are other programs that check all the boxed, just not one for project management. I guess everyone is used to it. :)
Trying this project out made it quite slow and not practical, would need a beefier machine / setup. I decided not to invest time in testing it further, but it may work for others.
Would love to hear a better definition of "heavy". :)
The project just looks really cool and I’m definitely going to download and try this.
I just wanted to thank the developers from the bottom of my heart for creating this.
Lastly I’m just curious is it possible to host this on a raspberry pi
We're working super hard to build something that benefits our community.
While there's not formal support for Raspberry Pi right now, we'd welcome a the feature idea, here's more on how to share feedback: https://github.com/mattermost/focalboard/wiki/Share-your-fee...!
I am life-long Windows user and I am yet to meet someone who uses Microsoft App Store. A standalone regular installer is an absolute must.
I mostly dislike the Microsoft Store because it requires an account, even for free downloads. I'm a little loathe to hand Microsoft control over a higher layer of my stack, for fear that they do some kind of "you can't control when you patch" thing like they did with Windows. I've also got a little bit of leftover disdain because it used to basically only have Metro apps, which were awful. That's not a good reason, but I won't lie and say it doesn't exist.
Hi @eps, I've opened a ticket on this: https://github.com/mattermost/focalboard/issues/99
Would you be open to giving a "Thumbs Up" and/or a comment sharing more about the benefits?
Community feedback is super important, and we would love to hear more from you and others
Mattermost (the company behind this) also builds spyware into Mattermost (which is not well documented) and I would be unsurprised to find the same nonsense going on with this.
Is there a term for companies that are "open source in license only" that ignore all of the values of the free software community?
If you download the app store version, and you edit the source code of the downloaded app to, say, scratch an itch, it will not run any longer because the app bundle signature verification will fail. Distributing unmodifiable applications defeats the whole purpose of a free software license.
https://github.com/mattermost/focalboard#building-and-runnin...
It is customary for open source projects that involve complicated or proprietary build processes to provide binaries which one can simply download and run. App Store releases are decidedly not this: they include DRM, and have as a requirement the provision of personal information to (and agreement to an onerous legal contract with) a third party: the app store vendor. You can't get free apps from the mac App Store without giving Apple your phone number and email address.
In the case of interpreted software (such as this) those interpreted (but nonetheless runnable) files should be modifiable. You shouldn't have to set up a toolchain (which on macOS is proprietary and requires its own EULA) to try out this software if you don’t have or want an AppleID.
If you do jump through the App Store hoops, you can't edit the app and then run it.
Thanks for your feedback!
We'd love to hear more. We just setup this page with links on how to get more involved: https://github.com/mattermost/focalboard/wiki/Share-your-fee...!
Requires a sign-up and comes with other cruft unrelated to the actual download.
Is that the etymology? 'Wordboard'?
Linux app seems to be just a local server supposedly with web browser as an interface.
So, Swift would explain that..
Hi @riho, thanks for your feedback. One key piece of feedback we've heard is that other SaaS-based project management tools can run slow.
Because of this, one concept we're testing out is "Focalboard Personal Desktop" where you can run the software locally.
You can download the v0.6 version from the Windows Store or Apple AppStore to try it out. We would love your feedback.
Also, if you're interested in influencing the project, please consider submitting a ticket with type `enhancement` with what you'd like to see: https://github.com/mattermost/focalboard/issues