With more content and files being created than ever, cloud-based storage solutions like Dropbox and Google Drive have become essential products to both users and businesses.

Throughout this post, we’ll uncover the process behind building a Dropbox clone using Bubble. Building cloud-based storage or a file-sharing site would traditionally require a team of world-class engineers, but tools like Bubble have empowered makers of all backgrounds to build beautiful software.

Whether you’re looking to build your own file-sharing site, or you’re just interested in utilizing some of the core features of Dropbox, this guide will share how to start building the workflows to get started.

The steps to building a Dropbox clone with no code include:

Get Started

Before you start, you’ll need to first register your free Bubble account. Click the button below to get started, then you can follow along as we build our product together.

Register your account on Bubble.

New to Bubble? Follow along on our introduction videos to get familiar with the basics of Bubble.

We also recommend completing our introductory lessons, which will guide you through the step-by-step process of the most common Bubble features. This will help you get a running start when building your Dropbox clone.

When kickstarting your project, you can choose to begin by wireframing your product design, or building the necessary fields within your database.

In this case, we’ll start by using Bubble’s visual design tool to shape the user-interface of our platform. If you’re replicating a version of Dropbox, you’ll need to build the following pages:

  • Home page: Used to create a display a list of folders
  • Folder page: Used to display a list of the files saved within a folder
Dropbox no-code clone user interface design

Configuring your database

Once you’ve mapped out the display of your product, you can focus on creating the necessary data fields to power your application. We’ll rely on these fields to connect the workflows behind your product.

Bubble’s pre-built database makes it easy to create different data types with unique fields. When creating a database, we recommend splitting larger items into separate data types to enhance the speed of your application.

For example, we’ll create two separate data types for each file. One data type will include the basic details of a file (including the name and the folder it’s stored in), while the other data type will include larger data like the content of the file itself.

By creating these as separate data types, it allows us to only load the necessary information when it’s needed, reducing the amount of content the Bubble editor will need to render.

Data type: Folder

Fields:

  • Folder name
Bubble no code Dropbox clone tutorial with user folder data type and fields

Data type: File

Fields:

  • Current-folder - Folder. Note: Creating a field based on a separate data type allows you to seamlessly integrate all of its linked data fields.
  • File-content - File-content
  • File-name
Bubble no code Dropbox clone tutorial with file data type and fields

Data type: File-content

Fields:

  • Content - FIle (file content type, not the file field)
Bubble no code Dropbox clone tutorial with file content data type and fields

Building workflows

Now that you’ve structured both the design and database of your application, it’s time to start stitching everything together, making your app functional.

In Bubble, the main way to do this is with workflows. Each workflow happens when an event occurs (e.g. a user clicks on a button), and then runs a series of “actions” in response (e.g. “sign the user up”, “make a change to the database”, etc.)

Creating a new folder

The first feature we’ll build is a page that allows users to create new storage folders within their account.

On our home page, we’ll need to add both a button and a popup element.

Dropbox clone home page user interface

Popups are an effective way to display content without directing a user away from their current page.

No-code Dropbox clone popup element creating a new folder

On this popup, we’ll add a simple text input field. This field will be used to name the new folder we create.

When the create button on our popup is clicked, we’ll then trigger a new workflow.

Creating a no-code workflow trigger in Bubble

Within this workflow, we’ll select to create a new thing within our database - a new folder.

Creating a new thing within Bubble’s no-code database

Next, we’ll select to create a new folder, then match our text input element with the relevant field in our database.

Bubble Dropbox clone tutorial creating a folder

Now, when this workflow runs, a new folder will be created.

After creating this workflow, we’ll then need to build a function that triggers our popup element to display.

We’ll start by creating a new workflow when the create folder button is clicked.

Building a no-code workflow trigger using Bubble

Within this workflow, we’ll choose to show an element, then select our popup.

Displaying a no-code popup element in a Dropbox clone app

Once we’ve finished building both of these workflows, we’ll need to display all of these new items as a list. This can be possible by using a repeating group element.

