Hey, welcome back to another episode of the Ruby Rogues podcast. This week on our panel we have Valentino Stole. Hey. Now we also have a new rogue and that is a yush Nuatia. I hope I said that right? Yeah, close enough. Hello, Hello, nice to be here. I'm gonna be nervous about that, like every time anyway, honestly, don't care. I'm Charles Maxwood from Top Endevs and we have a special guest this week that is Adrian. Adrian, do you want to tell people who you
are and remind him why you're so awesome? Hey, hey, guys, thanks for having me. I don't know if I'm so awesome. I try to be, but I know, thank you. So. My name is Adrian. I'm a self thought engineer and I'm the author of AVO. Most people probably know me like that, and more recently, I'm one of the hosts of Friendly RB, which is a boutique ruby conference in Bucharest, Romania,
happening usually in September. Yeah. Otherwise, I have one cute one and a half year old baby boy and the beautiful wife and I travel to conferences and talk to people and try to help. How However, I can nice, So yeah, let's just dive in. We had you on to talk about AVO. I think what a couple of years ago. A couple of years Yeah, yeah, So I think last time a lot of the focus was around building like admin interfaces and stuff. But it looks like you've
expanded it some and you're doing some content focused stuff. So do you want to just give everybody the ten thousand foot view what AVO is, why they might want to use it, and then and then we can get into the details on how it goes together. Yeah. Sure. So it's three and a half years, it's still sometimes difficult to tell people what AVO is. But what I say is like, it's an admin panel framework, slash content
management system, slash internal tool builder for rubyond Rails. So it helps developers build Ruby on rails use their interfaces very very fast. But it's not just user interfaces, so don't think of it like a UI kit, but think
of it with that. It has some business logic as well, so you tell it something like, hey, I have a product, and a product has a title and a description and a price, and you tell it what kind of like attributes those are, and AVO will read that it will create for you like a beautiful, crowd like interface, a very advanced one where you can see all your products, you can see details, you can sort, you can filter, you can apply actions to them, and so on.
So this is like the basic gist of it, but it does so so much more than just an admin panel framework. Okay, So when we talked about this, and I don't know if I brought this up last time, but there are other admin panel frameworks that are out there for Rails, right, yeah, I hate them all. So I haven't tried although yet, so I keep wanting to, and it's just you know, time, go for it. Yeah, anyway, so yeah, go for How do
you make this not suck? Well, it's a lot of work. It's a lot of work, and we did a lot of work for the past three years to make that a possibility. So when I started, I just thought about it, you know. I saw that there were like active admin and Rails admin and Trestle and administrating many others. But I think that when they were created, they were created with different contexts in mind, with different
technologies and probably different goals as well. When I started building Govel, I wanted from day one to be something that you could give to your consumer. So something that looks good, that works well, that has some advanced use cases. So it's not just a glorified database browser. Yeah, that's what that's what I hate about them, yep, I know, it's they're glorified
database browsers. And and so what happens is is as soon as you hit an edge case, and an edge case is anything after I got against the four, yep, yeah, it just gets really gross, really fast. Yep. I agree that That's the feedback that I got from from everybody. Basically, like it helped me go like sixty percent seventy percent of the way and that's easy, but then like the rest of thirty percent that's so freaking you know, difficult to do and painful, and sometimes I just abandoned the
whole thing. And I knew about that and I wanted so whenever you hit that, because it's kind of the same WITHRA, like the first sixty seventy eighty, depending on the app, sometimes you can go like ninety percent and it's done. O, what does the whole work for you? But whenever you have that rest twenty thirty percent, what we try to do is give you many, many, many escape hatches, right, so you can you can modify the queries, you can modify what options are there, you can
modify. You know, you can bring your own frameworks inside, like for search or authentication authorization, and whenever it's there's something that we cannot build for you or we haven't built, we just give you like ERB partials and you
can write your regular rails code however you know you're used to it. So again, it's a lot of escape hatches, a lot of places where it can come in cook into the whole business logic that we wrote and you can take over or like in the worst case scenario, you can take over like the HTML, the Ruby code, JavaScript, CSS, whatever you need. So yeah, this is all for you to not get stuck and not to feel, you know, like a prisoner like I cannot I can build this
or what. So I think sixty percent is generous, But I'm just gonna say, so, what what does AVO give you? Then that you know it's kind of the baseline case, right, So I'm gonna plug this in kind of do a minimum amount of effort? What do I get for that? So you get like with a minimum amount of effort. You get like a crowd UI, a very advanced one where we have for example, we
have about thirty fields. We have some simple ones like text, text area, whatever number, but we have like the price field, which works very well with the money gem from Rails. We have tricks editor, tip tap editor. We have a key value field where you can create like a hash.
Inside the UI, you get access to all of the all of Rails's associations like as advanced as you want to do it, like it belongs to as many, hasn't belongs to many, whatever, STI whatever you need, polymorphic with searchable like this is a big pain point for active many users. Is like if you have a belongs to and you want to attach a user, but you have like millions of records, it will just jam on you. Like we give you that as a searchable you know acinc kind of you
know multi select experience. So that's like, you know, you get quite quite a lot to be honest with with AVO. Yeah, I just want to gush about for a bit because I was like, I think about three or four weeks ago from had to add an Aardmin panel for my client project, and I've actually used one before because I think, like Charles, I hate I just hate them. I prefer building my own stuff like just that does just exactly what I need. But for a yeah, for a client
project, it made sense. So I played around with like three or four different options, and AVA was the only one that to make me want to jump out of the window. Uh it honestly, I yet true, But honestly it was. It gave me no pain. I was up and running so quickly that the key value I feel you mentioned was like a nice surprise because I just created a json B field on a table I think last week, and I'm like, this is going to cause me trouble in in our boy, isn't it. And I got like like, no, it's not
going to cause me any trouble. Is It's like this amazing thing just out of the box. Yeah, just the docks. I must tip my hat off to the quality of docs. Like, honestly, anytime I ran into a problem, I just go search the docks and it was I found what
I need, like in seconds. I remember I was trying to add like a search field, a top level search field for an entity, and we had elastic search on that particular entity for like the main the user facing app, and I could just hook the same search thing into AVO with like just a simple block, just sart a block in the ARVO resource pilots, like the analogis to the model, and yeah, it's using the same thing as
the user facing app. And I was just super impressed at like every ten by just how customizable it was yet how much it gave out of the box. So yeah, I just wanted to gush about it because I wasn't expecting to be impressed by by an admin panel because I've avoided them for a good reason. But I was sufficiently impressed by AVO. Gotcha, thanks a lot, man, Thanks, I appreciate the kind words. Yeah, so this
is there are two things here. Like one is like, okay, we all hate you know, the pre made kind of things, like you know, the admin panels because we have maybe like when I speak to other developers about that devendment and administrating rails or whatever, they say that the experience is painful and we had to fight these you know, these ideas with with AVO. But like the thing is, like any piece of technology, like even
rails, at some point it's going to be difficult to implement something. Right, if it's rails, if it's like engenets, you can zoom out or zoom in however much you want. But there is a sweet spot there where you know you can get super fast. You can you can go go super far very fast, and then you know, it's just a matter of like, Okay, I need to have the proper tools and proper hooks in the proper you know, escape patches to be able to build my own thing.
So yeah, what I what I usually So this is I think this is the most difficult thing that I have to do. We have to do is get people to try it. I just tell them, like, give it a half an hour, play with AVO, like build something of substance half an hour an hour, and you'll figure it out if it's something that you need or it's something that you don't need, but you definitely know more than just assuming it's you know, crap. Yeah, right, so when you
say try it, you know, try it for a half hour. I guess one thing we should point out is there is a free license for it, right, Yeah, so you can go and with you know, without risking any money or anything else. You can just go pick it up yep and so Upple comes in three flavors. It comes like the Community version, which is free. It probably has sixty seventy percent of all the features. Like most of the work that we do is on the free features, like
supporting advanced educases with associations and all kinds of crazy stuff. And then if you need more power, we have the Pro and the Advanced packages tiers which bring you give you a little bit more. But if you want to try it out, we don't have a trial feature yet anymore. We had it last year, but we we we just took it out. But like, if you try the free tier, you're again you're gonna know if this is something right for you or not. And if you have any questions like for
the Pro and Advance, like hey can I do this? Can I do that? Definitely reach out to us because we like answering those questions and we have like proper dogs for everything, so you will see how things work or don't work. So yeah, we try to make it as self serve as
possible. I wanted to walk through just real quick for our listeners here because there are so many admin tools out there and there is a differentiating factor here and that it's very like very UI driven, so you've like definitively set how the UI of the admin looks like, and then you just support a DSL
that allows you to drop in pieces of where the admin dashboards are. And I think that's a definitely one of the differentials I saw with AVO, like compared to any of the alternatives, right, Like all the other alternatives either had like a generator like with the administrate right where you have the view that you want or the dashboard manually, and then like even active admin follows that process a little similarly, or you have something completely out of the way like
motor admin, where it's like hey, uh, you know, you throw everything at it and it like, you know, you get everything, but it's like a little bit of a mess, right right. I feel like that was a nice middle ground there where you have like kind of this DSL that's just for like where to put things in the buckets of the of the user interface, which I think is really clever and so just like you know,
how does that work? Right? Like I sure patching like flex or like you know, view components or something, right, Like, it's so so clean of an interface, like I'm super curious. Okay, cool, So let me touch upon like our our decision of using a DSL. So when you're building something like this, you kind of have you know, like
you said, like three ways of doing One is you generate things. But we figured out quite fast that if you generate you're going to generate views, or if you generate a lot of business logic there, you're going to lose the ability to update. Like because we are shipping a DSL, we were able to shipt so many improvements over the time of three years, and users, the developers had to do just very tiny adjustments to the DSL of the
or the configuration. Like imagine if you have like, you know, fifteen twenty resources there and at some point we want to push you know, some kind of you know, breadcrumbs or whatever drop down, you'd have to go into every file, every view file and updated and make sure there are no conflicts and you know, maybe you did something there. So again that's a little bit messy. It's not you know, it's not for every project,
but it's a little bit messy when you're dealing with generated stuff. We do generate a few things for you, Like we definitely we generated the configuration files which are the resources and actions and some view files. Whenever you want to
take over you want, whenever you want to take control. But we we think that the DSL gives us this power where you know, we can ship a lot of a lot of value and in upgrades and so basically people buy one product, but after a year you have like so many more things upon like new things in that product with very minimal you know, upgrade with a very minimal upgrade process. And to answer your question, how like how did we do it or whatever, like, I don't know. We just think
it's the best way. But at some point I think we're going to go a little bit down that route where you know, you push some code there like with with configuration, but we will give you the or give your users the ability to add some things in the UI when in like in your production application, for example, we have this cool feature called scopes. So you go on the user's page, but you have like tiny tabs on the right where you can say, okay, give me the just the admin users or
just the non admin or whatever users were doing. This is still driven by configuration. So if you want to add another tab, you have to generate the scope in your app, commit it, deploy it to production. But we would like to give it, give you give your users the ability to create a filter for that, you know, for those users for that resource, and say, okay, just keep it here as a scope because I want to have it, you know, very I want to have it very
handy here. But and this is going to require us to do some upgrades and to figure out a way to make it beautiful and nice and good experience as it was as it is right now. And but this is coming somehow. I think this is the next iteration of and the configuration having that. So you mentioned upgrades, and I'm always curious, is I know upgrading is always painful no matter what tool you're using, So like what does that process look like? And how like how can you like let people be at ease,
like, oh, it's not so bad. So we just tell them it's not a bundle update, So just say bundal update, avell RO advanced or whatever you have. And usually we don't have breaking changes. We do have sometimes we do have them, but we have like a nice upgrade guide where we tell you, okay, if you're upgrading for two fifty six to fifty seven. You're gonna watch out with these two things. This is why we did them, this is why it's it's it's a breaking change. This
is what you have to do to avoid it. So we did have like a lot of breaking changes going from two to three, but that was, you know, a big, big update. But usually there are there aren't any. And if you do bundle updates, you sometimes get like a new feature or a new big feature that you know you maybe didn't plan to build now but you can, but now you have it. So the upgrades are
quite quite painless, I would say. So I kind of want to get into the use case a little bit further, because I'm kind of imagining there's this fuzzy line, I guess, between what I think of as like an
admin panel versus say, just stuff that the user's going to use. Right, So if I wanted to set up a dashboard for just a regular So let's say I'm building a software as a service, Right, so they log in, they don't have all the admin features, they just have the basic features for whatever, right, Yeah, so I can use AVO to build those interfaces too, Yeah, yes, so of course, so just just
as the just to give an example. Right, So one app that I've been wanting to build for a while is i want podcast guests to, you know, when they get an invite to come on the show and they pick a day in time, then I want, you know, zapi or something to hit an API and create a form basically where they can come in. And I just looked up the tip tap where you can do the synchronized editing, and that's the piece that I've been trying to figure out because I don't
want to build it myself. But anyway, so the guests and the host can all use stuff that I build in AVO, and then on the other end where I'm managing users and stuff like that, same deal, right, I can use AVO to build that stuff out. So it's kind of all
of the above. Yeah, So we have a built in authorization system that uses funded by default, but you can hook up action policy which is kind of similar, and I think there's a driver for can can can if you want to do that, and using the authorization feature, you can tell Avo like, okay, this is the kind of user that should be able to see the user's resource or this page or that page, or they can create new ones or edit ones, and using those funded policy methods and a few
more that we have properly documented in our dogs, you can tailor the whole experience. If you just say, for example, like a user cannot create a product perfect AVO knows what to do, it will not show them but create button. It will not allow them to go to slash new, it will do everything. So just to make sure that they have only the they
have access to, only the things that they have access to it. So we try to give you all of those tools, and we have all of those primitives for authorizations, and you could create two different let's say UIs or panels for two types of users. That makes sense. I guess the other question that I have, and this is something that I've been thinking about for a bit, is I've been wanting to build specific tools for people who are building a software as a service, right, And it sounds like you've got
a lot of the things that I've kind of been dreaming of. Okay, I've built this for people, but if you built it, you know, it occurred to me, well, maybe I just want to sell my own sort of dashboard panels or things like that that people can stick in to an AVO? Is that even an option like can you build plugins for Ovo? Yeah, so we do have an API. We have built an API for
our three. It's not very properly documented. This is something that we wanted to do this year and have like this plug in and plug in system with a director where people can create their own fields or their own resource tools, or their own dashboard cards or whatever other things that they're thinking about. So basically the plugin system will give you access to different initialization hooks where you can you know, start a plug in and inject some you know, menu items
or like inject create a new field and add that field there. So it's not a very rich and what it called environment plug in environment, but if you do want to build something like that, reach out to us because we love talking about that and we love supporting that. Yeah, and and speaking about this like this is another thing that people get when they use of On, especially like the customers that you know get like the pro advanced license,
and not only those like even the people people. We have a discourse server, we have a GitHub repo and whenever somebody comes in and says, hey, I have this use case that you know AVO doesn't know work for us, or it can't do something because it does happen, Like you can build software in so many ways. When they when that happens, like we try to make sure that one we build it for them, or two we give them the proper hooks for them to build it. For example, like the
attached the attached scope. So whenever you have like it has many and one attach a user or something to a different record. They wanted just some records to appear, not others, and said, that's perfect, that makes sense. Let us build it for you. And in about a week we just
deployed a new version and they had it. So again like if there's anything we try to do this, you know, relationship between us, Like if it's anything that work or whatever, we either build it for you or we give you the tools and the hooks to be able to do that thing. Which you know, sometimes with other tools, and I'm not talking to admin pals, but sometimes with other tools, you would pay anything for somebody to
listen to you. You know, when you're using a GEM or a jazz plug in and you're stuck and nobody listens to you, like come on, man, I need I need some help, you know, So, yeah, this is what we're trying to do with with with our and everything. I just want to talk about the business model a little bit because I think, yes, Sidekick, I think is the most famous probably a product that
kind of follows this business model. So how did you decide that you're gonna do this community version for free which is open source, and then the paid version on top? How do you decide which features going in free and which features are paid? And then finally, just can you talk about the technical side of how do you actually distribute a gem that isn't free? Yeah? Gotcha? So how did I decide that? Was Like when I started with Avo, I didn't mean to build a business. I just want to see
first if I can build it, because that was amazing. I love admin panels. I built a lot of those and internal tools, and I wanted to see if you can build it, and then I said, okay, I want to sell it. I think at first I just wanted to sell it for money, so it wasn't on Ruby gems or whatever. But then I figured out and by speaking to people like, hey, nobody's going to
use it if they can't try it, and that's true. Like if you cannot you know, test it out a little bit, it's you're not going to choose it, you know, not gonna buy it from just a few images or videos. So how I you know, how I got to like free and paid? You know, everybody will probably sidekick like like you said, like I saw Sidekick and other products and okay, there's a free version perfect, I'll use this one, and there's a paid version, which is
the other one. How do we choose which features go where? It's not an exact science. It's a mix of how much it takes us to build them, how much it takes us to maintain them, or how much we think it's going to take to maintain us maintain it, and a little bit of how much value value they add. Right for example, like the dynamic filters where you have like stripe styled pills where you can go and you just go on a field like price and say filterable true, perfect, that's it.
That's all we have to do as a developer. And then in the UI you're going to get like a drop down and say okay, filter by price, and you're going to have like a nice pill and say I want it more than this price or less or between or whatever. So that's like a very powerful feature which we spend I don't know, I think three months building it or four months or something like that. If you wanted to build it in house with your team, you got to have the first of all,
a product person that knows what they want to build. You got to have a designer to design it. You have a front end person, so somebody that knows how to build that. Because most or I don't want to say most teams, but some teams only have like back end developers. So you see, it's like this whole You need a whole team to build a feature like that, or you can pay something like, you know, a fraction of what you would pay for that team to build it for AVO and
get so so much more. That's kind of our value proposition instead of, you know, having teams build certain features for you, you kind of have them whatever. Nice. Yeah, that makes perfect sense. Kind of. I did think it would be a bit of an art because there's not like rualized too. This is free the spirit. It tends to be a bit of disenterition and stuff. Yeh. Yeah, And again, like most of the work we do we do want the free features, Like you're not gonna
believe how much because we want to support so many things. But right now, yeah, do you have a like transfer a feature from paid to free like with an upgrade because you're like building a lot of new features that are paid, do you ever say this feature maybe we can now give it for free as well? Yeah, we did do that. So when we jumped for from Other two, you know, from Other one to two or from two or whatever I wanted to do, or two to three. I don't
know, something like eight features from pro we just made them free. It was like custom fields, custom everything, I think, translations, something about search, like a lot of things we just made for free because it was kind of difficult to try to support them as paid and make people, you know, kind of like check if the person has a paid license or not or whatever. Some of them were just because it was easier for us, and some of them because they really made sense. It really made sense for
us to give it away for free. So most of the features went downstream from paid to free. Only we only had like one time, the feature that went from Pro to Advance because we made it so much bigger. It was released as a Betha to see people are going to use it. It was good. So we said, okay, we're gonna build this whole thing about around it, and that was moved to advance. But again, like
we're developers, we don't have any VC money. We're not in this business of, you know, trying to squeeze every little dollar and penny from everybody. We know how difficult it is when you're starting out and somebody just saying, Okay, this is going to be paid from now on, you're going to have to We don't want to do that, but not in that we want to help you guy. So yeah, we haven't done that. Yeah,
now that's good. Like, yeah, well, one of the things that kind of gave me confidence we use on this project was that I knew that you want VC backed or anything. You were just in deed developers just like me. So I knew that I wasn't going to get messed over by the usual VC tactics. So, like, how do you handle the paid distribute of the gems because you ever used like three gems off Ruby gems, Like, if someone's paying, how do you kind of what the technical side
of distributing that? So In the beginning with other one and two, we had everything on GitHub in one repository, so if you were a little bit savvy, you could go in and say falls to through whatever and you say, okay, I have the license for fee and whatever. And we knew that some people were going to do that and whatever. It was all good. It kind of helped us with the traction. We wanted to get it in front of people to get feedback and see like do you really need this?
Is this something that you you know? Does it help you that much? So in the beginning we just had that and we were pushing all the features in one gem and you only had like one license kee that would check on run time if it's a valid license or not. Now with about three we broke it up into multiple gems a little bit. We did that because we wanted to keep some gems hidden like behind the paywall, and because it
made sense we had too many things in the main repot. And what we do now is we have I think six or seven gems in total, and when you want to install it, you got to have if you want to install those behind the paywall, you got to have a gem server token.
So basically you still use sorry, you still use a gem file and Bundler and the bundler kind of you know, infrastructure, but instead of asking for a gem from Ruby gems, you're asking it from our private repository, and our private repository uses Bundler authenticated, the authentication feature, and it will lasts like do you have a token? And we will check right very quickly, like is this token still valid? Can they use this version? And so
on? So basically you still use gem files, but you get does the same thing, doesn't it? Yeah? Yeah, yeah, yeah, yeah yeah. They have their own private server. What are you serving the gems with? Because I know there are a couple of private gem server systems out there. I just built my own, I know, I know. So there were a few gem in a box and a few others, but I couldn't I couldn't figure them out. I'm that smart. Sorry, I couldn't figure them out. So I just reversed engineers, and you know what I
did. I set up like an nd grock, you know, the top, and then I just I just pointed bundler the gym file to that n rock you r l And now I was just seeing like what what what? Requests do they do? Right? What the what request does bundler do? And I figured it out, I reverse engineered and I built my own so we're still running on that works very very well. It's it's a Sinatra app. We had it on fly I own, now we have it on something
else. But it just works very very well. And yeah, I was going to ask if it was a standalone app or if it was part of your monol beautiful monolith. Yeah, no, it's just that's a Sinata app. I don't know why we built it like that, but we have a different rails app that checks the license keys and does the licensing and the subscriptions and everything else, which is a jump startup. We're very happy with it.
We moved fast when we when we built, when I built it, you should, if you get some time, you should really blog about what bundle actually does under the head because I think that would be a fascinating blog. That would be so interesting. Yeah, you know how much I searched for that information, Like, there's no information anywhere. What happens? Why does the why does it go to the version's route? Why does I don't know? So, yeah, I think I should have written that back in
the day. But I think I still can remember a few things. If I if I sell it as a premium video somewhere for seven dollars. Course, yeah, but if anybody, if anybody wants that code, it's an ugly, stupid code that just works. I just I gave it to somebody. I think it was Georgia Boy who wanted to do something with Flexui. But if anybody wants to just reach out and I'll figure it out. I
can just copypaste you that one Sinati file that handles everything. So I'm a little curious how many people are using AVO out there, because I think we talked about it before it was kind of new and there were some things we're still kind of turning wrenches on to make it, you know, not leak. And yeah, now it seems like it's something that people go and use and it's fairly battle tested. So yeah, how many people out there on
it? So it's kind of difficult to count. To the customer, it seems straightforward, but it's difficult because you know, they get doubled in stripe whatever, they get more accounts. It's about I think two hundred two hundred and something customers paying customers that we have right now. I don't have the usage numbers, but we definitely I think all throughout this whole time of three years when we built it and we got some more trust and street credibility from
the community. Like before, I was going on calls with customers or potential customers, and they were asking me plainly, like what happens if you go under what happens if you don't want to build this anymore, which is a fair and valid question. Maybe it's a little bit rude to ask it just like that, but whatever, it's a fair question. And yeah, we don't get those questions anymore. Right now. We're a team of three people, Gabriel being like the third, you know, junior developer that we hired.
Paul was the first. We're three people working on this almost full time everybody. I do a little bit less engineering now than before. Paul is very good with that. I'm trying to focus on marketing and sales and thinking about the big picture and everything, and of course going to conferences because this is what I'm doing lately. So yeah, but we're three people. It's a good business we have. We are profitable, we have a decent four figure m r R. Yeah, we have a few couple of few surprises
I can talk about right now. But yeah, things are going well and we have a clear path forward. We're providing value and yeah, it's it's not that shabby, you know business. You know, I don't know what's happening with it that that was like one like two years ago, two and a half years ago when I first talked about this. Now we're definitely going somewhere. Yeah, we'll say your pricing is really reasonable, thank you all, I mean more more than reasonable, to be honest, for a lot
for a lot of businesses. It's a very small price to pay for them. And interface that's really really easy to get started with. Also, I would I'm curious, like I found the templates on the site and there's only you know, three of them I think solid q being one of them, and then bullet train and jump start pro. Uh is just like a pattern you're looking to expand on or I thought this was really interesting. Yeah,
yeah, so there are a couple of things. Yeah, the path, the templates are there, so people that have for example jumpstart or bullet Train, they can install it very very quickly. But if you're starting a bullet Train app right now, always going to be the default admin panel, so it comes shipped with bullet Train for jumpstarts, you're going to have to run that template and it's going to be okay. But I think I know where you're getting to. Like we are going to try to build some kind of
it's not starter kits, but like imagine this. Imagine this. You want to build a ticketing app, right support ticketing support app. We give you all the templates, like okay, these are the models, these are the resources, the actions, the filters, everything you need for a regular ticketing app. And then you can get those for free and you only have to pay for the APPA license. So it's kind of like once, but it's not kind of like once, you know. So you get those and then
you can go and explore and update them and add more things. But you get the ticketing app almost for free, let's call it, right, you all have to pay for the app, and then, like you know, there's another inventory app or whatever. So we are thinking about these things to and expand into that direction. Definitely just need some time to start building it, that's all. There's never enough time, right right, never, Never one of these things, Chuck and I will get our internship program started and
we can start chipping away at everybody's side projects. Well, this particular side project that Adrian's talking about is essentially what I imagined Rail's composer to be. So yeah, I feel that there's a lot of movement around like new rails projects or kids, but not necessarily started kids. But you know, how how can we start an app and not have to add device by ourselves every
time? And there are a couple of things out there like regular templates, you know, rails bites and whatever there are like on the other end of the spectrum are like jump Start and bullet Train. But I think that people are kind of you know, thinking about, hey, is there a middle ground somewhere or something? And it's definitely a good question. Is that something
that you're thinking of building that is exactly what I'm thinking of building. That's great, So it's not exactly a starter kid, Yeah, I'm looking forward. Yeah, I'm looking forward to see that, to seeing that If you want a jam at some point, definitely I'm open to that because, yeah,
I think it's a there's a need a little bit for that. Yeah, yeah, we should definitely talk and hammer it out because I kind of miss the days of like I don't know if you knew the site open Source Rails, but it was like it was a page that just had like common
solved problems with rails apps. And I had like ticket mules, one of them for like a bug ticket tracker, or like they had all kinds of like popular you know, reposts that were just like full featured apps that solve the specific purpose, so like Evil would be on there as an example, or like for admin tools, or I just had a bunch of them, and I kind of miss having that center central resource of like Okay, here's a full app you could just download and run and it like solves this problem,
right, yeah, yep, yep, yep. Yeah. I agree, But you know you gotta so see, we're going back to the same thing. Like you know, I hate admin panel frameworks. I wouldn't use them, right, I would like to have one, but I don't trust it, you know. So, but I think it's a shift. It's a little bit of a you know, we gotta shift our we gotta you know, improve ourselves and shift our mindst I mean, I will say I used that site mostly to learn, right, Like I was curious, like
okay, well what else can I do with rails? And I would like go on to that site and just like download a new app and find a new feature like I didn't know existed, right, And so I feel like there's definitely like a you know, is it recreational or not kind of vibe
that's like kind of split you know, a lot of people focus. And so I love seeing stuff like AVO where there's like, okay, a business behind it, like you're not gonna like quit on this, right, Like I don't have to worry about like it going stale as an open source project.
Yes, So I hope that that like idea keeps going right, like jumpstart rails and like bullet Train, like these are all similar paths, right, Like, Okay, they've created this thing that's very useful, and you know, now we can feel pretty good that it's going to continue to be useful and not like break all the time, right, Like it was definitely like using open source that is like everyone's fear like how long would this last? Right, and the guy will just burn out? Right, like yep,
yep exactly. That's a huge problem in open source and there are there are projects and projects. There are some projects that you can you can call finished after you know, to one week of working on it and whatever. It just maintain it like once a month or something. But there are projects like oh, well, like you know, because we see that in active admin and Rails admin and everything like the others, people can't work like we
were three people working at this almost full time. Like if you're if we were to do this as an open source and we have to do jobs and everything else, this wouldn't have work. Nobody would have anything like like this. So yeah, I think it's a it's a sin. It's a sign of maturity from for you know, the Rails ecosystem that it can support these types of projects that people, you know, they find value in. Okay, I'll just pay for that instead of you know, building it myself.
Yeah, and see, you know, we're getting into this and you know, I try not to just overbearingly talk about, you know, what I've been working on, but yeah, this is where I got into it. Right, So you're talking about ticketing or I'm thinking like user management or subscription management or you know, building in you know, so you get the piece of the engine that's the stripe web hook that everybody has to write eighteen times every time they build an app. But then it connects into the rest of
this you get in your admin panel, right. And so that's the piece that I'm imagining, so that if somebody goes out and builds software as a service, right, they say, okay, I want I want the subscription management, I want the user management, I want the you know this, I want that right. I want people to be able to sign up for my product products. Right. So you pull all those pieces in, you load them in as engines, right, or you know, you hook them
into AVO right for the admin pieces of those. And so maybe you're pulling in here's the front facing and here's the admin facing, right, and so I'm gonna load both engines. I don't know, something like that. And so then at the end of the day it's like, hey, look, I want to build this that for podcasters. Well, I've got the billing and the this and the that and the other all set up, and I can get a support person to come in and use these systems because they're already
fleshed out. And so and then AVO gives you the means of adding like custom fields and stuff like that that give you the features that you need to customize it. But it's not this overwhelming thing that you have to pull in in order to put out what you really care about, which is helping the
podcasters. Yep, yep, I agree. It's it's always it's always a you know, a fine balance, I think, because whenever you're pulling in you know, something like jumpstart or bullet train, you're going to have to learn something or avol like even like you're going to have to learn something about it, right, just a few I don't know, there's I think there's there's no gem out there that will help you like substantially and doesn't give you like some dogs, Okay, this is how you do it. This is
that. So you're going to have to learn something. But there's like a fine line about yeah I need to learn everything about it, or I just I can just jump on it like this this. Yeah, And that's that's the other piece of that, right is, Yeah, I don't want to have to go in and understand the internals of the system. I don't want a clunky API. I mean, that's my big issue with most of these admin panels, right, is it. It's it's got this clunky API that
is halfway based on the database except for when it's not. But it kind of is, but it shouldn't be, but it sort of will be. And so I have to go and I have to figure out the ins and outs of why it does or doesn't do something. And so at the end of the day, it took me as long to install it as it would have taken me to build my own thing, and I would have understand the
whole my own thing, front to back. And so you know, I want, hey, look, I got all the fundamentals that I needed to build this app running within a couple of days, right, and so now I can go in and I can do the custom logic that hey, it doesn't exist this kind of a thing for podcasters and RSS feeds or whatever the heck else you're going to build. Anyway, you mentioned conferences, and you told us before the show that you were working on Friendly RB. So what's
the story there. It's in September. Yeah, are you the same word week as Rails World or no? No, No, it's actually it happened like this last year and this year too, is the same Like before, Friendly there's Uruko. Like one week before then there's Friendly, and then one week after Friendly there's Rails World. This is this is how it happened last year. Again this is how it happened this year. Of course, we kind of court. Actually we did coordinate, not kind of. I was
on a manda. I wrote to her like when are you are you still on that date? I want to know because I don't want to be on the same week definitely, And then I coordinated with Muhammad that will organize Uruko. So yeah, it's going to be September eighteen nineteen in Bucharest, Romania. The weather is just perfect. We have amazing food, amazing coffee, Like the Italian people told me that we have amazing coffee everywhere. So you
know, there's there's that stamp there and it's a beautiful walkable city. We're gonna have beautiful, very nice speaker speakers. I don't want to name drop the attendees, but there are great attendees as well as I've been seeing the ticket sales and we have like we have announced the first batch of speakers. Uh, it's gonna be Rosa Gutierrez from thirty seven Signals. You might know
her from the latest release of solid que she was she built it. Uh. Then Nabila Yusup, which is a software engineer from Factorial from from Spain. We have Stephen Markuheim, which is the ESQ lite guy or escul like Jesus as Yaro Uh nicknamed him. And we also have Tom Rossi from buzz Prout. If you know Tom, you know, you know, you know his mile. He's gonna be He's going to be great. And we do have a couple of surprises. I'm still waiting on confirmation from people, but
I do have a few other great speakers incoming. And it's a it's a friendly it's a friendly atmosphere. It's going to be two days, one track, so everybody does the same thing. It's very loose. We do have a schedule, but we don't really follow it, but it still works out in the end. We're going to do some activities Like last year, I
usually I think you remember, we went and and did walking tours. I got a few guys, tourist guys, and we did walking tours through Bucharest and after the conference, we went to the mountains and we did some activities there for a day. So it was really cool and friendly, and a lot of people told me that they made, you know, a lot of friends and they really enjoyed it. So hopefully if we can keep the bar up this year as well. Yeah, I really, I really enjoyed last
year. I was lucky enough to speak last year, and yeah, everyone that was just super nice, and Adrian and the rest of the organizing team were just really on the ball. Like it was hard for me to believe it was the first year of the conference, just given how slick it was. I mean, I'm sure I must have been fires behind the scenes, but I never as a speaker and attendee, I didn't see any chaos or
anything. It was just a very relaxed vibe. Like I'm still like fairly new in the Ruby community because I only started working with Ruby about in twenty twenties, just when the world went to shit, so I haven't really had a chance to meet many people in the community in person. I've obviously interacted with people online and stuff and friendly. I were just a great place to meet people at kind of worked with online and meet some new folks as well,
and it was Yeah, the name is pretty appropriate. I would say it's a good name, and it's it's well and thank you. Yeah, I think the name brought to people I don't know. I don't know. Yeah, it's unique, isn't it. It sounds pretty friendly to me.
You shouldn't laugh. It only encourages me. That was terrible. So my question on some of this is is like, I've been to conferences that are highly technical, and then I've been to conferences where it's, hey, look, you know soft skills, and we're gonna we're gonna pat your head and stoke your ego and we're not gonna get as deeply technical. And then I've been to other conferences where you kind of get a mix, and then it's
others where you know, there's a major trend out there. So right now I'm talking to a lot of people and everybody wants to learn AI and Ruby and so like eighty percent of the conference is that and the other twenty percent is And we had some keynotes. So if I show up, what kinds of talks I expecting? Or if I fill in your CFP, what kinds
of talks do you want me to send you? So, first of all, I want everybody to write to submit their cfps, because one of the things that we really want to do one of the so we we kind of say we want to do two things. Bring like really known people to the region. Like last year we had Chaviernia, we had Jeremy Smith from the States, Jason Sweat, we had Nick like a lot of well known people and others in Nayushen and others that I'm missing right now, I apologize.
And the second thing we want to do is bring newcomers to the stage. Like my first conference talk was in twenty twenty in Rodswoff in Poland, and it was very difficult for me to get there to give my first talk. And I know that there are so many people that have a message, have something to say about it, to say about to teach others and to speak about that, and we want to do that. So everybody please submit a CFP regarding what are you going to see, like we'll see this year.
I really wanted to keep it as balanced as possible, Like we started, like the first talk was Chavier telling us about the internals of Zeitwerk, which are like you gotta like really scratch your head and that breaks your brain, exactly right, It's so smart, exactly definitely, I wouldn't be able to do what he's doing. So and then we finished off the conference with Jeremy speaking about how what it is like and how he is a good like indie
developer and with his consultancies. And in between we had talks. We had one talk about AI. Jason spoke a little bit about how to use hgpt uh, and then we spoke about we had somebody making Julian Chill made music with using Ruby and it was a really cool vibe. We had somebody talk about how to build teams about mental health, so to talk about mental health I really recommend to everyone like it was such a great talk and so so well said. And then we had some a little bit more technical, a
little less more technical. We talked about documentation and everything. So it was it wasn't like this, you know, ruby tech tech tech tech tech tech tech kind of conference. It's not going to be that. If you want that, I'm sorry, but friend is not. We're going to have a little bit of that, but we're still going to talk about life and mental
health and a little bit about business. This is what I'm trying to bring this year, a little bit more about business and people that have done it and talk about open source and you know, being doing the indie stuff. So yeah, it's going to be very balanced, I would say, awesome. Yeah. Last year, I think the thing I liked was it never got monotonous, like I tend to get bored quite easily, and I just
liked how we had like intense light. Then we had a completely non technical talk about mental health like like you mentioned, and it was just I thought the flow was nice that it kept me interested. Otherwise I just zone out and I get bored. Yep, that's good because I'm the biggest twelve year old. My wife knows, so if it keeps me interested, it's a good thing. I'm the same. Yeah, I know, And that's what
I wanted to do. Like, I know there are people that just want to see the tech and the heart tech and the new stuff, and I understand it, but I think there are other conferences that will handle that for you. I want this to be nice. I wanted to. I want I want people to come and then be and you know, make friends and enjoy themselves and walk out and say, man, this was just perfect. I love it. And yeah, well, and you get to go to
Budapest. It's bukerees Charles's caress. It's okay, It's okay. When when big stars come and like I think you know a c DC or Metallica when they came, they come to Bucharest and say hello Budapest and the other way around. So it's okay. I'm sorry, Nories worries. Bucharous is beautiful. Really I need to change my back background to the Cone of Shame or something. It's okay, it's all good, awesome, Well, we're kind of getting toward that hour that we usually aim for. Is there anything else
that people ought to know about AVO or Friendly RB? Nothing? Much like with AVO, I know there are trust issues, but just give it a try thirty minutes an hour and you'll figure it out. If if it's not for you, I'm all good. But more importantly, like, let's let's get to hang out at Friendly and other events as well. But we're gonna try and host you very very well in Bucharest in September. So if you want to do like a trip and visit Eastern Europe, this is the perfect
perfect occasion. Awesome, all right, Well, let's do our picks and then we'll wrap this sucker up. Adrian, one more thing before we go wind picks. How do people find you online if they're like I like Adrian and I want to talk to them? Yep, So I am Adrian the Dev, Adrian the Dev almost everywhere, like on Twitter, on GitHub, I have Adrian the Dev as well. Uh. It's avo HQ dot io or avo dot cool that's the domain name avo dot cool uh and friendly rb
dot com. But Adrian the Dev. You just search Adrian novel and for sure gonna find me. I'm on discord email. Everything awesome, all right, Valentino, Why don't you start us off with our picks? Sure? Uh? Yeah, So I'm I'm building more and more of this little hardware called Adieu I gonna do. But it's a you know, wearable AI that's fully open source. Uh and it works all on device, which is pretty remarkable for what it is. I highly recommend it. I finally got it
working the other day on the device. Uh, and so I'm really excited to like dig in and start experimenting with it more. So check it out. It's a pretty cool project. Don't send it to m k b HD for a review. That's the first person I'm sending it to. But that's a great milestone to have it running under hardware. That's a that's a good feeling I met. Yeah, I gotta. I got it on the Google Chorld device, but I have a little Raspberry pies. I'm trying to put
it on next just for pricing. Okay, nice, All right, are you su? What are your picks? I think actually, a couple of weeks ago, when I was on as a guest, I think my pick was avoid. I think this is pretty serendifitent. But the next time, fast, I think I'm gonna go with another music pick. There's a band
last time i'd also done a music pick. I'm going to stick with another one, the band called Big Big Train, who I've been following for a number of years, and they've just got a new album out called The Likes of Us, which I'm sure you'll find wherever you get your music. But yeah, they're but as English a band as it's possible to get. I think literally this country embodied in in band form. But yeah, I've been following them for a number of years and they're another one that I think should
be a lot more famous than they actually are. They do it America for the first time last month, so hopefully see a bit more of that as time goes on. But yeah, I can only think of the one pick this time. I'm going to stick with that. Awesome, all right, I'm going to do mine. I always do a board game kick pick first. This is a card game, and I kind of lump them together.
So if you're a purist, sorry, this is called Doomlings. I don't know if any of you guys have played Doomlings, but Doomlings is a card game. It's pretty simple. You have different color basically traits genetic traits, and then you have an age deck and you go through three ages that all end in a catastrophe, and the catastrophe makes you adjust your play space right, so you might it usually lowers your hand limit, it might make you
get rid of some traits. Things like that. The different traits give you different points based on whatever's on the card. And anyway, it goes pretty fast. You play it in like twenty minutes. Of course, it goes two to six players, and I've only played it two player with my son. He got it for his birthday last year, and he wants to play it. I want to spend time with him. It's a win win. It's like I said, it's a pretty simple game. I've played some other
games. I have a lot of these elements to them that are a little more involved that I like better. But if you're looking for something you can pick up and play with, like a ten year old, he's twelve, but you know, and he but he likes it. But I think you could probably go down to ten, maybe even eight. My eight year old might be able to play it. I don't know if she would get like how you want to play some of the cards together to score, if that
makes sense, but she can definitely play it. Like the mechanics aren't that involved. So anyway, I'm gonna pick Doomlings if you're looking for kind of that simple game and you don't like the heavy games, or you're playing with kids, because I could see somebody that just kind of likes you know, kind of a little bit of a thinker. But you could still have a conversation with whoever you're playing with, you know, maybe like a sushi go
party. It's it's kind of on that level as far as how complicated it is. So Doomlings and I think there are a bunch of expansions for it too. So anyway, and then I thought, my wife and I started a new TV show. Oh, we were watching the new star Our Trek Discovery, which is the last season, and I mean, so far we've
liked it. It's been a couple of episodes, so obviously we don't know how well the story arc goes, but it's based on an old Star Trek the next Generation episode for you know, kind of the thing they're trying to find solve whatever. So anyway, so I'm gonna pick that Star Trek Discovery. And then just a quick shout out. We have been putting ads in the shows programmatically, so some of them aren't always super relevant to you all. If you want ad free episodes, go to Ruby Rogues dot com slash
Premium and you can pick that up. And then I'm I'm doing calls every week. Now I'm going to invite a bunch of the past guests to either present and or join the crew for a little while. And so if you want to come have conversations about Ruby or rails every week and hear from experts in the in the field, it's Ruby Geniuses dot com so yeah, that's all the stuff, Adrian. What are your picks? What? What?
What do I get to pick an if anything you want? I picked a board game, I picked a TV show, like if there's books you like, you know, tech whatever, So I'm not ready, but like I love my AirPods. I still think that one of the best products Apple makes. These are just amazing. Speaking of of shows, the Three Body Problem, that was amazing and it's very good. It's on Netflix, uh and something tech I. Oh, there's a lot of talk about Kamal and deployment
and everything else. Everybody just try Hatchbox. If you're doing rails, try Hatchbox because it's like exactly what you need. Like I was using Doku or something else before, but now I'm super super happy with it. It's it's it's almost perfect, but it's very very good. So yeah, yeah, I've been using Kamal and I love it. But yeah yeah m hmm, all right, well thanks for coming, Adrian. This was a ton of fun. Thanks for having me, guys. Yeah, it was it was.
It was nice speaking about about av and friendly and uh, seeing you guys again, Charles and Nayusha. Nice meeting. Get the clients nice meeting Until next time. Max out h
