Web 3 Tech Stack: Building from Scratch or Leveraging Existing Tools
Building Product From scratch
To build a product from scratch without the aid of an existing tool bundled with features that will fasten production comes with a price.
And that price is time, and you will take a longer time to make the project go-live because you are starting from the very beginning.
But you will have many benefits from doing that.
The companies that built most of the paid and open source tools used by others benefit money and recognition for the tool.
Pros
Flexibility
Have full control
Flexibility
Building the tool from scratch gives you more flexibility and control over everything. For example, you build your own token using a solidity smart contract. Because you have the codebase, you have access to change any information, function name, and even deployment.
Have full control
you have total control over the whole system because you built it. You make the decisions you want and see them happen within minutes, which can't happen when using a third-party tool because they have processes to follow before accepting your ideas or suggestions.
Cons
Slower development process
The cost of development is high
Constant Security improvement
Community adoption is low
Slower development process
Building from scratch takes time to build a finished product, and you might fail if you have serious competitors; why? Because you need more time to code, do code review, QA, and UAT for just a feature, and this step might be repeated at least two times for a particular feature.
The result will be what you want it to be.
The cost of development is high.
When you decide to build a project or tool from scratch, you have to consider so many factors:
Number of devs
Time
Other resources
Security
QA
The points above will help you know the project completion date. it will be more expensive when you bring in more devs which will be seniors, imagine using only two senior devs to build a product like https://digitalax.gitbook.io/digitalax/,
it will take a longer time, and you must have spent more because they get paid every month, including a subscription to some packages, QA team, and product managers, yet the project is not yet live after 6months.
Before you get to the market, your competitors are already launching other ideas to complement their existing products.
Constant Security improvement
Security checks will come from your end because you handle most parts of the tool/project; you get to constantly check for vulnerabilities and hire a dedicated person for that role because most of the team is busy updating other parts of the project.
Community adoption is low.
Everything happens from scratch when you build a new product without an existing tool, and the main reason is that you are laying a new foundation that people will get used to in the long run.
If you use an existing tool like Moralis to build an NFT Marketplace, their community will quickly embrace it, and they will support your social media post to help you succeed.
Leveraging existing tools & technologies in building an NFT marketplace
Building a new product with an existing technology/tool is a welcome idea for new startups to look to reach the market quickly. It's never a bad idea to develop your product using existing tools.
Example:
When you join a new company, you will notice they will create your personalized emails, add you to either slack, Discord, or teams to enable smooth communication within the company, and use Github or Bitbucket to store their codes. Below are tools
Github
Notion
Confluence
Slack
Email service
Android open-source SDKs
Javascript open-source SDKs
Medium
Github action
Firebase
MongoDB
Etc
Other companies create the above tools to ease your work when starting your new company (paid or not-paid ) or project. You get to set up within minutes and start working; that is not the case when you want to build those tools yourself.
Many companies use open source libraries to build their ideas or paid tools. As a result, most of them are very successful. However, even after generating more funds, they still use other tools and do not build from scratch.
Pros
The benefits of leveraging on existing tools are:
The cost of development is okay
Build faster
Community support
Easy to use
High Security
The cost of development is okay.
Building your project using existing tools might seem too expensive, but it's not because you have to consider so many factors like:
Infrastructure
Tools involved
Number of devs
Time
QA process
Security check
Take a perfect look at the points stated above, you will see that you are spending more, and more time will be invested in it, which might lead to the project's failure.
Build faster
The time it will take you to build your project without using existing tools might lead to failure and disappointment. On the other hand, using existing tools might take 3 - 6 months to build the whole project working fine with few bugs because they have ready-to-use APIs, SDKs to make your work faster. But in the case of building the code from scratch, it will take you more than one year with lots of bugs, and you might be looking to add more devs to push it.
Community support
They have the community set up to answer queries and share ideas, and you have their community to easily share your product for testing or have them advertise it for you as their client.
Easy to use
Most third-party build their project/library to be easy to use, starting from the installation to the usage.
For example, Third web: https://thirdweb.com/portal
has rich filled documentation and support to help you build faster and guide you.
High Security
The companies build their product to be very secure, and if any vulnerabilities are found, the engineers will fix them no matter the time it will take. A good example is the Polygon company, their gas fee price went so high, and now it's better. Why? Because the engineers are steadily ready to fix the issues, which will build more trust for their existing users.
Cons
Company lock-in
No flexibility
No cost control
Company lock-in
When using a third-party solution, you're dependent on their services and must obey their terms and conditions even if they don't favor you. That's why it's common to write core application features from scratch and use third-party solutions only for their non-core elements.
No flexibility
Third-party solutions come with some limitations. You don't have enough room to customize your feature because the tool doesn't support that, and it just becomes too expensive at some point to add that functionality.
Finding the right third-party solution might be impossible if you're looking to build an original / custom feature.
No cost control
Not having control means the provider might increase the application's costs.