Repeating groups are a powerful way to display a list of dynamic content that’s stored within your database.

When using a repeating group, you’ll need to first link the element to a data type within your database. In this instance, you’ll classify the type as a folder.

You’ll also need to set the data source as a list of all the folders in your database where the creator is the current user.

Configuring a Dropbox folder repeating group in Bubble’s no-code platform

Once this data source has been configured, you’re ready to start structuring the dynamic content that will be displayed within this grid. Simply map out the first column with the relevant content you’d like to show, then this powerful element will populate the remaining columns based on your existing data.

Dropbox no-code tutorial displaying dynamic folder data

Sending data between pages

Within a repeating group, it’s also possible to create events inside each individual column. This feature will become useful when building navigation workflows across your platform.

Within each folder, we’ll need to display a list of all the uploaded items on a separate page.

When directing a user to this page, we’ll create a workflow that triggers when a files name is clicked from our home page.

Creating a new no-code workflow trigger

Within this workflow, use a navigation event to send a user to another page.

Building a page navigation event in Bubble’s no-code platform

From here, select the destination page type to be the folder page.

You’ll then need to send additional data to this page so the Bubble editor knows which specific folder to display. The data you’ll need to display is that of the current cell’s folder.

Using Bubble’s no-code workflow to send data between pages

Display dynamic content on a folders page

Once a user has been redirected to a specific folder, you can easily pull this event data from your workflow and display the relevant content.

On the destination page, you’ll need to configure the page type to be the same data type that’s being sent through your workflow.

In this case, you’ll set the folder page to a folder property.

Configuring the type of page content using Bubble’s no-code editor

From here, we can then start adding dynamic elements to display the relevant content for each folder.

Displaying the dynamic content of a no-code Dropbox folder

Creating a new file

Within each folder, we’ll need to build a function that allows users to upload and store new files.

This workflow will follow a similar process to the one we initially used to create a new folder.

Once again, we’ll be using a popup element as a way to seamlessly build this experience.

Bubble no-code Dropbox clone creating a new file

Within this popup, we’ll add a text input field and file uploader element to help create and label the new file.

Once the upload button is clicked, we’ll then create a new workflow. The purpose of this workflow will be to create a new thing.

The first thing we’ll need to create is the file-content, then we’ll attach this to the file itself.

Creating the file content of a no-code Dropbox storage app

Next, we’ll add another step in our workflow, creating anothing new item - the file.

When creating this file, we’ll link the file-content to the relevant data field, as well as classify the files folder as the current pages folder.

Creating a no-code Dropbox file

After building this workflow, we’ll then need to create one last function on our folder page. This next workflow will be used to simply display our file creation popup element.

Building a no-code workflow trigger in Bubble
Displaying a no-code popup element

Once a user has uploaded files within a folder, we’ll need to add a repeating group element to display each of these items.

When adding this repeating group, we’ll configure the content type to be a file, then perform a search for all files where the current folder = the current pages folder.

Configuring the data type within a Dropbox storage folder

Once we’ve configured the data source of this repeating group, we’ll then add the dynamic content elements required for our files.

Using Bubble to display the creation date of a saved Dropbox folder

Viewing a saved file

After creating and displaying a list of files, we’ll now need to build a workflow that allows users to view each of these individual items.

This will be a useful feature if users wish to view images they’ve saved within their drive.

Once again, we’ll be using a popup element to display this content, allowing our users to remain on the same folder page at all times.

When adding this popup, we’ll need to first configure the content type to be a file.

A no-code popup displaying a Dropbox file

Now, we can add dynamic elements that will display the content of each file.

In this case, we’ll use an image element to display the content of an image file that has been uploaded.

Displaying a dynamic Dropbox file on a no-code popup element

As we’re working with a popup element, we’ll then need to return back to our folder page and create a workflow trigger to display this element.

Within our file repeating group, we’ll create a new workflow when the files title is clicked.

Bubble no-code Dropbox clone building a workflow trigger

