Heads Up
Because there's a 3-5 minute limit requirement for the video, I decided to make a series and put it in a YouTube playlist. The video that's part of this project is just the first one (Part 1). The good thing about this setup is that I can add more content down the line easily.
Inspiration
The core inspiration behind this project is to make the lives of other developers who are onboarding to the Bunnyshell platform easier. When I saw the Bunnyshell Hackathon, I knew I had to participate and create something useful for other developers. I also loved the idea of creating a template that would be used by other developers to create their own templates. Breaking complex systems into smaller chunks and making them reusable is what I'm very good at, so this was a perfect fit for me.
What it does
This project contains a collection of templates that can be used to jumpstart your work on the Bunnyshell platform, particularly if you're using any of the following technologies:
Frontend
Backend
- Rust (Actix Web Framework)
- Golang (Fiber Web Framework)
- Deno (Oak Web Framework)
- NodeJS (Xpresser Web Framework)
Database
- MongoDB
- PostgreSQL
Search Engine
- Meilisearch
Each of the full-stack templates includes frontend, backend, and database configurations along with remote development configurations. This setup allows you to develop your application remotely on the Bunnyshell platform, right out of the box.
How I built it
First, I tried out at least 10 different default templates from the Bunnyshell platform to really understand how they functioned. I was drawn to the idea of deploying a full-stack application with just a single click. As the creator of a Node.js framework, XpresserJs, I was eager to see it perform on the Bunnyshell platform.
With a few adjustments, I managed to get it running smoothly, which was really satisfying. I then realized that many of my favorite technologies weren't available on the platform. So, I decided to create templates for them. To maintain consistency with the existing templates, I chose to build a Book App similar to the ones in the default templates, but using different technologies.
Being a big fan of VueJS, I opted to create a VueJS Books App on the client side, using Vite as the bundler and Typescript as the language. Next, I developed a backend using Fiber (Golang) and MongoDB for the database. Everything worked perfectly, and I could deploy it on the Bunnyshell platform. From there, creating the other templates followed the same pattern.
After building them all, I tested the remote development feature for all the Book App templates, tweaking and refining them until they all functioned flawlessly.
Challenges I Ran Into
While testing the remote development feature for the Golang template, I faced a few challenges. The go binary wasn't available in the remote development environment, though it was in the production environment. This led me to add an instruction on how to export the correct path to the go binary in the remote development environment.
Also, while testing the remote development feature for the Rust template, I encountered a few challenges. The Rust cargo process required more memory than was available in the remote development environment. It took me a while to figure out how to increase the memory limit for my container.
Another challenge I encountered was during the making of the video tutorial. I had to record the video multiple times, as I had a cold at the time and my voice wasn't coming through clearly.
Accomplishments I'm Proud Of
I'm really proud of being able to complete the video despite having a cold at the time. It was a great feeling to push through and get it done. Another big accomplishment for me was successfully running my framework, XpresserJs, on the Bunnyshell platform. Lastly, simply being able to participate in the Bunnyshell Hackathon and create something that I believe will be useful to other developers is an achievement that I take great pride in.
What I Learned
This project gave me new insights into how Docker works and how to use it to create templates for the Bunnyshell platform. It also showed me how different technologies can be deployed with just a single click.
What's Next for Multiple Book App Stack Bunnyshell Template
I would love to keep adding more stacks and technologies to this template when I have the time. Also, I plan to maintain it as long as possible. Additionally, when time permits, I intend to create detailed video documentation for each template, including the remote development features.
Built With
- actix
- deno
- fiber
- golang
- meilisearch
- mongodb
- node.js
- nuxt
- oak
- postgresql
- rust
- vuejs
- xpresserjs
Log in or sign up for Devpost to join the conversation.