Several months ago I started using hellobar.com to notify my blog visitors about Udemy sales and discounts. Everything was more or less OK, except an ability to set up a schedule to show\hide a notification bar or to manage everything via API. I spent too much time to create new notification on each Udemy promo campaign. I’ve tried to ask support for any plans for that service, but nobody answered me. Well, we’re engineers and could do everything ourselves, so I copied this service during 2 evenings:
I’m using Google Cloud Platform for this WordPress blog. So, I decided to take DataStore to persist notifications objects and launch additional AppEngine Flexible service (for backend operations) to achieve maximum scalability at the end.
I had no time to write a lot of code, so, I decided to use Angular + Bootstrap frameworks for Frontend part of admin panel and attach Angular to my WP blog.
For notification bar implementation I took ngNotify as it is supporting HTML elements inside messages and it was really simple to integrate it with my website with minimum efforts on design. Wiggle button effect has been done using pure CSS by that simple example. Most of the time has been spent of cause on CSS and wiggle effect implementation. Many thanks to OpenSource world, which is giving us a tons of existing solutions!
Backend part has been implemented in a simple Python service using Flask framework which was deployed to Google App Engine. Full CI/CD process for all of my blog services is supported by Jenkins which is launched inside Docker container. Build agents, which are implementing Jenkins Pipeline (checkout, build, test and deploying all the code) are based on google/cloud-sdk Docker image.
Right now I understand, that it would be much better to implement the same things using pure Google Cloud Functions or AWS Lambda + API Gateway. Maybe will do it later after implementing iOS app for managing blog visitors notifications schedule. Want to touch a mobile development and Google Firebase a little bit to get some hands-on experience.
All in all, we have pretty much everything nowadays to implement what ever you want in a short period of time. If somebody is not responding to our requests, we’re ready to recreate any service from scratch using Google Cloud and AWS, who gives us absolutely everything we need to create MVPs and automate routine tasks. Now a can spend a couple of minutes a month to update a schedule to make additional sales 🙂