Clients often ask us what tools we use; from the tools used for the technical implementation of the work to the ones we use on the periphery for managing projects or handling billing.
We've put together this quick rundown to help give clients (and anyone who cares) a better understanding of these tools and processes.
GitHub is the central hub for all our code collaboration and storage. Not a single workday goes by where one of us isn't committing code there. It helps us not only with our private, client projects but also with the open source work we do on Craft plugins.
We've also taken to using the issues features within GitHub for managing more of our software projects – in favour of Trello – as it's more closely linked to the code we're working on.
Craft CMS is our go-to content management system for client sites (and our own!). We feel it gives the perfect balance of author experience (the admin is far better and more intuitive than any we tried), developer experience (no more horrible WordPress templates, infinite plugins and dumping all your logic in functions.php!) and management (the product is self-hosted, so we have ultimate control over the environment it lives in).
Alongside React itself, we commonly use these community packages to help see a project through.
Our database driver of choice and in our opinion, the king of object-relational databases. From its incredibly powerful "Views" feature to its blazing fast speed and low resource consumption, it hits all the key requirements for our clients and us.
Although, we must concede Craft runs better on MySQL 😩
Postgraphile & GraphQL
So, you have a front-end and a datastore, how do you bring them all together? That's where Postgraphile comes in. Postgraphile is a Node.js toolset that connects to your PostgreSQL database and exposes a fully-featured GraphQL API.
It doesn't end there, though; it auto-generates documentation, respects database permissions for role-based access, and above all, it's sickeningly fast.
Docker allows us to containerise all our web projects, allowing for rapid deployment into different environments (local → staging → production), provision specific resources on a per-project basis and automate a large chunk of a repetitive workflow.
DigitalOcean is our host of choice and one of the longest-standing members of this list. We find the incredibly simple server setup, rapid-scaling, cost-effective pricing and great global coverage a real winner.
On top of that, there are some fantastically useful features like object storage (Spaces), off-the-shelf load balancers and 1-click apps that really speed up our infrastructure management tasks.
Sketch is our UI design tool of choice and potentially the most contentious entry on this list. These days everyone seems to have an opinion on design tools, we feel they're all excellent and all flawed at the same time – pick what you enjoy using and get on with it.
We love Sketch for the intuitive native GUI, an abundance of useful plugins and sensible licensing.
(Watch this space for pitchforks and updated opinions! 🔥)
Adobe Creative Cloud
Frankly, the design section wouldn't be complete without mention of Adobe's design tools. Although we don't use them as daily drivers like Sketch for UI design, they're still super-handy for photo manipulation in Photoshop, brand design work in Illustrator and a bit of motion graphics in After Effects.
Adobe Stock is also a pretty solid place to get cost-effective royalty-free photography and video, even if they do have a horrible billing system.
InVision is the conduit between the designs we're working on and the client. It helps us present our work and collect feedback all in one easy to use interface. It also has other useful features like; simple prototyping tools for desktop and mobile, design inspect for pulling out attributes for the dev team and mood boards for presenting concepts.
Trello; the project management tool served up by the gods! We were passionate Basecamp users for the first three years of Ether, however as soon as we discovered the seductive power of Trello's kanban UX, we were hooked and haven't looked back since.
We love it so much we're writing a post about how we use it!
Slack has been invaluable for us as a way to communicate with each other. Team chat apps can become a bit of a runaway train when used improperly, but we've been lucky with how and when we use it.
There are no expectations to use it out of hours, and for the most part, we expect replies to be asynchronous, so the stress of a timely response isn't hanging over anyone.
Harvest has been our time-tracking and invoicing platform since day one. Their timer apps and timesheet management are dead-simple and invoicing/budget review is easy.
It integrates with our accounts system (Quickbooks) and allows us to collect payments through Stripe. Nice.
All our non-code files are synced and stored in Dropbox. This makes sharing internally and with clients a breeze. The desktop app is a bit of a hog, but we'd still rather Dropbox have our files than Google.
One of the spin-off services that Dropbox offers that they'll probably axe with no notice at some indiscriminate time in the future. For now, we think it's great. It makes writing beautiful collaborative documents easy and fun.
Obligatory office jukebox service. We all have access to the company account, yet we listing to mostly the same things every day. Picking music is hard.
"Haven't we heard this one?"