This post originally appeared on neilpatel.com
If you want to build an app for your business, you face a dilemma.
Should you opt for a traditional centralized app, or turn to a decentralized platform? More importantly, what is the difference between the two and why does it mean for your business?
There’s no straightforward answer to this question; it really depends on your goals and what you need the app to do.
I’ll walk you through the differences between both app types so you can decide how to move forward with your marketing and development goals.
What Is a Centralized App?
Centralized apps are operated and owned by a single company, and they run off a single server, or cluster of servers.
How it works is simple: Someone downloads a copy of the app, and the app works by sending and receiving information from this server.
In other words, the app won’t work unless it’s in contact with this server. If the centralized server crashes, the app stops working across user devices until the problem is fixed.
Examples of centralized apps include:
What Is a Decentralized App?
A decentralized app, or “dApp,” runs on a blockchain network. Rather than downloading an app, the user pays the developer a certain amount of cryptocurrency to download a “smart contract,” or source code.
The code generates a whole new copy of the app on the user’s device, which creates a new “block” in the chain.
Here are some examples of decentralized apps:
Pros and Cons of Centralized Apps
Centralized apps have a few distinct advantages over dApps. As the developer, you retain full control over the app and how it’s used. Centralized apps can generally handle higher traffic volumes.
What’s more, it’s much easier to update a centralized app since the update is sent automatically to the user’s device.
All that said, there are some downsides. If there’s a system error, no one can use the app until the problem is resolved, which might inconvenience your customers. Additionally, you might incur higher cybersecurity costs because you need to protect the main server.
Pros and Cons of Decentralized Apps
Decentralized apps definitely have their advantages, depending on what you need from your app.
First, as there’s no single server, users won’t lose access to the app if your server goes down. Second, since there’s no centralized storage, user data won’t be compromised if there’s a data breach or hacking attempt.
From a marketing perspective, this could incentivize people to choose dApps over centralized apps.
Still, dApps come with a few drawbacks.
Your target audience is smaller, since cryptocurrency and blockchain aren’t “mainstream” technologies yet. What’s more, as dApp transactions are often slower and more expensive than centralized transactions, so you might find it hard to draw people to your dApp in the short term.
Finally, since there’s no centralized rollout, it’s much harder to fix bugs or update the software across user devices.
Should You Create a Centralized or Decentralized App?
Only you can answer this question. However, there are two points to consider when weighing your options.
- How far do you want to expand your app? Decentralized apps are an emerging market with over 70 million users worldwide, but far more users download centralized apps.
- How much control do you want to retain? You can control how people use a centralized app, not a dApp. Depending on your target audience and business goals (e.g., if you’re all about erasing censorship), this might not be a priority.
Don’t rush the decision. Spend time thinking through your options and what your company and customers need in the short and long term. If you need some extra help with your decision-making, check out my consulting services.
Resources for Centralized Apps
There’s a ton of great information out there around how to build a centralized app, but it’s hard to know which ones actually work. Here are my five top app building resources to get you started:
- Builder.ai: Quickly design and create a centralized app without coding knowledge. Simply decide what type of app you want to build, choose your design, and get going.
- Android Developers: This developer page contains resources to help you learn the basics of Android app development, from creating your first centralized app to launching on Google Play.
- Appy Pie: If you plan on building an iPad app, Appy Pie can walk you through the process. From restaurant apps to chat bots, Appy Pie has the tools you need to develop your first app.
- Code With Chris: Want to build a centralized app, but don’t know where to start? Check out this guide. It breaks the entire process down into simple, manageable steps.
- Lifewire: This guide brings together some of the most helpful iPhone and iPad app development tools to help you get started. If you’re looking for Appy Pie alternatives, check out this guide.
Resources for Decentralized Apps
Ready to dive into building your first decentralized app? Read these resources before you get started.
- 101 Blockchains: If you’re confused by dApp development, 101 Blockchains has a detailed user guide you’ll want to read. It’s designed for beginners, and it makes decentralized app development less daunting.
- Ethereum: For dApp developers building on Ethereum, check out this website. You’ll find a whole range of tutorials and guides to walk you through decentralized app building, and a developer community for even more help.
- Solidity: If you want to build on Ethereum, you need to learn Solidity, a coding language. The website itself has some helpful resources to learn the code and understand how to apply it effectively in dApp development.
- Medium: Need help understanding smart contracts? This Medium page brings together some useful courses for learning about smart contracts and dApp creation.
- Dapp University: If you’re struggling to make sense of blockchain, Ethereum, or any other part of dApp development, check out this tutorial from Dapp University. From generating code to Ethereum deployment, this full-length guide has you covered.
How to Build a Centralized App
If you’ve settled on a centralized app for your business, here’s a rundown of the basic steps to create your own.
1. Choose Your Launch Platform
First, decide if you’re building an app for Android or iOS. The process is similar for both, but you need to settle on a platform at the outset. Remember, you can always expand later.
2. Get a Wireframe
A wireframe mockup is just a sketch or skeleton outline of your app. You can use tools like Adobe XD to help with wireframe design. Here’s an example of what it looks like if you’re building a wireframe on Adobe XD:
Once you’ve got a mockup, do some user mapping. All you’re doing is mapping what different actions users will take on the app, such as creating an account, making payment, etc. and what screens they’ll pass through to get there.
3. Test the Framework
Next, get some user feedback on your wireframe and proposed mapping. Is your mockup clunky and disorganized, or is it user-friendly with a clear flow from one screen to the next? Do the colors and text stand out, or is it boring and unengaging?
Reflect on feedback and make changes where appropriate.
4. Design a Prototype
If you use Adobe XD for the wireframe, you can import it straight into Justinmind:
You can also include A/B testing as part of your prototyping, if this works for you.
5. Choose Your App Builder
Now it’s time to actually build your app. If you don’t know how to code, either hire a freelance app designer, consult an agency, or download your own mobile app building tool.
6. Run Final Tests
Before you go live, share your app with your marketing team, colleagues, and even friends and family. Does it work as it should, or have you identified a few bugs? By running final tests, you can make tweaks before the app launches in the real world.
7. Prepare for Launch
8. Release Your App
Create an account on your chosen app store. Complete your app listing using the details you figured out earlier, add some screen captures to show how your app works, and go live.
How to Build a Decentralized App
For those new to dApp development, the easiest way to get started is by building on Ethereum, so that’s what we’ll work through.
- Install a Node Package Manager and Git
First, you need to install what’s called a Node Package Manager. This will allow you to create the open-source codes and files you need to set up a dApp.
You’ll also need Git, which helps you save and track changes you make to your dApp.
- Choose Your Stack
The stack is essentially the Ethereum framework you’ll use to build your dApp. There are a few to choose from, depending on your experience level and development needs. The easiest stack, or development framework, to start with is Truffle.
- Install Truffle
Next, we need to install Truffle. Open your Node Package Manager and type “npm install truffle -g” to do this:
- Open Ganache
Once you’ve installed and launched Truffle, it’s time to start writing your smart contracts, or the codes containing your various dApp commands. On Ethereum, the easiest tool to use for this is Ganache, which is part of the Truffle suite.
Whenever you create a new code, you need to pay a certain amount of “gas,” or cryptocurrency, to the “miners” who process blockchain transactions. The more complex your coding, the more you pay, so keep codes simple where possible. Ethereum has tutorials to help with this.
- Complete Your Front-End Development
- Test Your Smart Contracts
Don’t launch your dApp until it’s tested. Once you launch your codes, you can’t change them, so use the Truffle suite to run some preliminary tests first. The simplest command to run is “$ truffle test,” but just be sure you’re running the right testing environment first.
- Launch the App
Chances are, you made an Initial Coin Offering (IPO) to get your dApp off the ground, so there’s already some buzz generated around your project before it’s ready to launch. However, you still need to dedicate resources to marketing if you want to draw new users, so consider putting a strategy in place before you launch.
Centralized and Decentralized Apps FAQs
Blockchain powers decentralized apps. Blockchain takes the control away from a centralized system and gives more power to users to innovate and enjoy the content.
An app that resides on a single server or group of servers. To work, the app must be connected to the server. Twitter is an example of a centralized network.
dApps, or decentralized apps, run on distributed networks rather than central servers. They have their own currency, so if users want to access premium features, they need to use cryptocurrency.
You can run a token launch, include a subscription element, offer a premium membership tier, or include in-app advertisements. The strategies are similar to how you monetize centralized apps.
Decentralized Versus Centralized Apps: Conclusion
Decentralized or centralized apps: which is better? In reality, neither! It all depends on how much control you want over your app in the long term, the size of your intended audience, and, to some extent, how you wish to market your mobile app.
Now that you understand the pros and cons of each, you should be ready to make a decision and start building your app.
Have you opted for a centralized or a decentralized app? How is it working for you so far? Is there anything you wish you’d known before getting started?