The plan and its optimal stack - AquaHub #2
Tags: opensource, career, webdev, nextjs
Published: 2022-10-22 06:00:00


In the last few days I made a rough plan about where I want AquaHub to go. Thought about the project I want to start AquaHub with and made a little roadmap for the next few steps.

- [🌐 Open-Source](#open-source)
- [🏆 Roadmap](#roadmap)
- [⚙️ Tech-Stack](#tech-stack)

## 🌐 Open-Source
In the last blog post I said I will think about if I open source the projects or not. The answer is **YES**! I will put all projects and their source code open-source on [GitHub](https://github.com/AquaHubStudio) for you to look into and maybe also contribute 🤩.

## 🏆 Roadmap
To have something to orient myself by I made the beginning of a roadmap. It shows the first few projects I want to build and build the foundation of AquaHub.

![AquaHub Roadmap](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/swd3bxbo3xtdvkvicbos.png)

**Accounts**
Let me explain what I exactly mean by that because there can be some misunderstandings. I'm sick of giving away personal data and all of a sudden I get personalised ads and because of this there won't be nothing like that at AquaHub. As you read above it's all going to be **open-source**.
It's going to be more of a central profile for each future software and also for me to be able to implement authentication easier.

**Teams**
After I built the accounts system called **AquaProfile** I want to get some order into the accounts. Because of that I build a website where you can create a team and be able to handle all of your members easy, simple and fast.

Now comes the part where I still couldn't agree. I am split between two plans. I would love if some of you would give me your expertise and personal opinion on that. I'm just going to explain each of it quickly.

**Organizations**
A tool for you too manage multiple teams at once. Have the ability to create some sort of a tree structure with your team members. This is probably only necessary for bigger groups or even companies.

***Softwares***
This part is still open but on the roadmap it stands for products that are going to be a part of the AquaHub network and it's image.

## ⚙️ Tech-Stack
To introduce you guys to the projects and also have a solid plan for each of AquaHub's products I built a Tech Stack.

**NextJS**
It's going to be the JavaScript framework for _frontend_ and _backend_. It's based on ReactJS but has many more features built in.

**TypeScript**
To prevent more bugs and increase productivity we want a type-safe environment. TypeScript's going to help us with that 😉.

**Prisma**
To handle our **MariaDB** database we user Prisma as our ORM.

**TailwindCSS**
I'm not a big fan of writing huge CSS files and classes so we will use TailwindCSS which has a huge community and tons of features.

**JestJS**
As our software grows we want to prevent bugs from happening in production so we write tests with JestJS.

**Prettier**
Just a little addition I made a general prettier config file so everyone has the same formatting.

**Docker / Devcontainer**
To help host and develop our softwares we use Docker for final hosting and when developing I built a devcontainer (VSCode feature) that has all needed extensions and configurations in it.

**MariaDB**
A relational database with a big community and good developer experience.

**[next-connect](https://npmjs.com/package/next-connect)**
This is neither a language nor a framework. It's just a small package to have a more ExpressJS like codebase in the backend. I'm not a fan of NextJS backend itself but with this package I love it.

So if you want to contribute to a project here you go. I will also create many issues and a guide how to setup everything. Choose an issue, create a merge request and I will gladly review it 🤩.

**Thanks for reading!**

<a href="https://www.buymeacoffee.com/jannisdev" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-blue.png" alt="Support me" height="20" width="80"></a>