As this popup will be displaying dynamic content from our database, we’ll first need to select the display data function.

Displaying data within a no-code element

The data we’ll need to display is that of the current cells file.

Sending data between no-code elements using Bubble

Finally, we’ll then show the popup element itself.

Displaying a no-code popup element

Editing a file

Another key feature within Dropbox is the ability to edit the titles of each file after they’ve been created. As per our previous workflows, we’ll be using another popup element for this feature.

When adding this popup, you’ll once again need to configure the type of content to be a file.

Adding a no-code popup to edit a Dropbox file name

On this popup, we’ll include a text input element, then add an initial content field that displays the file name of the current popups file.

Adding initial content to display the name of a no-code Dropbox file

Now, when the update button is clicked, we’ll need to update the name of our current file to the value of the text input field.

Within this workflow, we’ll opt to make changes to a thing.

Making changes to an item in Bubble’s no-code database

The thing we’ll want to change is the current popups file - updating it’s file name to the value of the text field.

Changing the name of a no-code Dropbox clone file

Deleting a file

On the same popup for editing a files name, we’ll also include an additional button that will can used to delete a file.

Building a Bubble no-code workflow to delete an item

Creating this workflow is a simple process. Start by selecting the delete a thing event in the workflow editor.

Deleting a thing within Bubble’s no-code database

The thing we’ll want to delete is the current popups file.

Bubble Dropbox clone app deleting a file

Moving a file between folders

The last core feature we’ll build is a function to move files between folders inside a users account.

Once again, we’ll be adding another popup element for this feature. For this popup element, we’ll also need to configure the data type to be a file.

Building a Dropbox popup to move a file between folders

On this popup, we’ll then add a dropdown selection element. When using this element, we’ll configure the type of choices it displays to be a list of dynamic options.

The type of dynamic content we’ll need it to display will be a list of folders. The source of this data type will search for all of the folders that have been created by the current user.

Next, we’ll set the caption of our selected option to the folders names.

Configuring the dynamic content of a Bubble no-code dropdown menu

Once a user has selected which folder they’d like to move a file between, we’ll then create a new workflow when the move button is clicked.

Within this workflow, we’ll select to make changes to a thing. The thing we’ll want to change is the current popups file, updating it’s current folder to the value selected from the dropdown menu.

Bubble dropbox clone tutorial moving a file between folders

Finally, we’ll then need to create one last workflow that displays this popup when the move button is clicked from our on-page repeating group.

Dropbox no-code clone app building a new workflow

As per our previous workflows, we’ll first need to display the data of the current cells file, then show the popup element itself.

Sending data between data between Bubble no-code elements
Dropbox clone app displaying a popup element

Additional features

Now that you’re familiar with building custom data fields and displaying dynamic content, you can start getting creative with the experiences you build within your product. Additional you can:

  • Create support for nested folders (folders within folders)
  • Add a function for users to share folder permissions
  • Add a feature to download files - we cover this in our How To Build an Unsplash Clone guide.

Privacy & Security

Now that you have the basics of your app, don't forget to start setting some privacy rules and conditions to keep your data secure - starting with roles in the 'Privacy' section of your Data tab. You can also check if you're unintentionally exposing any data with an API checker.

Launch

Hiring a developer or dev team to build this application would cost thousands, if not tens-of-thousands of dollars. As you launch and grow in users, our paid plans allow you to host the product on your own custom domain, starting from as low as $25 per month. Some templates and plugins may cost more, but you can build all the functionality of your Dropbox clone without any additional costs.

Templates

If you didn’t want to build your Dropbox clone from scratch, you can purchase one of the templates made by our community members. Some similar templates include:

Start building

Bubble can help you build a Dropbox or any other product you choose! It’s never been easier to build something incredible without having to code.

Ready to join the no-code movement? Register your free account here and get started today.

If you’d like additional help when building your product, our thriving community forum is a great place to source actionable advice and resources. Any maker is also encouraged to ask questions within the community to help empower their no-code journey.