Books make the world better – through story, research, long-form narrative, education, expert research and literacy. So we work to make our Rails/React web app, Consonance, the best publishing management system in the world. We are eleven years old in 2022, we’ve bootstrapped ourselves to profit – and we’re growing.
We started about eleven years ago, with a system built to meet the needs of a single publisher, and initially grew by working mostly with trade publishers. More recently we have gained a strong customer base of academic and professional publishers, who tend to need management of much more complex data.
Our clients’ users work in editorial, production, marketing, and sales departments of book publishers, and our aim is to let them all work together as a single team. The book publishing domain is very complex, requiring a well structured and complex back end and a well-crafted user interface.
This is not a VC-ish operation, and client fit is much more important to us than taking on new clients for the sake of monthly numbers.
We’ve bootstrapped ourselves to profit, have solid cash reserves, and think of ourselves as a small and stable business offering expertise to our specialist clients. Our client retention and industry reputation are both excellent.
We are advocates of technical literacy in publishing, particularly for junior publishing staff, which leads us to initiatives such as running a Day of Code to empower publishing staff, running Side Project Summer, connecting the worlds of tech and writing with justsimply.dev, and making the silly yet pointed nope.business. Our corporate charity is also one of our clients: the literacy charity BookDash.org. We have two sister book publisher companies, Snowbooks and Make Our Book, and we are an active member of the Ruby community, including publishing an edition of _why’s Poignant Guide for the Brighton Ruby 2020 conf.
Our brand promise is to make publishers better by sharing our expertise, and we communicate our expertise at scale through our app, and through writing and speaking.
Consonance.app is a conventional Ruby on Rails (currently version 220.127.116.11) monolith, which allowed us to rapidly develop to cover a lot of functionality.
Now we’re migrating complex interface requirements to React, with a GraphQL API to also allow clients to develop their own integrations. We’ve been so delighted with the imaginative, brilliant things some of our clients are building with their own data and like the idea of Consonance being “The Most Open Publishing Software”. Here’s more about Consonance’s stack:
Slack for chat, voice and video calls. Basecamp, VSCode, Skylight, Git Kraken, and Freshdesk. The vast majority of our work is on the app with maybe ~10% on implementations and integrations.
We’ve been a team of four or five for the past few years, with a pretty even gender and age balance and a tendency towards full-stack skills. We are re-orienting a little towards specialisation by tier, enabled by the adoption of GraphQL as an API.
Two of the three founders work full time as programmers and business managers and we aim for a collaborative approach.
All staff are full time employees, and we work as a distributed team across the UK. We dropped office life at the beginning of the pandemic, and it’s worked well for us, so we no longer have an office at all. When circumstances return to normal, we’ll have in person meetups.
On a daily basis, we put a “stand-up” onto Basecamp first thing in the morning, have midday meetups on Slack, and collaborate for advice and pair programming as needed.
As a team, we:
We work a four day week (Monday to Thursday), without overtime or out of hours pager duty. We’re flexible on hours - 7.5 working hours a day.
We aim for calm and steady working practices, achieved through things such as de-emphasising delivery dates, very rare meetings, only supporting the latest browser versions, no formal backlog, only building a web app not a mobile app, only hosting on Heroku, minimising custom developments and custom integrations, and doing flexitime depending on how family, work and life best fit together.