Planning features

Before you start building, you need to decide what kind of features your app needs. Most app ideas start out as a general vision of what the app is supposed to do. You then take that vision and breaks it into the features needed to make that happen. When you've decided on the features you need, you can start planning how those features should work in an actual interface.

In this article, we'll cover:

What is a feature?

A feature is essentially a distinct function or capability that an app offers. It's what allows users to perform certain tasks or achieve specific outcomes within an app. They can broadly be categorized into two types: general features and specific features.

General features

These are foundational features commonly found in a majority of apps across different genres. They form the basic infrastructure, facilitating the core user interactions.

Typical examples include:

  • User sign-up/sign-in: allow users to create an account and log into the app

  • Reset password: let users reset their password without you as the developer having to intervene

  • Notifications: alert users about updates, messages, or other important information

  • Search bar: let users search for content

General features are what makes your app work, but they're not what sets it apart. When you plan your app, it's a good idea to list these features as well, to make sure you have the full picture of the project ahead.

Specific features

Specific features are unique to the nature and purpose of the app. They are linked closely with the app's core idea. For instance:

  • For a food delivery app, a specific feature might be the ability for users to explore a restaurant's menu and add items to a cart

  • In a language learning app, a custom vocabulary quiz tailored to a user's learning history could be a specific feature.

  • For a budgeting app, a feature that projects future savings based on current spending habits might be included.

The specific features are what sets your app apart from other apps: the reason it's being developed in the first place. If your app exists to solve a problem, the app's features are how the problem will be solved.

Next, let's look at how you can prioritize features by thinking of your app in versions.

Think in versions

It's useful to think of your app in versions, so that you know what exactly you are building. It's very easy to come up with new ideas as you work, and get sidetracked from your initial plan.

By planning out versions, you can stay focused on delivering a core set of features first, and then progressively enhance and expand your app based on feedback and actual user needs.

For example, you could think about your versions as follows:

1. MVP (Minimum Viable Product): This is the most basic version of your app, with only the essential features needed to make it functional. The goal here is to get something to market quickly to test the concept, gather feedback, and identify potential improvements and even .

2. Version 1.0: Once you've validated the idea with your MVP, it's time to refine. This version will have improved UX/UI, and possibly some new features based on the feedback from your MVP. You'll also address any significant bugs or problems identified during the MVP phase.

3. Version 2.0 (and beyond): As your user base grows and you collect more feedback, you'll start to identify more areas for enhancement and expansion. This could involve adding new features, improving existing ones, or expanding into new markets or platforms.

Remember, it's tempting to want to add every feature you can think of from the get-go, but restraint can help you get your app to the market on schedule. Every time a good idea comes up, you can of course take note of it, and plan it into a future version.

Furthermore, taking a step-by-step approach allows you to adapt and pivot based on real-world feedback, rather than assumptions.

Users will often use your app in ways you hadn't anticipated or express needs you hadn't considered. By listening to them and iterating on your product, you increase the chances of your app's success in the long run.

Planning features for your MVP

The first version of an app is often referred to as the Minimum Viable Product (MVP). The goal is to create something functional that effectively addresses the primary need or problem you've identified, without getting bogged down in secondary features or details.

Here's how you can approach this:

  1. Identify the core problem: What primary problem does your app aim to solve? Understanding this will help you prioritize the features that are absolutely necessary for your MVP.

  2. User stories: Draft user stories to envision how users will interact with your app. For example: "As a user, I want to be able to create new contacts so that I can keep track of my clients."

  3. Prioritize features: List all the features you envision for your app and then rank them based on their importance to the core problem. Focus on the top priorities for your MVP.

  4. Sketch or wireframe: Use sketches or wireframes to map out the user journey and interface. This visual aid will help you understand how the features integrate and flow together.

  5. Feedback loop: Share your prioritized feature list and wireframes with potential users, stakeholders, or teammates. Gather feedback and adjust your plan accordingly.

  6. Avoid : It's tempting to add more features as you plan, but stay focused on the primary goal. Additional features can always be added in later versions once the MVP has been tested and validated.

  7. Technical feasibility: If you are unsure whether Bubble is the right platform for your project, you can get in touch with our Success team or ask other users in our active forum. Describe your idea and you can quickly get feedback on whether it's feasible.

  8. Plan for feedback collection: As the purpose of the MVP is to test and validate your idea, have mechanisms in place (like feedback forms, analytics tools, etc.) to gather user feedback once it's launched.

Even if Bubble is a very efficient tool to build in, don't be afraid to leave out features that are not absolutely needed to get your idea validated. You can always add those in later.

The user journey

A user journey represents the series of steps or interactions a user undertakes to achieve a particular goal within your app or website. By mapping out these journeys, you can make sure that you have a plan for how users will reach a specific goal step-by-step.

When designing user journeys, start by envisioning a specific persona. Who is the individual embarking on this journey? Understanding this user's characteristics can guide you in tailoring the experience to suit their needs. For instance, while some users might be tech-savvy, others could benefit from more detailed instructions and a prominent .

Sign-up user journey

For example, you could set up a user journey for signing up to your app. This process can be a critical, as it often represents a user's first interaction with your app.

  1. User persona:

    • Name: Sarah

    • Age: 28

    • Tech-savviness: Moderate

    • Goal: To sign up for the app quickly and without hassles to explore its features.

  2. Entry point:

    Sarah hears about the app in social media and decides to try it out

  3. Opening the app:

    Sarah opens the app and is greeted with a welcome screen showcasing the app's main features.

  4. Call to action:

    After the intro slides, Sarah sees two prominent buttons: "Sign Up" and "Log In."

  5. Sign up option:

    Sarah clicks on "Sign Up" and is presented with options:

    • ","

    • ","

    • "."

  6. Choosing sign-up method:

    Wanting to keep things simple, Sarah chooses "Sign Up with Google."

  7. Permissions:

    A prompt asks Sarah to allow the app to access her Google account info. She confirms.

  8. Additional details:

    The app asks Sarah for a few more details to enhance her experience: her interests and preferences related to the app's features.

  9. Confirmation and feedback:

    Once she provides the details, Sarah gets a success message: "Thank you for signing up, Sarah! Let's get started."

  10. Profile setup (optional step): Sarah is then prompted to complete her profile by adding a profile picture and other optional details.

  11. First use experience: After the onboarding, Sarah is directed to the app's main dashboard or home screen to start exploring.

  12. Follow-up email: Five minutes later, Sarah receives a welcome email reiterating the app's features and providing resources like FAQ and customer support links.

Throughout this journey, keep the following things in mind:

  • Ensure that each step is intuitive and not overwhelming.

  • Provide clear instructions and feedback.

  • If needed, make it easy to ask for help.

  • Keep the number of steps minimal, asking only for necessary information to ensure a high signup rate

While many sign-up processes look very similar, you don't need to see this as a blueprint: you are free to add or remove steps that you think make sense for your app. The idea is to know what the process should look like before you start building. This approach ensures you don't overlook crucial steps, making your development process as efficient as possible.

You can set up the user journey in steps, like we did in the example, but you can also use apps like Miro, Apple Freeform or Lucid to set it up more visually. Sometimes, good old pen and paper works best.

In the next section, we'll explore how you can think about the data that you want to manage in your app.

Last updated

#829: Flusk: more detailed Issue Descriptions

Change request updated