Current stack for side fun projects

Thought I would update with what my current setup looks like for typical side projects that I code just for fun. Also, to get it out of my system since I can’t code as much at work because I am generally busy clearing roadblocks for my team or iterating on strategy.

For simple enough sites like this site, I generally have given up on blogs, etc. and hosting them since there is always something that keeps getting deprecated, need to keep upgrading to newer frameworks, etc. So, I stick to uploading static html + javascript (JS) without database to AppEngine. No database, no complicated frameworks, no servers to worry about, no scaling issues – keeping it simple!

I like the simplicity of this since AppEngine keeps it always up and generally my site doesn’t get much traffic so it is largely free. I just have to pay for domain. Now, to generate those html and JS, I am still using Pelican site generator which allows me to write these posts in markdown and then it generates html + JS out of that.

I check in all the markdown files in git and have written script that generates site pages using pelican and then copy to “publish” directory and then deploy to AppEngine in one step. So, largely I just keep writing markdown and run a command to add content on my site. For images, I upload to imgur and then link it in markdown.

Now, for complicated setup where I need things like database, queues, scheduling script runs, caches, etc., I have started using:

  • docker for packaging code
  • kubernetes for cluster management and deployment, allows flexibility to be able to move to different servers, scale up, etc.
  • python – since text processing, machine learning, etc. is so easy in it.
  • flask framework – for app framework since it simple
  • angular – once something gets complicated in UI, otherwise stick to flask jinja
  • jupyter for explore and quick prototyping/trying something quickly and interactively. There is online in your browser version by Google called Colaboratory for others starting new. But, I like my local jupyter setup.
  • virtualenv for sandboxing per project
  • pip for dep management of python projects
  • PyCharm IDE for coding if not using vim.
  • git for version control

That’s the update about current setup. I like how pelican survived years with me for simple use cases. Of course for complicated projects, stack will keep changing so I don’t expect above list to remain stable. 🙂

Hope this helps someone who is curious!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: