Tech prototyping tools and libs for backend web devs 💻🚀🌐
Tags: prototyping, webdev, node, php
Published: 2021-01-05 10:43:25

A comprehensive toolbox is something valuable. Have you ever had a leaking pipe or broken lamp at home and didn't have the right tools to fix it? Adding new tools to your toolbox helps **being prepared for new situations**. It helps to understand other tools and helps you to build up **emergent knowledge**.

When building a prototype, having the right tools and libraries is important. Tight budgets and small iterations demand tools that are made to **boost productivity**. After all, a prototype is made to create insights.

# Prototyping libraries and tools for backend devs
![Backend, internet and frontend as schematic icons, a magnifying glass points to the backend](https://dev-to-uploads.s3.amazonaws.com/i/5r59kbac1vitzcvi4a0b.png)
In this post I want to share my favorite tools for creating backend tech prototypes. When your prototype needs a backend, you need something to get started quickly, store data without much effort and deploy in no time. These tools might help you doing all this.

## [Node](https://nodejs.org/en/) + [express](https://expressjs.com/)
For starters: a true classic. Express is an **unopinionated lightweight server framework** for Node that allows you to build a backend/API with **little effort**.

Most, if not all, cloud hosts can run Node nowadays, so you're free to chose where to host your prototype.

## [PHP](https://www.php.net/) + [Slim](http://www.slimframework.com/)
Some like it, some don't, but **PHP has evolved a lot** in the past few years, especially with the recent release of PHP8. It's performance has improved a lot and PHP runs on virtually every host there is. If you're familiar with PHP, there's no reason to use a different language when building a prototype.

**Slim is a microframework** written in PHP. Its API feels a lot like express and offers basic features with little effort. Nevertheless, you can also build more complex applications with Slim. PHP's builtin web server allows you to test your app locally **without installing Apache or NGINX**.

## [MongoDB](https://www.mongodb.com/) + [mongoose.js](https://mongoosejs.com/)/[MongoDB PHP driver](https://docs.mongodb.com/drivers/php)
Creating an entire relational database structure is often not feasible when working with a small budget. An alternative to relational databases are **document-oriented databases**. Such as MongoDB.

Mongoose.js allows you to tie in **MongoDB with your Node backend**. Define your models as JS objects and read/write to the db with some method calls. Your data is stored in a **very flexible way**, saving you time when changes occur.

## [SQLite](https://www.sqlite.org/)
SQLite runs **everywhere**. Most languages used on the web have some adapter for SQLite. Since all of the data is stored in a single file, you **don't need to install** anything on the server, saving you some valuable time for setup and maintenance.

Using SQLite makes your app **incredibly portable**, creating backups is a matter of copying a single file, default databases can be part of your repository. Since it's a subset of SQL you can later **use the same code** to build up a production-ready database when the prototype starts to evolve into a full-blown product.

## [Heroku](https://www.heroku.com/) and [Netlify](https://www.netlify.com/)
If you've got a backend, you need to deploy it somewhere. If the client doesn't have a dedicated server, some cloud host is the way to go. Heroku and Netlify offer **free versions** that are enough for most prototypes. Their setup is straight-forward and **built do reduce overhead**.

Saving costs at this end of the prototype can help your client to free more budget for **actually developing it**.

# Takeaway thoughts
![Thinking about a path with three little flags in it](https://dev-to-uploads.s3.amazonaws.com/i/um54yyzw617amp77zs3s.png)

It's key to reduce overhead when you're creating a prototype. Most of these tools don't require installing and configuring extra stuff, so as long as you know how to work with the tools, you can get started being productive right away.

In my opinion, one should try to get rid of the need for a backend first, but if you absolutely need one, building it with some of these tools can help a lot!

**Which of these tools will you be using in the future and why? Which ones did you know already but hate using and why?**

---

*I hope you enjoyed reading this article as much as I enjoyed writing it! If so, leave a* ❤️ *or a* 🦄*! I write tech articles in my free time and like to drink coffee every once in a while.*

*If you want to support my efforts, please consider* [*buying me a coffee* ☕](http://buymeacoffee.com/pthormeier) *and* [*follow me on Twitter* 🐦](https://twitter.com/pthormeier)*!*

[![Buy me a coffee button](https://dev-to-uploads.s3.amazonaws.com/i/x55hp6jopwyy161d8e2u.png)](http://buymeacoffee.com/pthormeier)