Skip to content
The simple user story mapping tool
TypeScript Go TSQL HTML CSS Shell Dockerfile
Branch: master
Clone or download
Latest commit bb16c48 Oct 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
build Remove version number from repo Oct 3, 2019
config Update conf.sample.json Sep 10, 2019
lexorank Fix test Oct 8, 2019
migrations Goals can be closed Oct 2, 2019
tmpl Goals can be closed Oct 2, 2019
webapp Goals can be closed Oct 2, 2019
.gitignore remove bindata and .idea files Aug 21, 2019
Dockerfile * Updates README with instructions on how to use docker-compose Aug 21, 2019
LICENSE Add license Aug 22, 2019 Badge Oct 8, 2019
account-api.go Email should be case insensitive Sep 26, 2019
docker-compose.yml Update docker-compose.yml Sep 9, 2019
email.go Add proper headers Sep 19, 2019
go.mod refactor Aug 8, 2019
go.sum refactor Aug 8, 2019
link-api.go fix error with external sharing Aug 20, 2019
main.go Allow custom smtp port Sep 3, 2019
model.go Goals can be closed Oct 2, 2019
mware.go * use secure + httpOnly cookies Aug 21, 2019
repo.go Goals can be closed Oct 2, 2019
response.go refactor Aug 8, 2019
screenshot.png readme Aug 7, 2019
service.go Goals can be closed Oct 2, 2019
shared.go refactor Aug 8, 2019
users-api.go * use secure + httpOnly cookies Aug 21, 2019
workspace-api.go Goals can be closed Oct 2, 2019

Featmap, the simple user story mapping tool

Featmap is a simple user story mapping tool for product managers to build, plan and communicate product backlogs. It is built using React, Typescript and Go. Try it out at

Featmap screenshot

How to run locally

Database requirements

Featmap runs on top of PostgreSQL, so make sure you have it running on your system. At this step, make sure to setup the credentials and database that Featmap will use.


Download the Featmap binary for your respective platform and save it somewhere on your system.


In the directory where you placed the binary, create a file called conf.json.

Here's a sample conf.json

  "appSiteURL": "http://localhost/",
  "dbConnectionString": "postgresql://featmap:featmap@localhost:5432/featmap?sslmode=disable",
  "jwtSecret": "ChangeMeForProduction",
  "port": "80",
  "emailFrom" : "",
  "smtpServer" : "",
  "smtpPort": "587",
  "smtpUser" : "",
  "smtpPass": "some_smtp_password",
  "environment": "development"  
Setting Description
appSiteURL The url to where you will be hosting the app.
dbConnectionString The connection string to the PostgreSQL database that Featmap should connect to.
jwtSecret This setting is used to secure the cookies produced by Featmap. Generate a random string and keep it safe!
port The port that Featmap should run on.
emailFrom The email adress that should be used as sender when sending invitation and password reset mails.
smtpServer SMTP server for sending emails.
smtpPort Optional Will default to port 587 if not specified.
smtpUser SMTP server username.
smtpPass SMTP server password.
environment Optional If set to development, the backend will not serve secure cookies.


Execute the binary.

Serving on port 80

Open a browser to http://localhost and you are ready to go! If Featmap is not running on port 80, use http://localhost:port.



The following must be installed on your system in order to build


Start by cloning the repository.

git clone

Navigate to the repository.

cd featmap

Now let's build it (requires Bash).


Binaries for Linux, Win and Mac are now available in the bin folder.

cd bin
featmap-1.0.3-darwin-amd64  featmap-1.0.3-linux-amd64  featmap-1.0.3-windows-amd64.exe

Running with docker-compose

Clone the repository

git clone

Navigate to the repository.

cd featmap

Now let's build it (requires Bash).

docker-compose build

Create a .env file, and edit any defaults

cp config/env.sample .env

Create a configuration file by copying config/conf.sample.json, and make any appropriate changes from the env file for the database connection string

cp config/conf.sample.json config/conf.json

Startup the services, the app should now be available on the port you defined in your .env file. (Default: 8080)

docker-compose up -d
You can’t perform that action at this time.