What I have learnt from a 14 hours project šŸ˜¼

By Jia Ming | September 21, 2018

ā€œHey, letā€™s create a private disposal email server for a short ā€˜hackathonā€™, it will be fun!ā€

And with that, @Eugene and I started developing Inboxkitten, an open-source disposable email service with a simple UI that utilizes Mailgun to receive email.

There are some technologies that we want to try and as it is a ā€œhackathonā€, we intend to use them in Inboxkitten.

What comes out in the 14th hour is a prototype disposable email service made out of 3 components, the API that can be deployed using ExpressJS to interact with Mailgun, a UI that serves as a simple interface for the users using Vue, and to those who can live without UI, a CLI tool that uses go. On top of that, we deploy Inboxkitten onto Firebase as a serverless application. If you want to know more about why and how it is built, you can see the articles here and here.

And this is what I learned.

Proper layout of the product

What I have is just a drawn mockup of the product but what I should do is to add in more detail such as placement of grids that contain the elements. Styling with CSS is not easy, partly due to the fact that I have very little experience in it and those little buggers that do not want to stay in place when you change a class that is irrelevant to them, but through the help my mentors and people from dev.to, I have learned a great deal from this.

The UI you see now on Inboxkitten is the refined work. (The design of the prototype is horrendous, please donā€™t look into my dark past.)

Clear set of goals and prioritization

During the development of Inboxkitten, I only have a big idea of what this is going to be, but I did not have milestones to strive towards. As a result, I found myself deviating from what is needed to be done to complete the prototype.

Less is more

I tend to struggle in keeping my code clean and end up bloating it up due to my tendency to write lots of validation that are similar to one another.

Different means of deployment for the product

With available technologies that I know of, make your application deployment versatile. This allows much more flexibility for your application to be distributed and deployed. As such Inboxkitten can be deployed onto Firebase in 5 steps :D

Thatā€™s all I have, for now, please tell me your thoughts and tips that you have :)

P.S. Inboxkitten is launching on Product Hunt on 22 September 2018!

About Jia Ming