Skip to content

An open source platform that brings transparency to workplace compensation at your organization. Share and compare salaries anonymously within your organization to understand your market value.

License

Notifications You must be signed in to change notification settings

maybeanerd/celeryband

Repository files navigation

CeleryBand

CeleryBand is an open source platform that brings transparency to workplace compensation at your organization. Share and compare salaries anonymously within your organization to understand your market value and advocate for fair pay.

It is built to be selfhosted by anyone, but you can also reach out if you e.g. don't have people skilled in hosting software within your group or company. We might be able to add a new server for you on the *.celery.band domain hosted in Germany.

There's a public, official test server for you to try it out on https://test.celery.band/ which allows signups from gmail addresses.

Features

Salary Band Visualizations

Get an intuitive overview of your compensation compared to other employees across your entire organization, or scoped to your role and department.

Screenshot 2025-05-13 at 20 50 11

The bands are scaled to be relative to eachother, which helps compare a role across multiple seniority levels and see what future potential one has.

Screenshot 2025-05-13 at 20 49 52

Time Model Normalization

You can choose to view statistics normalized to the hours per week you work for, or in absolute numbers. This helps to give perspective and put things into context better.

image

Truly Anonymous

When signing up, your email is securely hashed and stored in a way that nobody can (reasonably) link your account to your identity.

Statistics are only provided when their aggregate consists of at least 3 distinct datapoints, which ensures only aggregate data can be seen by end users.

image

Own Your Data

You can update, change, or delete all your data at any point in time. As long as you have control of your email, you have full control over the account. No data is kept after you delete your account, and statistics will not include your salary anymore.

image

Customizable

You (as the provider of the server) can configure what seniority levels, roles and departments are available to users. The currency symbol is also fully customizable, as the statistics don't care about conversion - all salaries share the same currency.

image

Running Your Own Server

You can run CeleryBand in a few ways. We provide a container image as part of this repository which can be run using docker, kubernetes, or any other container runtime.

It is a monolithic image that, for simplicity's sake, includes frontend, backend and database all in one.

You can check out the example docker compose file or the test deployment's helm chart for some example configurations to follow along.

Configuration is done using the following environment variables:

# A random password with length of at least 32 to enable authentification within the service
NUXT_SESSION_PASSWORD=PLEASE_PROVIDE_A_SECURE_SECRET

# A random password with length of at least 32 to securely hash the emails
OBFUSCATION_SALT=PLEASE_PROVIDE_A_SECURE_SALT

# A comma seperated list of the roles you want to allow users to choose from
ROLES=software engineer,product manager,designer,director

# A comma seperated list of the seniority levels you want to allow users to choose from
SENIORITY_LEVELS=junior,professional,senior,staff,principal

# A comma seperated list of the departments you want to allow users to choose from
DEPARTMENTS=gamma,beta,omega

# The currency you use for salaries. It's non functional, a label
CURRENCY=

# The domain of your organization. This is used as validation for allowed emails
ACCEPTED_DOMAIN=your-company.com

# The domain you host your server on. It will be used e.g. in the login emails to generate links
SERVER_URL=https://your-celeryband.com

# A dislaimer text that will be added to the footer of all pages. By default, it's empty.
NUXT_PUBLIC_DISCLAIMER=This is a legal disclaimer that this platform is pretty cool.

# Your email servers credentials which will be used to send login emails
SMTP_HOST=dummy.smtp.com
SMTP_PORT=587
SMTP_USERNAME=dummyUser
SMTP_PASSWORD=dummyPassword

Development

Setup

Make sure to install the dependencies:

nvm i
corepack enable pnpm
pnpm i

Development Server

Start the development server on http://localhost:3000:

pnpm dev

Production

Build the application for production:

pnpm  build

Locally preview production build:

pnpm  preview

About

An open source platform that brings transparency to workplace compensation at your organization. Share and compare salaries anonymously within your organization to understand your market value.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 

Contributors 2

  •  
  •  

Languages