Today, we’re doing a deep dive into the practice of “dogfooding” and how Bubble leverages our own no-code platform to improve our product and showcase the versatility of our technology.

What is Dogfooding?

“Dogfooding” is a term that describes a company using its own product, most commonly used in the world of software and technology.

Back in the late 1970s, television commercials for Alpo brand dog food featured spokesperson Lorne Greene claiming that he personally fed his own dogs Alpo. Whether there was any truth to that marketing notwithstanding, the phrase “eating your own dog food” became a metaphor for using the products you are promoting.

Around the same time as Alpo’s TV spots, personal computing technology was starting to take off, and the question of how tech companies interact with their own consumer technology became an ideological focal point. In 1981, Apple Computer issued an internal memo that banned typewriters in their offices. President Michael Scott wrote, “Apple is an innovative company. We must believe and lead in all areas. If word processing is so neat, then let’s all use it!” Microsoft was also reportedly especially aggressive in using its own products, particularly in its research and development groups during the 1980s.

Apple 1981 Internal Memo by Mike Scott on Banning Typewriters
Apple's 1981 internal memo, stating "Effective Immediately!! No more typewriters at Apple"

Since then, the term “dogfooding” has become associated with technology development. But these days, some argue that the meaning of the word has been diluted to merely refer to “kicking the tires” on product testing internally, without much regard to the end user. With so many options for tools and digital products in every industry, how should a modern tech startup use its own product within its organization?

How can a company use dogfooding to its advantage?

Dogfooding as a practice can help a company improve its product – if it’s not done superficially. It’s not the same as Coca Cola banning Pepsi products in the office, or a clothing store requiring its employees to only wear its brand.

At Bubble, we believe that proper dogfooding serves a purpose: it lets you get meaningful internal feedback on your product so you can iterate faster and more effectively, and quickly make your product better. It’s not always practical for every company to use its own product, but there are plenty of areas where dogfooding still can create meaningful advantages.

No-code platforms like Bubble are a perfect example of where dogfooding has multiple benefits. Bubble is a platform that allows people to design, develop, and launch their own web applications, digital startups, and tools for solving their business problems – all without having to write code. No-code tools and visual programming languages have been around for many years, but there are still some doubts about how powerful or comprehensive a no-code platform can be, and whether you can really build something robust or complex without writing code.

Our founders and engineering teams have extensive programming experience, but we often use the Bubble platform to iterate faster and empower our non-engineering team members to create new tools and products themselves.

We believe that you can build truly powerful things without needing to code, so what better way to prove it than by using Bubble ourselves?

Here are some examples of Bubble’s various dogfooding efforts and how it has helped us make our platform better for our users and showcase the power of no-code technology.

Bubble Dogfooding Example 1: Our Website

Bubble’s website, which we call “meta”, is built entirely on the Bubble platform. You can personally edit and explore parts of meta in the Bubble editor, to see just exactly how we used Bubble to create Bubble’s landing pages and different elements. (Note: the full version of meta is extremely large, but we’ll be showing screenshots of some key workflows below.)

How this helped us make our product better: early in Bubble’s development, we knew that we needed to give people the freedom and ability to build multi-page web applications and match the design quality of more “landing page”-centric website-builders like Wix or Squarespace. Building our own site on our platform acted as a “forcing function” to make sure we had all the features and functionality available to make our website competitive with other platforms.

This did mean that, especially in the early days of Bubble’s feature development, our own website was not incredibly pretty. (We won’t dig up those screenshots, but also won’t stop you from finding them.) Dealing with that pain point ourselves was an important motivator, and the return on our investment was that our design team was able to build a fully custom website (without relying on our engineering resources), with even more powerful features that other website builders didn’t have.

Feature: Custom Signup Workflow & User Management System

One example feature that comes with every Bubble app is a built-in user management system, with a pre-made User data type. When you sign up or log in to your Bubble account, you’re going through the exact same workflow that your own users could experience if they signed up for your app. We created this user management system to help us make the user experience easier to customize and allow people to sign in with 3rd party authentication, like Google or Facebook.

What could normally take hours to design in code can be set up in minutes by clicking through to create a series of workflows, like these that run on our site’s login pop-up:

Sign-up workflow for Bubble users in Bubble's editor

Here, you designate what happens when a user clicks the sign-up button, and can customize what information you want them to enter (email and password by default) in the “input” elements when they use the pop-up form that comes in your basic bubble app. (Note: you can also see some of our logic to prevent existing users from signing up twice.)

The workflow for our OAuth buttons, where users can login with Github or Google, is almost the same logic.

Google Sign-up Workflow for users logging in with Gmail
RELATED: Learn how to build your own Social Network with Bubble’s How To Build Series.

As a more advanced version of what you can do in Bubble, we created a custom event (“go to accept”) that triggers and sends people to the “accept” page, where they agree to our terms of use as part of the signup flow.

Terms page where custom event "go to accept" sends users in the sign-up flow

Feature: Marketplace With Up-to-Date, Dynamic Content

Marketplace page for Bubble

Anytime you see a list of existing agencies, templates, plugins, tutorials, or bootcamps on our website, we’re using Bubble’s dynamic repeating groups feature to create a page that pulls its data from our app’s built-in database. All Bubble apps come with their own database where you create and customize your app’s data types to store anything you want, and then show them automatically in parts of your site.

This feature enables our growth and marketing teams to launch new initiatives (like our Bubble Bootcamps) incredibly fast, leaving our engineering team with more time to focus on major infrastructural upgrades.

