Frappeverse 2023 - A Retrospective
Thoughts and reflections from Frappeverse 2023
A week ahead of the conference, a few of us were sitting in our 6th floor office / canteen taking mock presentations from my colleagues. Faris was nervous as he started presenting about his project, Frappe UI and the product he was building, “Gameplan”. Being someone who prefers letting his work speak for himself, he had not yet broken the jinx of making a great conference presentation. His presentation started with a demo of the elements in Frappe UI with a walk through the documentation. Just as he got started, I asked him to stop right there. “There is no context to your talk”. I told him. “People don’t want information, they need to understand your story. Why did you start this project? Why should someone care about it?. What do you find cool about it? If people want information, they can go to the website”. Later I shared Alfie Kohn’s talk about intrinsic motivation and that set Faris on his path. From there on he went on to make a brilliant presentation.
Not just Faris, no talk made sense in the first cut. Having seen enough TED talks and other great channels on YouTube, the general expectations from talks are very high. People want to get inspired. Chris Anderson, the head of TED, says that in a good talk, you must have one thing you want to tell the audience. Just one. And say it over and over again with different perspectives and examples. What Faris really wanted to talk about was his deep and profound motivation for creating pixel perfect designs, and that became the centre of his talk. Through examples he was able to showcase his pixel perfect designs and interactions.
Conferences are about two things - the talks and the networking. While people remember the networking and camaraderie, what makes a conference great is great talks. Frappe, being an open source project already has a solid community. These are folks who have been coming to multiple conferences, who have found purpose and meaning in being a part of the community and it helps them thrive as well. So what Frappe needs to bring to the table is great content. The role of Frappe is to set the standards for everyone to follow and keep raising them everytime.
The preparation for the conference started even earlier. There is a joke at Frappe that in the weeks and months leading up to the conference, all development is driven by what will be presented at the conference. Internally, we call it “Conference Driven Development” or CDD, in reference to “Test Driven Development” (TDD). In early June, we made a list of products and feature releases that we could aim for and that triggered a phase of accelerated development of those products. My goal was to tie all of this together with a unified design system and website. While the engineers were busy hacking features and polishing their apps, I was working with Nishant and the Timeless team trying to come up with the right design for building our website. Websites in Frappe always get the least amount of love and attention. Our priority is first to make a good product, then to ensure our customers are well supported, and then if there is bandwidth, we think of the website.
This time though, we started making the website early and we realised that here is a deeper problem we need to solve first. We don’t have a good tool to design web pages. So instead of working on the website, we prioritised making the website builder. When Suraj first let me play with his Builder in June, it was extremely hacky, but I could immediately see his ambition. Basic drawing features were very clunky to use, and there were lots of bugs, but it worked. Having a target of releasing a new website at the conference was the motivation for Suraj to make the Builder. Unlike a graphic design tool, the builder was designed for the “web”, which meant the positioning of any element would depend on the size of the screen, (mobile or desktop). Hence flexible positioning of objects (called flex in CSS terms) was more important than absolute positioning. Suraj not only nailed the flexible layout design, but also went on to add advanced features like making components, and dynamic elements.
At the time of the conference we could make most of the website components we needed for our design. But the question still remained if we could release the website itself. While it was our “target” to make the website, we got for ourselves a website builder. Unfortunately we could make only half a dozen “pages” before the conference so we could not release the new website. Now some people may see this as a failure, but this is what we mean when we say “no roadmap” at Frappe. Frappe Builder would go on to be the showstopper of the conference getting the loudest cheers. Often the unplanned journeys turn out to be the most rewarding.
Aditya and the Frappe Cloud team had been struggling for the better part of the year and instability and constant customer support was stopping them from releasing any new features. For most of the year, they were fixing issues. Frappe Cloud deploys thousands of upgrades each month, something that was not anticipated at the beginning. Since the architecture of the cloud is based on containers, building containers at such a scale was another thing the Frappe Cloud team had to learn the hard way. We had run thousands of sites in the earlier version of our cloud (Central), but then we would maintain at most three major versions at a time. Frappe Cloud had the ability to maintain individual versions for thousands of sites. Add to it, the ability to support custom applications meant several orders of magnitude more complexity and failure points. While Central was for ERPNext users, Frappe Cloud was for developers and they were taking things to the limit.
This meant long and crazy support hours, constant interruption from the users and internal Frappe members. The team was on its edge, and the morale was running low. Things were going progressively worse and the backlog of features was just getting longer and longer. With the conference coming up, something had to give. Now was the time for some big hitting. Just weeks before the conference, we went to the blackboard (yes, we have one of those) and made an ambitious plan to release a slew of features at the conference. These included running a private cluster, new permissions model, codespaces, a security and analytics dashboard and an ambitious new plan to run any kind of containers on Frappe Cloud, not just Frappe containers. On top of this there was a major upgrade to the UI and payment flow. The team planned for a sprint to get all of this done in one week. And it worked! The idea was to release all of this in the conference, but we decided it would be too risky releasing it, but we would showcase it and release it in the subsequent weeks.
There were many such stories in the weeks leading up to the conference. Shariq, who rarely comes to office at regular times, was absent for almost two months. While he had said yes to making Frappe CRM, nobody knew of the progress until he wowed us with a mock presentation just days before the event. Even our business and operations teams were busy practising for talks. For many of them, this was their first time on the big stage. Even there we emphasised storytelling over dumping information to the audience.
On the other side, Palkan was leading the event planning like a pro. The millions of small tasks, right from selection of the venue to ticketing to sponsors, to getting talk proposals, then reviewing them was going on while the engineers hacked furiously getting their act in place. The painting of the mural marked the official start of the conference for all of us. This was the third time we were painting a mural (we did one for IndiaFOSS and last year’s conference) and it is becoming like a tradition. A dozen or so people participate in the mural and I am usually in the thick of it. It is a few hours of zen as you work on the canvas inch by inch. There is something magical in seeing a blank canvas come to life.
Painting the mural
There is always a heightened anxiety when the conference is around the corner. In one of my nightmares, we were having an open air conference, dark clouds were gathering and the screen would not start up, I was busy trying to rewire the system (even though I had no idea how to) and having the sinking feeling that this conference is done, we should start thinking of next year. Thankfully there were no such hiccups in real life. At the last moment though, I realised the screen was too far back on the stage and asked for it to be brought forward since we were going to show some videos on it.
The two days of the conference went in a blur. The auditorium was huge, almost everyone showed up, there were long lines for meals and there was hardly any place to stand. There were lots of new faces along with familiar ones. Several people who were there at the first conference have stuck around. Most people were very happy with the talks. I heard terms like “mind blowing” and “Frappe raised the bar”. Lots of people came with their teams and everyone wanted to say hi. We had a partner meetup the day before the conference, where we had several productive discussions, so most of it was just catching up. It was nice to see people from all over the world come for the conference. One participant from Tanzania told me he booked the ticket for the conference, the moment he saw Maharshi’s video on the Print Designer. Build and they will come!
A young kid from Srinagar was also there, and while it reminded me of the problems of the region, he was happy to be there, just a normal kid. He told me that was very impressed with the Frappe Framework and it has become his stack of choice. “I came for ERPNext, but stayed for Frappe” - that summed up Frappeverse for me. A lot of people were Frappe developers, not just ERPNext users. All these years, ERPNext was our hero, but clearly the scales seem to be tipping towards the Framework. Several developer teams are moving their development to Frappe Framework and it is happening all over the world.
“Your talk was the worst”, Nabin told me. As usual, I was expected to start the conference with a keynote address, but this year I was not unsure of what to say. I saw my talk from last year and also saw the horrible talks given by tech CEOs whose job is to pump up the audience. “Developers, Developers, Developers” Steve Ballmer famously hyperventilated on the stage. It felt like he was getting a heart attack. Frappe is an amazing team, but we are not all A players. The team and culture has been built grounds up over years by focussing on two important things, freedom and excellence. The kind of freedom we enjoy at Frappe is truly unique and I wanted to tell people that it is not just radical, but pragmatic. Everyone is their own hero, and all we have to do is to make them believe that. That is the power of freedom.
As the lights came on and I walked on the stage, I was searching for words. Even though I knew what I wanted to say, I had practised only once. I really wanted to be honest to the moment and talk to the community about what I felt. I was probably trying too hard to be authentic and should have probably prepared a bit more. It took me a few moments to get calm, but then I think I said what I wanted to say. A lot of folks told me they liked what I said as well. My job was to set stage for the amazing talks to come and let everyone talk about what they did. This year has been very confusing for me, which was kind of reflected in the talk. I hope next year I have something solid to say.
In spite of the shaky start, everything went as well as it could have given the kind of resource we have at our hand. What probably makes me the most satisfied is the sheer diversity of people at the event. Developers and analysts. Evangelists and business folk. People from all walks of life, countries, backgrounds, beliefs - they all find something to connect to at Frappe. That feeling is truly priceless. I don’t know if we did anything other than staying true to who we are. Maybe it's that simple.
Rushabh is a software developer and founder of ERPNext. He usually writes about the startup experience, open source and the technologies he is working on.