Arpit Mohan: Hey, everybody. This is Arpit. I'm the CTO at Appsmith, which is a very popular open source, low- code project, and this is my journey from creating SaaS startups to open source projects now.
Shane McAllister: This is the MongoDB podcast. My name is Shane McAllister and welcome to the show. We're grateful to have you join us for yet another episode. The last couple of years, the low- code/ no- code movement has been gaining traction, and in this episode, we talk with Appsmith, a low- code/ no- code dashboard and admin panel builder tool for your data, wherever that may be, including MongoDB amongst others. In this conversation with Mike Lynn, Arpit Mohan, Appsmith's CTO, talks about his journey into engineering and programming, from dismantling home electronics, building soccer- playing robots, and ultimately about founding Appsmith. Appsmith is open source, sharing the same roots as MongoDB and can be used on- prem or in the cloud. Arpit talks about why Appsmith went down the open source route in the beginning and the benefits that that brings and talks to us to their current implementation of Appsmith and their future roadmap. Let's get started.
Mike Lynn: Arpit, welcome to the podcast. It's great to have you on the show. How are you doing today?
Arpit Mohan: I'm doing really, really well, Michael. Thank you so much for having me on today.
Mike Lynn: Yeah. Where are you joining me from?
Arpit Mohan: I am based out of India's Silicon Valley, Bangalore.
Mike Lynn: Bangalore. Okay. Great. Well, today we're going to talk a little bit about your background and then get into a discussion about Appsmith, a low- code/ no- code development platform that you helped create. So, would you help the listeners understand a little bit more about yourself? Tell the folks who you are and what you do.
Arpit Mohan: So, I am the CTO and the chief maintainer of Appsmith, which is as you said, a low- code open source project. It's a fantastic tool to build primarily internal applications, especially if you want to build admin panels, dashboards, or operational dashboards on top of that top directly to your database or directly to your API. So you don't have to muck around with HTML, CSS or React that much. You can just drag and drop UI components, connect them to your database in your private VPC behind your own firewalls and just get up and running really, really quickly. So that's the project that I lead today and I'm very, very excited to talk a little bit more about how we got here.
Mike Lynn: Yeah, I would love to talk a little bit more about how you created Appsmith, but let's back it up just a bit. I understand you have quite an interesting background starting from early childhood and your curious mind. How did you get interested in technology from very early on?
Arpit Mohan: So I've been interested in technology since whenever I can remember. I was, I think, inspired from my dad, who was in my mind at least, quote- unquote, a real engineer. He moved around with tools with spanners and hammers. He was a mechanical engineer. Growing up, I always just wanted to be like him. So I would take his screwdrivers and I would unscrew everything around the house right from the VCR, the television. I'm going to date myself a little bit. I unscrewed the Tamagotchi, which for people who are too young to remember, it was a little virtual pet that you kept on your key chain and just to see what was inside everything. I don't know what I expected, the eight- year- old or 10- year- old me expected, but out came this little green chip, this little controller that came out. I was a little underwhelmed to find that there was not a real dinosaur or a real dog inside that little key chain. As I unscrewed other devices, I kept finding these key chains, sort of these little microcontrollers show up again and again and that's when I got very fascinated about all the worlds that have been built on top of this little green chip. Ever since then, I started to code. I started to just invest a lot more time into building these worlds. Moving on from there, ended up building India's first humanoid. I was heavily into robotics at that point. It did two things, I think, which are maybe probably the most worthwhile things in life, it could dance and it played football, so the only two things that mattered.
Mike Lynn: Well, that's incredible. I got to stop you there. That's incredible. How did you get a robot to, well, dance, but play football?
Arpit Mohan: Yeah. I mean, the field of robotics is very, very advanced now. This is something that I was talking about maybe about 14 years ago, 15 years ago. So it was basically a humanoid robot, so like two legs to arms a body and a head. The head was a camera and it basically tracked a yellow ball on a green field. So it just followed a little tracking mechanism, tried to walk towards the ball and kick it. For anybody who's interested, just search for robot football on YouTube and there are some very, very fascinating competitions and you'd be surprised how humans aren't competing with robots in FIFA World Cup. That's around the corner.
Mike Lynn: Outstanding. So I'll include links in the show notes. So make sure if you're listening along and you're curious, check the show notes and we'll have some links there for you. So, was that at the university level when you got involved in robotics?
Arpit Mohan: Yes. So that was at the university level. After we graduated, I started my journey with a low- code company back in 2009, 2010. This word didn't exist. Back then, it was called rapid application development or business app development called KONY Labs. So I started my journey there and did multiple startups post that. So Appsmith is actually the third startup that we are doing. So through this journey of startups, I had a chance to work on a lot of different areas ranging from logistics, AI, FinTech, telecom, and in the middle we also did a mobile game, which coincidentally went viral. It was a quizzing game on the mobile and we hit about a million downloads on the Google Play Store and we had up 120,000 daily users playing the game and all of this happened within a span of about four months from us launching to us hitting a million downloads. At that time, the team was four engineers, two engineers on the server, two Android engineers. And so, at that point, just keeping the lights on was really, really hard. We used to get about 3, 000 support emails a day, telling us N number of things that were wrong about the app or their experience. In order to respond to 3000 emails a day, we had to build a lot of support tools, admin tools to help our support engineers. This was 2018 and that's when we decided that it's 2018, there has to be a better way to build these admin panels. Why are we doing this from scratch again and again? We ended up shutting the mobile game down and focused all our energies onto Appsmith. The reason that we open sourced Appsmith as well was because we didn't find any good open source alternatives. We found a few paid products out there, but we didn't find any good open source alternatives. Doing multiple startups, I know the amount of drudgery and the effort that is involved in building, especially when you're starting out with a new product, the effort that is involved to build admin panels, dashboards, et cetera, from scratch each and every single time. That's why Appsmith is a product for all those engineers who don't enjoy creating these CRUD dashboards or API dashboards from scratch again and again.
Mike Lynn: Yeah. It's interesting that you chose the open source path. Now, I know this is a phenomenally popular GitHub repository. Folks can visit Appsmith Org. Appsmith is the repository and I think it's got something like, I'm going to say, 2, 000 forks, I mean, quite a few forks. What made you choose the open source path?
Arpit Mohan: Yeah. To begin with, a big shout to the community who've given us this much love, who've given us their faith and that's why we are at about 2, 000 forks, about 20, 000 stars on GitHub today. The reason that we open sourced Appsmith was because from day one, it was a developer tool. We built it for developers to adopt. So it wasn't geared towards business analyst or product managers, et cetera. It was geared towards engineers, and the one thing that engineers absolutely love that I also love is open source. Very similar to you guys at MongoDB as well, where you give the database, open source is what allows developers to get their hands on the product very quickly without a lot of red tape. They can try it out. If they like it, then they can choose to then invest more money, more time into the product. So that's the biggest reason is that developers love open source and we just wanted to be where the developers are. So that's one. The other is a lot of these platforms, whether it's local platforms or engineering platforms, end up being close source, which means that there is a big vendor lock- in. So if I was an engineer and I was trying to plan for the next three years or five years of my company or my team, I would be very worried for any pricing changes. What happens if the company shuts down? What's going to happen? So being open source removes that vendor lock- in, and developers or users of Appsmith can very safely build on top of Appsmith because even if the Appsmith, the company, doesn't exist, the open source project always exists. That's why. The last is being an open source project, as an engineer, you can always mold the project into your image. So if you think there is a bug, you think there's a feature missing, you don't have to wait for some company sitting somewhere in the world to actually go implement that feature. You can just go in and implement it yourself. At Appsmith, we have had a lot of contributors improve the project and we are very, very thankful to them and any user, any developer can continue to do so. So that's why we went open source and I think it's one of the best decisions that we made.
Mike Lynn: Yeah. Well, congratulations on that. It's quite a successful project on GitHub. I'm looking at all of the contributors, it's wonderful to see that. What has been the most challenging thing about launching and building Appsmith?
Mike Lynn: Yeah. So I do want to ask you about your revenue model. Now, obviously going open source, there's a lot of effort that goes into that. You do get some community contributions, which is good, but how is Appsmith making money or are you?
Arpit Mohan: Yes, we are making money. So we are very early in our journey of commercializing the project and we hope to get to a point very soon where the project is self- sustainable and can run completely on its own without any external sources of funding. So that's our first goal, obviously. The way we generate revenue is through monetizing some enterprise features, such as single sign- on, audit logs, white labeling, et cetera. So these are features that larger teams or larger companies would probably be interested in. As a thumb rule, we follow that if a feature is useful to a team of five developers, like a small startup, it goes into the community edition. We have absolutely no interest in monetizing the individual developer or a small team of developers. But if it's useful to maybe an IBM, then those features we will monetize. So that's why we have a very clear community and enterprise model running. Like I said, we are very early and we hope to over the next year or two, hope to grow the incentives for large companies to actually convert to the paid model instead of just using the community edition.
Mike Lynn: Mm- hmm. It's always been interesting, working at MongoDB, I've been here I guess about seven years, and to see the shift in the contributions from the community. I'm curious about Appsmith. What percentage of the feature sets have been contributed by community work?
Arpit Mohan: So I'd say that as a ballpark, I would say maybe two to 3% of the code base has been contributed by external contributors and not by the internal team. Hacktoberfest every year is a very different month. So Hacktoberfest, it kind literally flips around. So in the month of October, we get about 97, 90 8% of the code base written in the month of October is all external and that I think that's fair. Large other projects, at least that I've read of like GitLab, et cetera, have also published very similar numbers. So we get a lot of contributions from the community, which, A, improve a lot of edge cases that we probably hadn't seen or we didn't know about. So those definitely help the project a lot in terms of polish, in terms of production capabilities. But large feature sets which require a lot of discussion, which require a lot of thought, we obviously do not expect a lot of external contributors to come in and give a large feature in, but for existing features, we've gotten a lot of bug fixes from them. I think the only two or three large contributions we have is on the integrations front. So we had ArangoDB integration, our latest DB integration, our Oracle DB integration. So a lot of these integrations have come from the community and a lot of widgets UI elements itself have come from the community, but the base platform itself is largely internal.
Mike Lynn: Yeah. Developed by employees of Appsmith, right?
Arpit Mohan: Yes. Yes, that's a correct.
Mike Lynn: Okay. So I want to double click on Appsmith itself and I want to maybe understand a little bit more about how it works. Now, you said that it's largely for use around creating internal dashboards, internal tool sets. I'm curious, how does the model within Appsmith, how is that able to support a variety of data models and even databases? How does that work?
Arpit Mohan: Appsmith is geared for self- hosting. So we want users to take our Docker container. It's a simple Docker container. Just drop it into any Linux machine inside your firewall, inside your VPC and just literally do a Docker up, Docker run and that just spins up the entire Appsmith engine. All of the apps that are built on Appsmith are literally just very large JSON files, which are incidentally hosted on MongoDB. So we've been using MongoDB for the past three years within the project. Large NoSQL documents that are stored in MongoDB itself, and that is a big reason as to how we can or we are able to easily support a variety of different application types, a lot of different integrations is because we try to leverage the NoSQL capabilities of Mongo itself and the DB integrations itself. So we integrate with about, I think, 17, 18- odd databases, whether it's SQL, MongoDB, Redis, et cetera. All of these are built as plugins on top of the base platform. So it's very similar to how WordPress, for example, operates, where you get the base WordPress platform and you have these plugins that you can install on top of the Appsmith base platform itself. So a lot of these integrations are actually plugins and they're geared to be running as plugins. So the way Appsmith then stores, takes this JSON metadata and when a user tries to render the application itself through a shareable URL, so you can just ping URLs to each other and that's how you share applications with each other. The moment a user tries to render that application through the URL, the Appsmith engine converts this large JSON into HTML, CSS that the browser can understand. So that is why you always need the Appsmith engine to be running on your Linux box and that's the one that does all the transformations from the metadata store in Mongo and converts it into HTML, CSS that the browser understands.
Mike Lynn: Mm- hmm. So is it running its own web server and then it's a web application or how does that-
Arpit Mohan: Yes.
Mike Lynn: What's the stack look like?
Arpit Mohan: So the front- end code is written in React, the server side code... So there's half the Appsmith engine is on the browser running in React itself and half the Appsmith engine is on the server. The server is written in Spring Java. Our backing database is, like I said, Mongo.
Mike Lynn: Okay.
Arpit Mohan: The React app requests the server for, " Hey, I want the metadata for application one, two, three." The server fixes it from Mongo, returns it back to the client, which then actually does all the conversions that the browser understands.
Mike Lynn: So in the Dockerized, in the container version, are you spinning up your own local MongoDB instance?
Arpit Mohan: Yes. So we ship what is called a fat container. So we have a couple of Java services. We have Mongo. We have Redis. So we kind of ship batteries included. So that ways, you don't need to muddle around and find a different Mongo container or a Redis container. But for production workloads, we do recommend people to either use Mongo Atlas itself or have their own separate cluster on Mongo for data purposes so that even if you are apps overlies, your data is persisted and it's always safe, but otherwise, by and large, it's a batteries- included philosophy.
Mike Lynn: So that was my next question around converting from a local MongoDB instance to using MongoDB Atlas, I would imagine there's probably some documentation. Where do folks go to learn how to do those types of customizations?
Arpit Mohan: So we have a ton of documentation at docs. appsmith. com, so I think that's the best place to look for documentation around Appsmith. In terms specifically, because you asked going from a local embedded MongoDB container to Mongo Atlas, it's literally a one- line change and Appsmith will do the rest of the magic. So you don't have to worry about, " Oh, what will happen to my data? Oh, this will happen or that'll happen." Go from MongoDB localhost: 27017, just change to Mongo + SRV, your URL. Just restart your container, Appsmith will do the magic beyond that.
Mike Lynn: Great.
Arpit Mohan: And that's been our philosophy from day one is to try and simplify a lot of this stuff because especially when it comes to data, people are very, very scared as they should be. They should rightly be very scared about their data and I think moving to Atlas or having a dedicated cluster that they're running is almost always a good idea.
Mike Lynn: Now, so there's a cloud version of Appsmith. What features of MongoDB are you leveraging from the service?
Arpit Mohan: So the Appsmith managed version or the Appsmith cloud, as we call it, is hosted backed on Mongo Atlas itself because we believe in the business of right and code and we believe that Mongo does a great job of managing data. So we don't want to take data hassles and we just outsource all of that to Mongo Atlas. The features that we use are actually quite minimal, I would say. So we are very poor users of the feature set that Mongo gives. So largely, we do a lot of indexing. We do all our backups, our snapshotting, daily, weekly, monthly snapshots. We do forecasting. We actually use the snapshots a lot for testing backwards compatibility. So whenever we have a new version of Appsmith, we spin up a week- old instance. So we spin up a Mongo cluster from a week- old snapshot and we test it against that to ensure that every new feature that we have launching is always backwards compatible. So that's a big feature. I mean, that's the one feature I really love and thank Mongo Atlas for because it's made that process really easy. Going forward from here, I think we'd love to use the Atlas Search and the time series is the next one on our list that we really want to leverage. I think MongoDB 5 introduced time series data databases as well. So that's next on our cards. We haven't gotten to it yet, but we plan to leverage that very, very soon.
Mike Lynn: So Appsmith is ideal for internal dashboards and internal apps. What's a really good use case? What do you find your users doing with Appsmith most frequently?
Arpit Mohan: Right. So Appsmith actually has a very broad user base across industries, across use cases. I think some very good applications for users coming in is customer support dashboard, where you want to get, for example, all your tickets from Zendesk, your order information from, say, Salesforce and your user information from a custom Postgres or MongoDB and you want to show all of that in a single dashboard. So customer support dashboard is a great use case. Similar systems or operational systems such as KYC or know your customer user dashboards, where you upload your profile and somebody, a human is looking at your profile and they may approving or rejecting your account, so that's another use case. The third, a lot of operational workflows get built on top of Appsmith, where, for example, a firm needs to move through two departments or three departments. So let's say I'm in the customer service team. I approve the profile. It goes to the accounts team. They approve the profile. Then it goes to the finance team, they approve the profile. So a lot of such workflows also, I think, get built. I think Appsmith really shines when you have multiple data sources to kind of combined data on. So you have an API, a database, and you want to show it all together. So that's one great sort of... Whenever you find yourself doing that, I think Appsmith is a great fit. The other is any operational work that you're doing on top of your database. So you have a Mongo or a Postgres database and you want to very quickly just spin up a UI layer on top of that and actually just give it to your business user and say, "Oh, I don't have time to write all the APIs right now," but shares a dashboard with authentication that works on all the CRUD operations for the DB out of the box. So you don't have to worry about installing a separate DB, whether it's pgAdmin or Robo 3D or et cetera. You don't have to worry about doing that. You can give a clean UI to a business user who doesn't understand SQL or doesn't care about SQL. They can just click through your UI and operate on that data. So I think those are the two or three main use cases.
Mike Lynn: Yeah, I'm really shocked at how simple... As you were talking, I just walked myself through creating my first app with Appsmith.
Arpit Mohan: Oh, wow.
Mike Lynn: Yeah, just crazy how fast you can move. You're even offering sample databases so I can get familiar with how the interface works. What I did was looking at integration with the multiple databases. So from within one internal app, I have the ability to connect not only multiple data sources from the same database, but also from a variety of databases. That's pretty powerful.
Arpit Mohan: I think this is a very common use case that happens within teams, within companies whenever they're building admin panels is just combining all this data and that's actually a gap that we saw a few years ago. We didn't find any products that were doing this well and we were hand- rolling this out again and again and that's why we ended up building Appsmith is because just about every company has at least two databases. You have one key value store or a NoSQL store and a SQL store. Invariably, that's like 95% of the companies out there. You are constantly joining the data between these two layers and Appsmith makes that really simple.
Mike Lynn: Yeah. So, what about this concept of triggers? Now, MongoDB supports triggers in our backend database as a service. I would imagine when you're incorporating and integrating multiple data stores, it would be helpful to have this concept of a on- insert trigger. Does Appsmith support something like that?
Arpit Mohan: No, we don't, but what you can do technically, not something that we've seen a lot of use cases for, but what you can technically do is configure the trigger on, say, MongoDB using the Appsmith interface itself. So anything that you can write in the Mongo command, or if you can send it as a raw command to MongoDB, you can do it within Appsmith.
Mike Lynn: So using the API.
Arpit Mohan: You can use the API. So we expose the raw interface itself. So anything that the Mongo BSON document supports, Appsmith supports. So you can configure the trigger itself. And so, it's like a one- time thing. So on user insert, do this other thing. So it's a one- time thing that you want to do. So you can just use Appsmith like... I've started to use Appsmith a lot because to be very honest, apologies for this, but I find the Mongo JSON or BSON document really hard to remember or use. So I end up using Appsmith a lot as my UI layer to Mongo, especially when I just want to do some very quick queries and some very quick stuff.
Mike Lynn: Well, I'll tell you, I'm just fiddling here while we're talking and the one thing I'm really finding quite fun to work with is the widgets and building forms. I would imagine a lot of folks are just building front- end forms with Appsmith. It just seems really seamless and easy to do.
Arpit Mohan: Yeah, forms and tables, forms to input data, tables to see the data, that just forms 80% or 90% of your admin panel is just forms and tables. Yeah. That's the other big thing which I think Appsmith makes really simple and it's a very common use case is, A, getting a form on top of your database to insert or update your data, and secondly, to trigger an API based on a form input. So you want to insert data into, let's say, your Mongo and I want to send out an email or let's say I just want to hit a Salesforce API and tell them that a new user has been created, something like that. So this is very hard to do or much harder to do than it should be on a much more... Let's say a Google forms or type form or et cetera, which don't allow you to hit these custom APIs or insert into your own database itself. So that's a big use case for Appsmith, where users just end up creating... I've seen a lot of apps within Appsmith, where users literally just have one form and that's it. When we reached out to the users and we said, " Hey, why do you just have one page and one form?" And he's like, " There was no other product that was creating this form on my Postgres or my MongoDB. That's all that I really wanted. I don't want any fancy features. I just want a form that inserts into Mongo." So yeah, that's a big use case.
Mike Lynn: Yeah. Well, it is an attractive, very easy to use interface in Appsmith. So, what do you want to say to folks that haven't tried Appsmith yet?
Arpit Mohan: To folks who haven't tried Appsmith yet, I'd say you're wasting a lot of time building admin panels and you should definitely give Appsmith a shot. You should try us out. We are at appsmith. com, or on GitHub, you can just search for Appsmith, you'll find us. We are very, very easy to get up and running. So you can get to your first current page within five minutes of you connecting your database. So I think it's really, really powerful and you can get a lot done. You have to just try to believe it, give it a shot. It's like 10 minutes of your life, give it a shot. You may like it, you may not like it and that's okay, but my bets are on that you will find use for it.
Mike Lynn: Great. Well, is there anything else you want to share with the audience before we begin to wrap up? Arpit, this has been a great discussion.
Arpit Mohan: No, this has been a great conversation, Michael. Thank you so much. To everybody, I just say I don't know when the episode is going to get actually air, but Hacktoberfest is around the corner. If you're looking for a great open source project to contribute to, we're very, very welcoming to new contributors, new and old alike. So do check out Appsmith during Hacktoberfest and we'd love to help you contribute your first pull request to Appsmith.
Mike Lynn: Yeah. So, are there issues that are tagged specifically for first PR or something like that?
Arpit Mohan: Yes, we have a lot of good first issues and we are compiling that list or improving that list as well. So if you just search on Appsmith issues, which is just filter by good first issues and you should find something that's worthwhile. It's typically a little tiny thing that hooks somebody out there and you'll be improving that user's life just a little bit.
Mike Lynn: Yeah. Hacktoberfest, so how do folks get more information about Hacktoberfest?
Arpit Mohan: I think a great place to get started is hacktoberfest.digitalocean. com. So DigitalOcean, I think, spearheads this initiative. So, that would be a great place to get started. As and when October 2022 rolls around, I think there'll be a lot more literature across the board, whether it's on Twitter or Reddit or Discord, et cetera. You just Google for Hacktoberfest, you should find a lot of information about this fantastic program.
Mike Lynn: Yeah. Well, check the show notes if you're listening and you're interested and you can actually head on over hacktoberfest.com. That's a great place to start. If you're curious about contributing to open source projects, it's a great, great way to get involved and really move forward some of the goals of these open source companies. Arpit, thank you so much for spending time with me. It's been a great discussion.
Arpit Mohan: Thank you so much, Michael. Thank you so much for having me on today. It was an absolute pleasure.
Shane McAllister: A great conversation there and some good validation from Mike in the middle, who whilst chatting with Arpit was building his first dashboards in Appsmith. Amazing. For anybody with various sources of data and who needs to generate regular reports or dashboards, Appsmith seems as if it can certainly take some of the load off your plate for you. Do check it out. As ever, there are links in the show notes to anything referenced in the podcast. Speaking of items referenced in the podcast, at the end of their conversation, Mike and Arpit discussed Hacktoberfest. Hacktoberfest is a month- long celebration of open source projects, their maintainers and the entire community of contributors. As this episode is only airing at the end of October, it's probably a bit late to join in now, but we felt it was important to leave in for our community of listeners and for those who may not be familiar with Hacktoberfest, but do check out hacktoberfest. com and get ready now for 2023. Don't say we didn't tell you. In October, November and December, we have MongoDB. local events running in San Francisco, Dallas, London, and Toronto. You can find out more at mongodb.com/events. The best part, all MongoDB. local events are free to attend. . local events are in- person, single day events filled with educational breakout sessions, announcement- packed presentations, customer stories, and free one- on- one as the experts consulting sessions, along with networking opportunities and much more. Thanks again for listening as always. If you did enjoy this episode and haven't done so already, please do remember to leave us a rating or review on Apple Podcast, Spotify or wherever you listen to your podcast. It really does help us and we very much appreciate it. So from me, Shane McAllister, and the rest of the podcast team, until next time, do take care and thanks for listening.