You can even add forms (with inputs) for users to generate submissions to your database, which are stored in the App data tab of your Bubble app.

Creating a real-time marketplace without coding on other platforms usually requires paying for special e-commerce features or relying on platforms built specifically for your marketplace use case. Bubble lets you customize your web app to showcase whatever you want and market it however you choose without paying for extra features. People have used Bubble to build marketplaces for boat and dock rentals, software subscriptions, music lessons, gardeners, and more.

RELATED: Read about Bubble built apps that are defining their industries and shifting paradigms.

Bubble’s website is one of the larger and more complex apps we’ve created at Bubble using our own platform. But by building on Bubble, we were able to iterate faster on new features and pages, as well as empower our designers to build our site without writing code.

Bubble Dogfooding 2: Our Internal Project Management Tracker

Bubble internal project management tool.
A snapshot of our Internal Bubble app dashboard

Bubble is also great for building custom internal tools for your team that fits your needs. For our team, we created our own Bubble app known as “Internal.” When our Product Manager, Allen Yang, first joined Bubble, he was skeptical of the need for a custom project management tool at the company.

“There are so many project management tools out there,” Allen said, “and the general rule is that you shouldn’t really focus resources on building tools outside of your core product.”

But Allen realized as he began working on Internal that the ability to create a custom tool for managing Bubble in Bubble created two huge benefits:

  1. Ensuring quality: testing out the product internally helped build empathy with users, incentivized catching bugs, and generated new feature ideas.
  2. Faster implementation of new processes: Changes and clarifications to how our engineers approach the status of requests could easily be reflected in our Internal tool.

“Instead of having to mold our process around a third-party tool, Internal is perfectly molded to us, so our tool actually serves us,” Allen explained. “Also, since Internal is built in Bubble, I am perfectly capable of editing it myself, and implementing bug fixes quickly when our team discovers them.”

The Internal Bubble App in the Bubble Editor

How this has helped make our product better: New Bug Resolution Process for Users

Recently, Bubble changed how we handle bug reports from users, with the goal of decreasing resolution time and giving users more transparency into the status of bugs and how they are addressed. This overhaul meant changing the internal product management process as well, but since Internal was a Bubble app, it was easy to change the dashboards, statuses, and layout of the fully customized tool. If we were using a third party product as our project management, it would be harder to make big shifts and experiment with new processes.

Active PQ Tickets page in Bubble Internal.
The new Product Queue (PQ) Ticket board with dynamic data in Internal

Feature: Generate Automatic Email Updates That Sync Across Apps

As a small example of what Bubble can do for a project management tool, our Internal app generates automatic email updates to Internal Followers (Bubble team members) and sometimes External Followers (users) on the status of an issue when it moves through our Product Queue stages.

Bubble workflow for sending email to followers.
Workflow in Internal for sending email to Followers when a Task is updated

We were then able to easily create a Reported bugs page on Bubble’s site where users could check and see the status of their reported bugs (created when you file a bug report in your account) in real time, synced with the status of the bug in our Internal product queue.

Bubble's new Reported Bugs page lets you see any open cases that you submitted.

How this page looks in meta, linked via Bubble's App Connector plugin to send API data from Internal

Because our two apps (Internal and meta) are both Bubble apps, everything is tracked and synced automatically, thanks to Bubble’s API capabilities and our App Connector plugin. This offers greater transparency into the status of our improvements.

Bubble Dogfooding 3: Accounts & Billing

Out of the box, we wanted Bubble to have the ability to integrate with payment systems so that people could build real businesses without needing to code. For our own systems, we’ve built a custom invoicing page to generate invoice receipts to our plugin editors and ecosystem partners. We also use the Stripe integration for handling those payments as well as our users’ credit card information when they sign up for a paid subscription plan.

Invoice in Bubble editor.
Sample Bubble invoice in our editor, with dynamic data fields

Feature: Integration with Stripe

Bubble Stripe integration
When you sign up for a paid plan on Bubble, you use the Stripe integration.

While Bubble is free to use with all its core features, many of our users want to benefit from a custom domain and advanced data analytics. When you enter your credit card into Bubble, you’re using our Stripe integration to send secure payment data and create a subscription. This integration is exactly how many of our users create their own payment systems within their apps.

Example workflow from our account page using our Stripe plugin to collect payment info

You can also check out the video tutorial on how to integrate Stripe into your app, the same way we do in ours.

The Real Reason Why You Should Practice Dogfooding

With these examples from Bubble, hopefully you can see just how committed we are to our platform, and how valuable it is to be able to use your own product and improve it at the same time!

So is dogfooding ever a bad idea? There are times when using your own product exclusively means that you lose out on valuable market research or end up limiting collaboration within your ecosystem. At Bubble, we are actively not exclusionary in our practices; we often use and explore other no-code tools or design software in our processes (for example, this blog is built on Ghost). We also love collaborating with teams to create custom integrations that help all our users, including some recent integrations with Airtable and Figma.

The real benefits of dogfooding are not just in the realm of product improvement. Like the personal computers of the 80s, no-code tools are currently ready to change the way people interact with technology in the future.

For us, we believe no-code tools can live up to the promise of being as powerful and customizable as coded solutions, and we see no better way to prove it than by using Bubble to build Bubble.

To prove that our platform has the capabilities to let people build sophisticated web apps, internal tools, and online marketplaces without code, we build our own site, tools, and marketplaces using Bubble. You can do the same.

Join the no-code movement today.