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:
- Define how the UI should look.
- Check if all UI components are available.
- Identify required models and database tables.
- List possible blockers.
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.
Note: Solo developers sometimes push straight to
main
ormaster
. 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.
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.
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:
GitHub's staff bar (GH Enterprise) looks like this:
Beta Release
Once internal testing is solid, roll out the feature gradually to users. Options include:
- Age-based targeting
- Percentage rollouts (e.g., 10%, then 50%)
- Users with a “beta” flag
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.
General Availability
When confident in stability:
- Remove feature flags.
- Keep monitoring error reports for a few days post-launch.
Stay Safe
- Always be ready to roll back changes if needed.
- Commit in small, incremental steps.
Happy Shipping!