Most early stage startups (bootstrapped, pre-seed or seed) spend money on different aspects. Often times the biggest 2 are:
- AWS Infra cost and maintenance [Tech]
- Third party services for marketing/user-engagement [Business]
Many times while setting up services people tend to use tools they either come across online portals or they have already used in their previous organisations. These tools are generally costly in terms of the resources they use or time they cost to maintain/manage.
I also went through a similar journey, but during that time, I decided to build a lot of tools for similar use cases.
Jenkins is a great CI-CD tool which does the following
- Take backup of prev build for easy revert
- Checkout code from repo
- Build/compile the code
- Deploy on stg/dev
- Run regression (or manual tests on stg/dev)
- Deploy on production (elastic-beanstalk)
and more. But it requires a huge infra (as it runs on tomcat and can't run it on micro or nano instance).
I created a few bash scripts and deployed them (added through AMI) on my dev server, which were doing exactly the same. I collectively call them Jenkins-cli as they were doing the exact same thing.
Techies tend to setup ELK (elastic search, logstash, kibana) to collect logs and setup a query on it to parse errors/exceptions and send alerts on slack/email. This again requires ELK setup which again costs a lot of money and resources.
I created another solution again using bash-script called ExceptionTracker. This script is invoked every few seconds using
greps the mentioned errors from application log files and mails them to desired group.
Today, devices have varying resolutions and for different devices we would want to serve different size images, manually resizing images and uploading them on
S3 backed by
cloudfront takes a lot of time. What if there was some tool which dynamically does this?
If you already have a
php infra (for your blog), you can utilise that or can setup an
aws lambda for this trigger. I created php-image-resizer backed with
virtual hosting on existing infra, which dynamically resizes the image, uploads them on S3 and caches them on cloudfront.
Elastic beanstalk instances when they are behind load-balancer, their IPs are dynamic, to ssh into them is a nightmare as you'll have to login to AWS console to get their public IP first and add inbound policy and then SSH to them.
AWS cli is a very powerful tool, it exposes almost every functionality (and more) you get through AWS console. I created another script which gets the dynamic public IPs of the instances attached to a load balancer of elastic-beanstalk, adds inbound policy for SSH and logs into them.
Customer support through chat on your product has 3 main components:
- Customer Front end
- Backend to handle messages
- Agent dashboard
Setting it up again required either paid 3rd party solutions or building it would have consumed time.
- smooch.io - acquired by Zendesk for Customer front-end
- Webhook integration with slack to handle messages
- Slack creates different channels for different customers as agent dashboards
The chat is still live on my travel blog, if you want to give it a try.
In the early days, for a good footprint, you try to create a blog. You choose Wordpress as it provides a panel for the content creators you hire. But again setting up
php server can cost money and resources.
Jekyll is a static site generator written in Ruby and supported by simple markdown which is far easier to learn/work with. It provides lots of plugin for themes, SEO, redirections, blog-search through lunr.js, social-share, and a lot more. dev.to is also based on jekyll. You can host jekyll blog on github pages, S3, Google hosting for free as jekyll generates static html pages.
Early stage startups generally hire social media managers to post content on their social media pages from time to time to keep their users engaged. While this strategy works, but there are lot of overhead and the entire process is manual.
Zoho social is perhaps the cheapest solution (or free based on your usage), using which you can automate posting on multiple social media channels and websites.
I love to automate a lot of processes and do things frugally. Reach out to me at Linkedin if you have any use-case for which you want a cost effective solution.