What does HackerNews think of focalboard?

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

Language: TypeScript

#41 in Go
#125 in Hacktoberfest
Yeah except it’s a weird license and it’s losing support:

https://github.com/mattermost/focalboard

It seems like it was a successful test product for Mattermost (more power to them).

Every non-FOSS piece of software I've ever deployed slowly degrades over time as founders get greedy or need to recoup costs from investors. Plex is the canonical example. Linux is the canonical counterexample.

Sorry, I've been burned enough times by this now that if your software is not FOSS, I'm not deploying it. Your take is not a good look.

For an open source alternative, check out Focalboard [0]. Note however it is backed by a for-profit company, but the code is open and can be compiled from source (so you can thus remove all telemetry and paid upsell nonsense).

[0] https://github.com/mattermost/focalboard

Hi, Focalboard team here! Thanks for the feedback! The missing link on the website was an oversight, and it's been fixed there (https://www.focalboard.com/download/personal-edition/desktop...) and in the readme, which is usually most up to date (https://github.com/mattermost/focalboard).

We published to the App Stores to see if that would lower the barrier to adoption. We learned that that while they are convenient for most folks, some can't access them, in particular the Windows Store, due to firewalls, corp policy, etc. So far, this seems to be a bigger problem for Windows than Mac in general.

To be transparent, we want to automate all the App Store publishing. It is currently a semi-manual process. It turns out that the Microsoft Store process is easiest (mostly uploading an MSIX file, which they sign for you). Signing for the Mac App Store was brittle for us, and became more manual. Notarizing for standalone builds has additional steps on top of that. Hopefully, Xcode Cloud will eventually solve all these problems.

BTW, another easier way to build might be to fork and use the GitHub actions:

1. Fork the Focalboard repo

2. Go to the Prod-Release Action in your fork (https://github.com/YOURID/focalboard/actions/workflows/prod-...)

3. Enable it if needed (the first time)

4. Run

5. Download the generated packages

I haven't seen this widely used, but might be a great way to try out new projects initially.

Yeah the server install instructions are a bit out of date it seems. It doesn't mention you need to run the 'make webapp' task to run webpack and generate the bundled HTML page. It also has you download an old version (0.5) and the docs on the config don't match what's in the repo now (with version 0.6.1).

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:

  
  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)

It's easy to miss that this is by the same people making Mattermost, the open-source self-hosted slack alternative you might have heard of.

https://github.com/mattermost/focalboard