Ship Features Fast with Feature Flags
Published at Mar 18 2021

Hey folks,

I'm the creator of Taskord, and I deploy Taskord more than 100 times a day.

In this article, I'll walk you through how to rapidly ship features to production without sacrificing safety. We'll cover feature flags, staff releases, beta rollouts, and error tracking. Let's dive in.

Planning

Suppose we're building a new Explore page at /explore. Start with a plan:

Don't overthink—iterate and refine as you go.

First Pull/Merge Request

Begin by creating a simple page that displays Hello, World! and wire it up to /explore in your routes file.

Push the changes to GitHub or GitLab and open your first pull request.

GitLab Merge Request

Note: Solo developers sometimes push straight to main or master. While convenient, pull requests are recommended.

Development

Once your PR is open, start building the feature. If backend APIs aren't ready, mock JSON responses and share the expected structure with the backend team. This reduces rework and keeps progress unblocked.

Clear communication is key.

Testing

When development is complete, wait for CI to pass. Once green, merge your branch into main and deploy to staging.

Use a checklist to thoroughly test before shipping to production.

CI Pipeline

What is a Feature Flag?

Feature flags (or toggles) let you enable or disable features based on conditions. They give you granular control over releases.

Staff Release

After testing, deploy your updated main branch to production. Announce internally, for example in Slack:

“We've shipped the Explore page to production. Staff can enable it via Staff Ship. Feedback welcome!”

This allows your team to test in production before exposing features to users.

Staff Badge

What is Staff Ship?

Staff Ship is a feature flag limited to admins and moderators. It usually adds an admin or performance bar above the navigation, similar to GitHub.

On Taskord, admins can toggle Staff Ship using the backtick () key or the pb` shortcut.

Taskord's admin bar looks like this:

Staff Bar

GitHub's staff bar (GH Enterprise) looks like this:

GitHub Staff Bar

Beta Release

Once internal testing is solid, roll out the feature gradually to users. Options include:

Beta Badge

Feedback

Collect feedback quickly and prioritize fixes. Iterate fast to improve the experience.

Automatic Error Tracking

Use tools like Sentry to track and resolve errors in real time. This ensures issues are caught and fixed early.

Sentry Errors

General Availability

When confident in stability:

GA Badge

Stay Safe

Happy Shipping!