There are a lot of ways to manage feature flags in products, but at Basedash, one of the easiest ways to manage them is to, well, just use Basedash.
Here's how we set that up:
We have a table in our database called FeatureFlag which lists all the current features that are actively in development. Usually it's just a list of 3 or 4, since these don't stay as feature flags for very long.
To add them to a user, we then have a separate database table called UserFeatureFlag. This one allows us to associate users with the feature we're testing.
Usually, those users are our own product team. We assign ourselves to feature flags for QA, feedback, and to generate some more ideas before it hits prod.
We also add external users that we think might benefit from the feature, or who have opted into being beta testers.
Here's what that table looks like:
And finally, here's the whole flow for adding a user to a feature flag:
I just go to the table, create a new record, choose which feature flag I want to enable, and then select the correct user (in this case myself). Couldn't be easier!
Using product feature flags like this has had a huge impact on how we roll out new features. We've used it to catch performance issues, UI bugs, app crashes, and just get a better feel for how things will work before customers see them. We also ask users if they want to opt-in or not, and if they run into issues, can easily remove them from the beta without affecting their workflow. We try to keep out releases as small as possible, so most every feature we're making is released as a feature flag first.
For now, the workflow is pretty basic. We don't have a great need for complex feature testing, staged roll-outs, in-product A/B testing, but as Basedash (the company) grows and our needs change, Basedash (the product) will stay up-to-date. It removes the need for a separate tool to manage feature flags and helps us build a better product.
Technical database knowledge can be a hurdle. Education can go a long way, but the solution primarily lies in creating user-friendly databases.
A no-code SQL GUI is a user interface that allows you to interact with a database without using code—in the case of most relational databases, this would be Structured Query Language (SQL). No code SQL GUIs are an excellent way for both newbies and SQL veterans to speed up and simplify the process of querying data.
We’re no longer in the times when database manipulation, management, and interpretation were only to be done by admins. It's the 21st century, and both technical and non-technical users should be accommodated when planning database design and access.
An index is a data structure you can add to your SQL database that allows for quick retrieval of certain information. For example, if you have a database of names and phone numbers, an index might be created on the name column so that the database could quickly be searched for a particular student's phone number. You can think of this in the same way that a physical phone book works.
If you're working on a startup, chances are you've got a lot of internal tools that you've built or are in the process of building. And if you're like most startups, those tools are probably a hot mess. What tools will startups use in the next few years? We have a prediction on trends, tech, and emerging ideas in the space.
Refactoring our tables to be virutalized was a huge undertaking, with a huge upside. It sped up table performance by 500% and allowed Basedash to load tables that had previously caused the app to crash.
Internal tooling can be a quick solution to satisfy requirements for colleagues that lack the technical knowledge to build their own custom software. Let's look at how we can beyond simply viewing admin panels, audit logs, and simple CRUD operations -- and into the world of building for the end users that work alongside us each day.
There are many different types of internal tools that you can build. You might want to create a reporting tool for your marketing team, or maybe you need a way to quickly get customer data visible for your customer support team. Or, any number of business apps to help your colleagues manipulate data.
Inheritance is a design pattern commonly used in object-oriented programming which allows you to model entities that inherit certain properties or functions from a parent class. This can be incredibly useful for modeling entities which have multiple types, such as different types of activities to show in a feed.
You've built a solid DB, but your colleagues need to edit data without knowing SQL. Here's how to enabler them to make edits:
How we wrote our own utility with Typescript to take the Date primitive and transform it into a string for use inside of Basedash.
In customer support cases, we use Basedash to help get to the bottom of issues. With a bit of browsing, we can pull up Views, find user details, schema, table information, and take a look to see what the issue is.
A breakdown of the process of how the engineers at Basedash added the feature to allow workspaces to restrict signups based off of user email address.
Using our own product to query our databases speeds up our development time and gives us more opportunities to spot new ideas for features and improve our user's experience.
We recently added an easter egg to Basedash which shows ASCII art of our logo in the browser console. Here's how we we able to style our console.log message with CSS.
I had the opportunity to chat with Liau Jian Jie, CTO & co-founder of Mobbin and talk about their migration from Firebase to SQL on Supabase earlier this year. Mobbin is a tool for designers to see and track UI flows from mobile applications to help with real-world inspiration for their own design work. I used it personally...
There aren’t many designers out there who would advocate for working with less or no information about the product they’re building. We want to know who is using our product, what their motivations are, what kind of frustrations they might have, what work environment are they in, and what other tools...
Recently, we refactored our codebase at Basedash to fetch our server data with React Query and optimize our REST API calls in the process. The transition to React Query allowed for better code readability and the optimization of our API calls resulted in half the number of data fetching API calls...
Startups can use whatever tools they want to do their job. We're not burdened by legacy contracts, enterprise-wide procurements, existing monolithic workflows, or the burden of training hundreds or thousands of staff for a new tool. We can change workflows on a dime. We can try something new...
See how removing barriers can change the way your team works.
No credit card required