Clojure/ React Hacker. Indie Business Enthusiast. Amateur Mindfulness Seeker & Writer. Other home: krimlabs.com
Image for post
Image for post

On March 4, 2020, I saw that my friend Anand was building an open platform to help an NGO. This group had designed a Food and Health Kit and had established safety protocols. I called him up and found myself at a conference the next day.

15 odd people, whom I had never met before were trying to feed the marginalized. They had already raised Rs. 700,000 (~ $ 9,000) and had partnered with an NGO to handle on-ground distribution.

The optimist in me saw a set of volunteers with good intentions, trying to do their best to support the community. The pessimist in me saw the restrictions due to lock-down and the general fear in the air. …


Image for post
Image for post
Photo by chris panas on Unsplash

Switching Component Libraries is hard

You just found out that a Modal library you use is malicious and can potentially steal user data.

You want to replace this library ASAP. But your app is in prod and has over 100 usage instances. What will you do?

I was in a similar situation, except the library we depended on wasn’t rogue. We needed to change the library because we found a better one.

Updating a library is hard because every library has a different API.

To future proof our applications, we introduced the concept of Component Interfaces. …


Image for post
Image for post

This month’s startup ideas have 3 offerings:

Text to social media ads

Most posters/ads/banners are not creative production, but just an aggregation of stock photos, graphics, and content. This aggregation takes is a set of menial tasks like:

  • Search Stock Photo Sites
  • Search Stock Graphic Sites
  • Create a simple Design

Automate these tasks in an engine that can convert any text into a banner.

Target Audience

Bloggers, Ad Agencies, Maybe People who make presentations.

Implementation

  • A neural network that studies existing ad designs
  • An NLP engine that parses a sentence, fetches relevant images and illustrations
  • A design engine uses the neural net and fetched resources to create a variety of…

This story is available without a paywall at https://krimlabs.com

At the end of 2016, a colleague and I built a sales acceleration platform. It was a bunch of if statements that we tried to sell as AI.

We were both developers and had to learn how to sell in order to survive.

We didn’t survive, but we gained a new perspective.

Image for post
Image for post
Photo by Kaleidico on Unsplash

I used to think of salespeople as charmers and smooth talkers, but under the hood, their skills are exceptional.

Sales reps are excellent listeners

A sales rep’s job is to figure out if the lead needs their product.

The strategy is pretty simple: ask questions that qualify or disqualify leads. …


Image for post
Image for post
Cover Photo by Stoica Ionela on Unsplash

Writing ideas down allow them to rest and germinate. This is an attempt to log my thoughts so I can refer them later. If you are wondering, “Aren’t ideas to be kept secret?”, my personal opinion is no, because ideas are cheap. It’s only the execution that matters.

For this version, I have been thinking about two products. Both of them are in the content creation/ blogging domain.

They are:

JAM Stats

Static Website Analytics Powered by Google Sheets

With the rise of static site publishing and headless CMSes, there is a trend to shift personal blogs and other small sites to JAM.

But the available analytics solutions are not upto the…


Most projects I work on tend to have more than one front-end. Admins have their admin panel, customers access the main site and developers might have some developer status panel.

In this tutorial, we’ll learn how to set up and securely serve multiple sites with Docker. Although targeted at React, this approach can be used to serve anything that exports HTML.

Image for post
Image for post
Base Photo by Gabriel Gurrola on Unsplash

Prerequisites

This tutorial assumes that you are familiar with Docker and docker-compose.

It also assumes that we have two sites: admin-ui and ui. Both these sites reside in a directory called MyApp. And both these sites contain a folder called dist, which contains HTML and other resources that need to be served. …


In part 1 and part 2 of the series, we walked through setting up a Clojure application from scratch. Part two ended with a working GET route.

In this part, we’ll upgrade our developer experience, introduce REPL and implement the POST route.

Image for post
Image for post
Photo by Jose Antonio Gallego Vázquez on Unsplash


Image for post
Image for post
Base Photo by Jose Antonio Gallego Vázquez on Unsplash

You have built a simple app. Now you want it to be a little more useful. You want to ultimately push it to prod right?

In this part, we’d connect to a database and handle CRUD.

What’s up with the Drug Dealer title?

Drug Dealer is a better click bait than a medical store. In the language of the civilized, we are building a medical store system.

In the last part we created a simple app structure to handle a drug store. A drug store had an inventory, each drug had a price, procurement was via offline sources and there was a retail window.

I carefully crafted a situation that had only one domain entity: The drug. Each drug has a price and availability. Procurement is offline, so we don’t care. Sale would just reduce the inventory size. …


Image for post
Image for post
Base Photo by Jose Antonio Gallego Vázquez on Unsplash

Over the last 2 years, Clojure has become my primary language. It compiles to Java & JavaScript and has a few other advantages that I learnt over time.

One of the disadvantage was the steep upfront learning curve. If you are just getting started with Clojure, this (and a series of future posts) might help you.

For today, we’ll be building a Drug Dealer API. Imagine a drug store near you ( don’t let the word dealer delude you):

  • it has an inventory
  • each drug has a price and a stock
  • drugs are sold on a retail window and
  • are procured via offline…


I’ve been working on Clojure projects at Juxt for more than a year now, but have never written about my experiences because:

  • Before writing an article, I research the problems the community face on Reddit, HackerNews, GitHub issues, and Google trends.
Image for post
Image for post
Past 12 months Google Trends for Python (Red) vs Clojure (Blue) vs JavaScript (Yellow)
  • Clojure/Script never seemed to be problematic or in demand
  • Not many people use Clojure/Script as their first language
  • Those who do, do not need any guidance
  • As a blogger, there was no incentive for me to write about it

Clojure has fundamentally changed my thought process. It affected how I write JS and how I code in general. So even though there are no evident marketing/ branding benefits in writing about Clojure, I’m still gonna do it. …

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store