DabApps Engineering Labs

Tom Christie

At DabApps, one of the things we enjoy is being able to run a company the way we think it should be run. We want to build a company that's community focused, and have a positive impact that extends beyond simply maximising profit.

From a technology point of view, what that means to us is being fully committed to open source, both in the tools we use, and in the software we build.

With this in mind, we've created a space where we can promote and share the open source work we're doing: DabApps Lab.

We'll be releasing as much work as we can to this space, and we'll only be pushing out well-documented, high-quality tools that we can be proud of.

Here's a few simple rules we try to follow:

1. Be prolific

Wherever possible, the core of our websites are built using decoupled, re-usable components. That gives us the opportunity on nearly every project to release something new and useful to the community.

Pushing lots of our work into the open source sphere helps us keep the quality of our work high, as we know that it'll be critically examined, and makes sure that we're continually building a richer toolkit to work from on future projects.

2. Keep it simple

Django is building a truly great ecosystem of reusable apps, but one problem a lot of apps seem to exhibit is lack of focus. We're often finding apps that look promising, but make too many assumptions about the context in which they'll be used, include features that should be out-of-scope, or are tightly coupled to a particular workflow.

We always try keep the tools we build to a simple, well-defined scope.

3. Documentation first

Writing your documentation before you even start on tests or code forces you to consider the API of your library above all else, and is a really great way to ensure the longevity of your projects. It helps you focus on what really matters to the end-user developer.

Design rather than implementation concerns should generally be the starting point in building reusable components, and writing documentation first helps enforce this discipline.

Where next?

This is just the start. We've got plenty of other work we're planning on open sourcing, and we're looking forward to building a really great set of tools.