Trades Union Congress (TUC) app built during the 'Building an Equitable Tech Future Accelerator Programme' hosted by ThoughtWorks. The initial goal of the app is to look at improving communication between workers who may wish to talk about their employment with colleagues whilst maintaining anonymity. For example, problems often arise in this ar…
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Trades Union Congress Accelerator App

Build Status [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]

Problem Statement

Flexible work isn't working. Employment in the UK has picked up since the crash. But most new job growth has been in self-employed and casualised jobs, way higher than trends in other recovering economies. We reckon about 1 in 10 workers are currently on zero hours, short hours, temporary agency, or in bogus self-employment.

It’s a hollowing out of our labour market - with good jobs at the top, and worse conditions for those in whole industries - retail, hospitality, distribution, social care. Companies are passing the risks of the business on to workers. At a company level you can aggregate risk, but for individuals that can make lives chaotic.

There are several problems for workers getting together to change anything:

  • Management is also hollowing out and becoming less personal. Decisions that result in sanctions for workers can be presented as machine processes. Shift rostering helps companies run just-in-time operations but doesn’t take workers’ needs into account. If your workplace is a platform, there isn’t a forum to suggest change.
  • The increasing atomisation of the workforce mans staff lose trust in each other. They’ve become competitors for the shift supervisors’ favouritism, and can end up trusting management more than their co-workers.
  • An individual approach to solving problems means many workers already have an experience of disappointment at work, and have become disheartened, believing there’s no point trying to change anything.
  • Over recent years that’s led to a culture of low expectations from work, especially amongst younger workers - there’s a real sense of that’s the way work is. Many people in agency work especially feel replaceable. They don’t expect to stay long in jobs that are outsourced and can change after just months.

Matthew Taylor’s review of modern rights at work for the government found that flexibility was valued by businesses and by many workers, but it was increasingly going too far. There should be a way to encourage more “genuine two-way flexibility”. There are two approaches to fixing this - voluntarist routes with employers improving their systems, and workers strengthening their own bargaining power.

The TUC believes unions are the safest way for people to effect change together. They give people consultation rights and protections from reprisals. They have infrastructure to make things sustainable, and collective power is the only way workers can reset the balance of power and keep it that way. Unions have had wins in campaigning at employers like Sports Direct and Uber. But they’ve found it very hard to organise casualised workers and industries. Currently amongst private sector under 30’s, union membership is at just 6%.

What can technology do to help insecure workers build trust with each other, understand their problems at work, and come together to build power to get a better deal?

The process

Thoughtworks hosted an ideation day to explore a number of problem statements related to ethics and technology. The response to this statement was voted to be taken forward into a 12 week accelerator program, which will develop the idea further. The results of the accelerator program will be presented at a Thoughtworks event in January 2018.

The aim is not to develop a finished product in the short time available, but to explore what could be possible, and document learning for other open source projects to follow. It is hoped we will be able to give practical demonstrations of one or more concepts related to the project.

By linking the experiences and talents of a diverse group of people, we hope to generate ideas that could be useful more widely to other projects in this area, as well as demonstrating the feasibility of work around the core area of the project.

The project overview

The Digital Union will allow workers to share stories about problems they have at work, and find stories from others who are in a similar situation in their industry or employer.

Stories can be submitted easily and anonymously, and will allow commenting and upvoting. This serves several purposes:

  • To generate a search optimised content bank by employer/sector/area/issue that can attract more people to take part.
  • To demonstrate workers are not alone in experiencing these problems, build trust between workers, and counter the information asymetry in the employment relationship.

It will also help users to move on from describing their story to understanding their options for tackling the problems.

The longer term aim is to allow workers in similar situations to come together online, and for grassroots leadership to emerge and campaign (independently or supported by organisers) for change in their workplace.

Key concepts and questions

How can we build an audience?

  • How can stories build up to make useful content to bring in new searches? Pages by company/industry/issue
  • How can we encourage sharing in a way that doesn't expose people? Messaging sharing as well as public sharing

How can we make interaction as easy as possible?

  • How can we let anyone interact? Mobile first. Content first & move people into interaction
  • How can we explain complex situations to triage problems into legal/enforcement/organising routes? Decision trees (eg Twine) could be a start

How can we get people to register and return?

  • How can we service content ongoing with a small central resource? Auto email tailored to your submissions
  • How can we give the social proof that others are real people, without giving real names? Persistent usernames

How can we keep people safe from being sacked or bullied?

  • How can we make accounts that don't inadvertently give the game away? Limit username choice
  • How can we prompt people not to give incriminating info away? Flagging up need for discretion. Automatic suggestions "It looks like you've given your workplace name, did you want to do that?"


Obtaining the app

If you've not already, you can find the app in it's Github Repo. From here you can clone the app to your local environment by opening up your favorite terminal and running the following command:

git clone

This creates a copy of the app on your local and configures remotes for you to push code too and pull code from.

Running the App


From your terminal navigate to the route directory of the project. From there you can run the following command:


This will run the app at localhost:3000.

Developing the App

Feature Branches

Due to the open source nature of the project and the intention to get a number of people adding to the repository over time, feature branches seem like the safest way to develop. Feature branches can lead to a situation where large chunks of code do not get merged to Master early enough leading to some fairly hairy Merge conflicts. Ideally, we would like to avoid this, but there may also be a requirement to prevent certain people from pushing a pulling directly to Master. For this reason, write access to Master has been locked down to Members of the team, thereby forcing such nefarious characters to push to a branch and submit pull requests. If you would like to be added to the team, show your willingness to contribute positive changes and you can be added to the project.

Use of Yarn over NPM

Yarn is a package management tool for JS. Many people think it is an improvement on NPM, resons for this can be found in this blog post. As for me (Joe Wroe), I'm fairly easy, but I'm willing to go with the many. Always happy to hear views if people feel particularly strongly about their package managers!

Pulling and Pushing Code

If you would like to assist in the development of the TUC App, please clone the repo by following the instructions above, then pull the latest code:

git pull

Checkout a new branch to work on. Please, please, use a descriptive title for your branch:

git checkout -b <your-new-descriptive-branch-name>

Code like a ninja...

Add and Commit your work (this is not a git tutorial so use this for help)!

Push your code to your new branch:

git push origin <your-new-descriptive-branch-name>

Using the GitHub GUI, navigate to your branch and submit a pull request.

Code Style Guide

In the interest of maintaining a consistent and readable codebase, the app uses ESLint, which has been configured to examine code based on the Airbnb JavaScript Style Guide. To run the linter, navigate to the project route and use the following command:

make lint

Watch for Code Changes Whilst Running the App

The app makes use of nodemon which reloads the server each time a change is made to the codebase. This allows you to spin up the app in a new tab, develop away and watch your changes without having to restart your server. To run the app using nodemon, navigate to the root of the app and run:

make watch