Zitrone
Listen Now
About This Episode
Adam Sobotka, an experienced engineering manager, presented Zitrone at DevNTell. Zitrone is a simplified tool designed to solve the common time management and scheduling challenges faced by participants in multiple DAOs. Adam emphasized Zitrone's user-friendly interface, scalability, and integration with the decentralized ecosystem. A key feature of Zitrone is its token-gating capability, which allows organizations to restrict event access based on token ownership. Adam highlighted the project's technical stack, including Cloudflare Workers and Ethers.js, and shared his vision for future developments such as AI integration and enhanced interoperability with other DAO tools like Dework. He concluded by calling for community involvement and feedback to further refine and onboard more DAOs onto the Zitrone platform.
Key Takeaways
Zitrone aims to simplify scheduling and time management for DAO contributors.
The platform features an easy-to-use interface, prioritizing clarity and user experience.
Zitrone includes built-in token-gating to secure and restrict event access for specific communities.
The tool is highly scalable and can be used in read-only mode without a wallet.
Future development plans include AI integration and improved interoperability with other DAO management tools.
Featured Guest
Adam Sobotka
Founder @ Zitrone
Timestamps(click to jump)
Episode Transcript
Read full transcriptHide transcript
Alright. GM, GA, GE everybody. Welcome to what's going to be another great DevNTell. So if you didn't know, DevNTell is a 30-minute window for members of the DAO to showcase something they've been working on or are passionate about. This can be an awesome project you've been working on, demonstrating unit testing best practices, automation goodies, smart contracts, how to structure a project, etc. Basically, if you've got a passion for something, this is your opportunity to share with the community. And today, I am happy to introduce to you Adam, who will be giving us an overview of Zitrone. Adam, before we begin, maybe you want to give a brief intro of who you are and how you came about Developer DAO.
Hello, hello. First of all, thanks for having me. It's a great honor to be part of this because I love some of the projects that began here or that were presented here and I feel like a part of a great company already. And yeah, about me. So I was doing a managerial job for like 10 years, ended up as a Director of Engineering at Socialbakers. Then I decided to leave and pursue my passion in building things and helping people and helping organizations. So this is what I am doing now and one of the things that I built is what should be pronounced perhaps as Zitrone because it's the German word, but I heard a lot of pronunciation and everything is okay. I will explain on the first slide what it means and why I picked the word and why I am building this. So let me just share the screen quickly.
For sure.
Yeah, that's the future. That's not what we want. I hope that you still can see my presentation. Yep, yep. We can see the screen. Awesome. So yeah, as I mentioned, I built other projects like every project that I build is kind of fixing my own issue, some problem that I've seen. And this is kind of related to what I started with, that working as a manager is kind of like removing the impediment to the people. Leadership is about making other people great. And when I see something that doesn't work, in my opinion, I have this tendency to fix it immediately. So this is the reason why I started with what I kind of like on the beginning perceived as a missing calendar problem, but in the end I built something a little bit different. And the reason why is that when I joined the Developer DAO, I joined a lot of DAOs to be honest, and I'm actively participating only in this and Forefront. But what immediately happened is that I lost my time management and I'm kind of like an organized person and I can't have it. Like my when I when I can't see in order what is expected from me and how do I prepare for the meetings and so on, I'm completely lost. It's like this is a culture thing as well. I think that the people from the similar cultures as mine will understand it better than others, but this is what I struggled with and I decided to fix it. So this is the product I built. It's supposed to be easy DAO meetings and even scheduling too. And why it's called Zitrone? In German it's lemon. And you know, there is the saying when life gives you lemons, you make a lemonade. So this is how I perceive the problem and how I am trying to turn it to something positive and helping the whole community.
Nice.
So I think this is like highlights the most important thing that I'm focusing on in this project. And you will see it in the demo if you haven't seen the product already. I'm focusing on easy to use. I'm stating this because it's very common in blockchain space and so-called crypto space that there is some a lot of crazy design things and so on. And I don't think that this is necessarily a good idea. I do have some UX training and I believe that some like clarity of user interface is important, but I'm not a designer myself. So it may be not perfect, but what I'm aiming for, why the interface is clear and white and non-distractive is that I aim to easiness of use. It is also super scalable. I'll talk about it more a little bit in the tech part and it's also works without wallet in the read mode because I think that and I have a like long sentence on the application itself, on the about page, but I generally think that DAOs are now in a very niche part of what they should be or could be because I think that there is a lot of organizations that are by nature decentralized. They are just not calling themselves a decentralized organizations and I want to aim with this application to everyone, like every group of people that have something in common and needs to organize somehow should use this this tool in future. So it works, you can read the events that are happening in a moment that you want to create something or you want to join something, you need a wallet because that's sort of like security layer on top of the regular web2 application. There is more, but I will talk about it later. It's not masked Google Calendar. I've been talking with my friends from the other project that focus on on very different approach to solving the very same problem. I kind of like it, but I don't want to go in this direction. I don't want to recreate the Google Calendar because the Google Calendar exists and I actually do use it now as a replacement of the Zitrone because there is perhaps not a better solution if you contribute in more DAOs, but I don't think that Google is this like decentralized organization we should trust with our data and so on. So it's not masked Google Calendar. All the data that you will entry is written on some Cloudflare server that is on my account and I believe this is kind of like better way to build the application and iterate it to the decentralized future. There is gating built in. It's it was important thing in the early discussions I had when I discovered if this is a product that will be interest to anyone. And it's very minimal for reason. I even don't have a delete button because it's easy to delete the event from the backend and I didn't want to spend too much time on building something what I'm not completely sure that the community will enjoy. So yeah, you can ask about anything later when we will have this Q&A part, but for now I will skip to the demo time.
And the application is live. So if you can scan the code, it works on mobile as well or on the desktop if you visit the page that I will have to re-share the window. It's the name of the project.pages.dev and I will quickly share it in the chat just for your convenience. Yeah, thank you, Narb, you already did. So you can play around. I am not calling any smart contracts. I'm not using any rights. It's not clearly written anywhere that was one of the early feedback that I got, but only thing that I do with the wallet that you will be joining in the application or signing in is that I authenticate you by the address. So this is hopefully very secure way how to use your wallet. It's not dangerous in any sense. So what I want to do, I need to re-share it, it doesn't work this way. So give me a sec. I need to click around. Yeah, no problem. Can you see the application screen? Yes, yep, we can. Awesome. Oh, there is I guess there is a bug. Oh, never mind. So I'm connected so I can create the event. If you are disconnected, you will be unable to see this button hopefully. Only wallet connect and the browser wallet works now. It's the limitation on the technology side and I'm discussing heavily with with the authors of the Ethers how to how to go around this. And what I want to show, this is the sort of like events page where I think that the people should land because they are mostly interested in what's happening today or the next days. And you can click on the calendar and see what's going on. I manually entered two events for every Friday. These are repeating events and what we can do is to create some one-time event for the next DevNTell.
I will just copy copy paste the data from from the window you don't see. So this is the description. We are Developer DAO and it's DevNTell. I hope that I am writing in correctly. My starting from is is when when it begins. Perhaps I will choose the next Friday. And the time in GMT is 3PM, right? Yep. And let's say it doesn't repeat because you want to have the unique unique description. Then you have this URL which is actually in our case it should be perhaps the link to the Discord and we have a name. I'll just copy it a little bit. One sec. I hope the next event is is perhaps one of the bad ones because there is two contacts. I don't have application ready for that. But here you can add event and it should yeah it's the next one. So yeah, it should be here and it is. And I can attend it. I can say that I won't make it. It should be like all easy and understandable. There is the selection, like the community selection of the events on the main page. I guess there should be the name. Nevermind. It doesn't work in any particularly smart way now. I plan to work on it in future if there is the demand but for now it selects just the nearby events that is in calendar. So that's about it. There is the functionality of as you seen here, there is the checkbox for public. If you uncheck the public and you have the organization that I'm aware of, it's the hidden configuration. It do secure the link to the event by the gating functionality so it will check if you have the token in case of Developer DAO or another token in case of different DAO.
So this is sort of like whole functionality. As I mentioned, I wanted to keep it very simple. But here you can see the join button that will kind of redirect you immediately. In this case in case of the gated event, it will sort of like tell you what you are missing from the requirements, that you are missing token or that we don't have the public event or something like that. So there is some logic in the application. So feel free to create your events. It's free and this part will be perhaps free for everyone for ever because I don't feel like taxing the individual usage will be beneficiary to anyone, so this is going to stay free perhaps forever but it's kind of hard to predict future. What is my like idea on how to move it forward will be enhanced functionality for the DAOs and perhaps the gating for in a sense of the tickets, so the DAOs will be able to sell the tickets and some small fee on this will be supporting my further development. I want to mention the technology that I'm using. You can ask anything about it. I can even give you some deeper dive, but I want to keep it on the Q&A part because not everyone is interested in the technology I used and it could be beneficiary to people that are not to simply skip this part. So it's using Cloudflare Workers that technology that was open sourced like two months ago, I think.
It's not Node.js that you usually use in the backend systems, but you use the Node.js is just transpiled. So it's very cool technology that takes your Node.js and make it way more lightweight because of the transpilation. And it use KV Store on Cloudflare that is super easy database that don't do essentially anything than store the key values, but they have a very cool search functionality or filtering ability that can be used as a search capability. I also use Ethers that is one of the most used libraries, I don't want to go deep in this one. And I used Remix Run which is different Remix than you use to build the smart contracts. It's an environment that is similar to Next.js but a little bit better in some technical parameters. So if you have any particular question about it, why do I use it or anything like that, I will be happy to answer. And I use Tailwind because I don't know much about CSS to be honest, so it's kind of like lifesaver for me. I can do a decent CSS with with a Tailwind, if I will have to write it on my own it will be disaster.
For the future, I know that I will be building the calendar links. I'm interested in integrating AI because it's fun and most things I built I build for myself and to learn the things, to be honest. So this is like big motivation, but if there'll be some important request from the community I will of course do it first. And the Interop in a sense of some APIs or similar technology that will allow the integration with the most used other tools. I think this is super important because the landscape of the DAO tools is super fragmented and we should somehow work together on bringing tools closer together and it's like if you take a look on for example Dework, they are doing amazing job in this. They integrated anything that exists and I want to follow, I want to be in Zitrone I want to be at least on the same level of integration with anything you can imagine including Dework because I don't kind of want to be competition to these tools. And as I mentioned, whatever you need, like I want to open this tool to community to use and get the feedback, which is actually the next slide. What I if you take a look on the meme on the right side, I know that I'm this first-time founder. I just like I'm aware of this, this guy perhaps wasn't, but I know that I'm this guy that believe that coding is coding is everything. I know it isn't, but the coding and some product management is only thing that I can do properly, so what I need is help from the community to get some life to the project. I honestly want Developer DAO as one of the organizations that use it because that will make a lot of sense to me because I know a lot of people in the organization and if they will tell me what's the problem, what they need to solve it will be for me more understandable than from the organizations where I don't participate. So honestly I want Developer DAO using Zitrone as much as possible. What I need is to onboard another DAOs just to gather the feedback and make it more usable for the organizations. And yeah, I am like decent programmer especially on the frontend side of the things but I know my limits. I am still like way better manager than developer and I will need someone who's more senior who will push this forward and help me to build it. So this is call for help and with that I will stop myself and give the last 10 minutes to your questions.
Awesome stuff, man. I guess on that very topic, how do you want folks folks here to help? Is the project open source? Are you looking for any one specific role? How can people get in touch with you if they want to help out?
Yeah, absolutely. I'm part of DAO so you can ping me anytime. Regarding the roles that I need, I think that I need someone who will be amazing with the community on the level of Blue Panda or similar, like some people that are like really good in making things happen and introducing the value and explaining the value to the community because that's one of the things where I don't feel confident enough. So this is definitely one of like what I will call marketing or community building is one of the things that I'm missing from my skill set. From the developer's perspective, I mentioned the technologies. If you are like decent senior Node.js developer with a knowledge of the smart contracts, I will use your help. I can't do any like financial reward for working with me on this, but I'm thinking about like creating some sort of sweat equity for people that will be helping me in this to like get the part of the project when we will be successful or if we will be successful. Yeah, I'm sorry, I'm reading the jokes.
Yeah, pretty good. One thing you could do in the next season or even yeah, even now you could submit a budget proposal for getting some DAO funding to help you get some traction on the development side of things. So that's another avenue you can look to explore. I'll try. Awesome. Does anyone in the crowd have any questions for Adam?
If not, I have one. So you mentioned that you we can do kind of event gating by tokens. So what how would so if I wanted to say I created another DAO or something like that and we launched a token, how would I go about configuring my community up for basically private or gated meetings?
Oh yeah, I understand. So now it's not it doesn't have any frontend if you click on DAOs there is just a little survey to get in contact with me. You can get in contact with me directly, it's not you don't need to use this form. And what I what I am doing is that I have sort of like database records for where I pair the token address and I check if you have it in the wallet. It's kind of like simple. I to be honest I built it because I was intrigued in the gating functionality and or interested and I wanted to understand how it works and it's super simple. If you have a wallet that actually have some balance of the tokens you can ask for it in very simple way via Ethers, so that's how it works. You get redirected to the page, this page check your wallet and if you have the token you get the link to the event and you will be redirected if you had JavaScript enabled, but if you don't have the token you will see what's going on. Ah, I see. Okay, that makes sense. Cool, cool.
And I guess one last question for me. What kinds of challenges did you face when you were building this? I know you were inspired by a problem you wanted to solve, but were there any like hurdles you had to overcome early on, like technologically wise or maybe like time wise or something and how did you overcome those?
I honestly no, I kind of like built this in two weeks basically and then I then I like refined it a little bit by the gating functionality that was like another week or so. But no, I I didn't like run into any any big problematic thing. Actually to be honest the biggest problem from from the technology part was to understand how to work with the KV Store databases because it's completely different from from the like SQL or or even graph databases. But and now I'm not completely sure if I'm answering your question. No, no, you definitely definitely did. That's great to hear. Two weeks, two weeks to launch that, that's pretty awesome. Well done. Yeah well that's the problem. I can really quickly build. I'm not really great in building it further and I'm not really great in the other things I mentioned so yeah.
Yeah, I feel you man, I feel this. We have a couple of minutes left. Any questions from the crowd? And if you can't speak at the moment, please feel free to type as well and I can ask on your behalf. And while we wait for that, I guess the final question is, what's the what's the best way to follow the project's progress? Is there a Twitter Twitter account or something people can follow?
Yeah, I was thinking about it. I don't have the Twitter account. The best way will be to sign up if you if you go to the to the first page of the application, like Zitrone the link that you shared you land on the black page with the description of features and so on, and if you scroll down there is the newsletter with subscription. So this would be perhaps the best way how to follow. Yeah, that's perhaps the best how to or like I think that following me on the Twitter can be helpful but it can be overwhelming because I'm in a lot of things and I have a lot of opinions so you will have to filter this out. Perhaps the creating the separate account is a good idea. I don't know. It sounds like now I'm when I think about it, it sounds like good idea. Yeah, yeah, for sure. You want to secure that that Twitter handle before somebody squats on it, right? So oh, I'm going to do that right now. Please please guys who's here, don't do that. I really I really need that. Be nice, be nice crowd.
Well, we are right at time. So thank you again Adam for demoing us Zitrone and I hope I have pronounced that right, forgive me if I haven't, but it was awesome seeing that and I can totally see a future where folks gravitate towards that once you start adding adding the features like connecting a calendar and whatnot, but yeah, really looking forward to seeing the progress on that and awesome work again. Thank you so much and thanks again for having me. My pleasure, my pleasure. Yeah and with that we will end DevNTell here. So I want to wish everybody a very happy Friday or weekend wherever you are. And note that officially the submissions for the code and D4R giveaway have closed, so I will be scrummaging through those over the weekend and making an announcement on this coming Monday. So thank you to everybody who nominated a person or people. And I will also be dropping a link to the POAPs in this chat as well as the general chat. And Adam, I will send you your special kudos for being a presenter on DevNTell. Thank you! Yeah for sure. And with that, I will stop the presentation or recording.
Listen On
Share This Episode
Share on XWatch Episodes Live!
Subscribe to our event calendar and never miss a live episode.
View Event Calendar