Behind the scenes: how to build popular open source software

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
today I'm going to update you on what's been happening with the community in the open source space we've got some huge progress that's been made we reached over 100,000 stars on GitHub and there's no way that we could have reached this Milestone without the incredible support of the community I'm going to walk you through our blog post thanking everyone and giving you a bit of a behind the scenes on how we operate at charm and how we were able to sustain this growth all right so this is our This Is How We Do It Zer to 100K stars and this one was actually written by a founder of charm Christian Christian's also our designer so he did this this video is so funny I'm going to introduce some bias here before you watch the video it's so dramatic it's so over the top it's so charm I think it's hilarious so let me let me show you what I'm talking about everyone must stand alone I hear you call I had to do the I don't know just it felt right isn't that freaking adorable with all the little stars like my favorite is when it goes like the closeup like the stars eyes and they're like dead they're like these dead anime eyes do you know what I mean some of you are going to totally geek out over these numbers what I think is super cool is that there are companies that are using our libraries to improve the ux of their command line applications do you know what this means for us command line lovers this means that it is finally getting the recognition that it deserves these companies are putting time and money getting familiar with our ecosystem so that they can Elevate their command line interfaces that is so cool that to me is what stands out the most out of all of these stats it gives me so much hope for the future so here is a bit of the Playbook of how we got to it obviously you got to start with a problem the whole point of software is that you're building some solution to a very human problem or in this case usually developer problems we like to try and build tools that are going to elevate our existing processes and typically when we have this paino obviously the first step is usually to find what's already out there is there a solution that can help alleviate this and often times we find that there isn't or at least there isn't something that's as usable as we want it to be that kind of leads us to having to build it ourself bubble te is a great example of this because we needed a framework that would allow us to write these twoes in a way that is easy to work with and can handle a lot of different processes asynchronously so bubble te was born there are also a bunch of different apps in the charm ecosystem VHS is one that stands out as one of the most popular it really facilitates having to record examples and demos of your projects we kind of get into our philosophy around building out examples further down the article it's really awesome because the side effect of us needing to build these things to develop our own applications that we really want to see exist has really elevated the go community and the open source tooling that's available in solving our own problems we were able to connect with others who are having similar problems and provide them with Solutions deep in our connection with the open source Community being part of the open source Community has its own challenges that we'll touch on a bit later it is so worth it being able to connect with other developers in this way and collaborate to make a project better and even to see the links that people are willing to go to to continue you to see your projects supported is so inspiring frankly personally it's even given me so much respect and appreciation for open- Source projects at this point if I'm using some piece of software okay ironic because I'm saying this while I'm using a proprietary browser I will generally try and lean towards the open source tools that are available based on the fact that it is insanely valuable to be able to have unobstructed access to the software even if something were to happen in business or to the person that's hosting the original you won't just get cut out one of these days do you know what I mean it gives you this like continuity and this reassurance that like you also have ownership of the software and I think that's a really important part of the open source philosophy let's also talk about the developer experience cuz as I mentioned that's kind of what the goal is that we're trying to do at charm is we're glamorizing the command line which means we're improving the experience of using the command line the goal is to build something that is intuitive and enjoyable as long as it's something that has been widely adopted well tested and well loved historically it's a pretty good bet that it will age well it can take a lot of time to get familiar with the Vim keybinds but once you do it makes a lot of terminal based applications more accessible to you given how Loved These keybinds are and how widely supported they are not only commandline based applications but even goys another thing that's really important is when we're designing these things we're continuously questioning our design and thinking if there are ways that we can improve it and of course the feedback from the open source community and the questions that we receive helps us identify these weaknesses and ways that we can improve so that's incredibly valuable we do of course though want to keep the breaking changes to a minimum that's also very important for us is that continuity and consistency for the users I don't know about you but your girl has definitely accidentally upgraded to the next version of a piece of software and had it completely break compatibility your projects will continue to run even if it's been 6 months or a year or even more given that we're designing projects for developers figuring out what to include in the API is pretty essential the main questions that we're always asking ourselves are how can we make it easier how do we make it so that we can completely avoid human error I mean as much as possible and how can we design the API in a way that does work well with language servers these are all really important considerations additionally as I mentioned tuis are an important part of what we build but what you'll see in a lot of the charm tools is that kind of end up using both a c and a tuille now some of you might be questioning why you even want a Tui Tui does allow for a certain amount of intuitive interaction with your software it is nice you don't have to really guess and that's a really important part of a well-designed Tui is that it stays as intuitive as possible even questioning how the Tui should come about how the data should be represented all of that is really important for Designing chei and now in some cases a CLI might be preferred or better or even having them both work together having both a Tui offering and a CLI could be the best case scenario there is something quite Timeless as well about tuis like you look at something like them that has existed for decades at this point and is still so widely adopted and widely loved just because it is more similar to a graphical user interface doesn't make it any less compelling or relevant for command line applications another thing that's worth highlighting here is that it can also be very complimentary to the C experience and that's kind of what I mentioned when I'm saying that you can have the Best of Both Worlds by kind of bringing the two together having a CLI command line interface is also incredibly valuable this is what allows you to automate a lot of the operations and interactions with your application one downside of CIS is that they're less intuitive by Nature so they do require a bit more time to get familiar with you got to read through the help menu and then you can kind of start to figure it out one thing that we try to do to keep our CIS as nice and fun to work with as possible is that you can kind of play around with it and learn as you go this means typically having very useful error messages for the user that way if they run a command incorrectly they don't always have to run the help command to figure out how they can use something you're giving them very useful feedback so that they can kind of just play around with it in a way that's comfortable for them another thing that's worth highlighting with the C is in some cases it might actually become more powerful by leaning into existing pipelines and that's always something that's worth highlighting especially those who might not know how to use those pipelines effectively the read me is an essential part of the development process for the charm ecosystem it is absolutely crucial to have a good read me we're not really ones for selling not a salesperson no one on the team's really interested in selling it to someone I think good software speaks for itself but the thing is is good software also needs to be obvious into how you can use it and how it adds value to anyone who's looking at it the goal of the readme is for users to be able to look at this one document and they already know how they can get started how they can get it installed why they would want to use it and they've got examples of it in action so they don't have to necessarily pull the code run it locally for them to get a feel of what they could expect from this piece of software the read me which gives you an understanding conceptually of what the software does is incredibly valuable but having real working examples in your repo that makes it available both online and offline having this documentation living with the code means that it is accessible to the users at any time but these examples are crucial it gives the user a cookbook a way to kind of play around with working code that they can kind of tweak and try to tailor to their own needs and maybe even break it a bit to figure out what does and doesn't work with the library or the framework now if you've seen anything charm branding is a very important part of the charm World our goal with branding is mainly to make it unique and impactful and have it Be Inspired from source our es outside of tech it's really important to expand Beyond what's comfortable Beyond what's normal beyond what people expect and bring that unique perspective into something that is going to be so refreshing for a lot of your users we want it to be very tongue and cheek very fun very playful and just completely different from what you would expect especially in a very serious commandline environment that can be very intimidating for a lot of developers let's make it fun let's make it playful let's make it welcoming for developers of all levels one thing that's really important as part of the charm brand is also making sure that there is a consistent output of cool stuff it's not just a one anddone project that adds a ton of value and is really popular it is a collection of cool projects and a company that you know is going to be continuously outputting these cool projects and supporting them it's really important to Branch out and try new things and experiment while keeping it still relatively interesting for the existing group of people and in some cases it won't be that interesting to a larger demographic or it won't be interesting to a more Niche demographic there's going to be different projects for everyone and there are going to be some projects that are by Nature more widely adoptable by a larger group of people VHS is a good example of that even gum anyone who's wanting to do interactive scripts like gum is such an easy approachable thing that you can integrate and of course marketing is important for any successful project we like to post this on a lot of platforms where we know there's a lot of other developers you're watching it this is one of the ways that we get the word out and there are other spots as well that you can check out here the thing is too is word of mouth is incredibly valuable and because we've been able to put out such cool things into the go ecoystem into the command line ecosystem it has attracted a lot of developers who do have a platform anytime that anyone with any level of influence is able to share us with their circle is always much appreciated and very impactful for us now as I mentioned before being in the open source space is incredible it's also kind of difficult at times when you have a popular open-source project you can get flooded with proposed enhancements bug reports that really add up to an insane backlog but what's important to us at charm is being able to kind of analyze the trends in what people are saying figure out what we need to prioritize and then executing on that so while we're not able to add every single feature that gets requested it is still valuable insights to know what the general consensus is from our users and unfortunately because we can't bring in every new feature that every user wants it also means that we have to get really good at saying no gracefully we want people to contribute their ideas in some cases it just might not align with the vision for the project or it just might cause the project to grow beyond the necessary size the more intentional and directed your project is generally the more helpful it is more broadly you don't want something that has a ton of dependencies a huge Chalker of a code base we want to keep it light and functional and not make it too bloated in a lot of cases as well we're offered a lot of feedback that can help us actually improve the product itself whether that is through just issues being created having a discussion with the maintainers and sometimes even entire poll requests with these changes implemented it really does add so much value to the project when we're able to get the community's support and backing on all of these different projects and another part that's really important is making sure that your users feel that there is some stability with these projects in open source it can be really eerie when you see that whatever Library or application you were hoping to depend on hasn't had any maintenance in years that makes you start questioning if I have an issue with this piece of software will I be able to fix it will I be able to actually work with it this is where supporting our applications becomes really important being persistent in making our software better being consistent in delivering releases and interacting with the community that is expressing any kind of concern is a really important part of being part of the open source ecosystem and in building trust with your users so that's something that we kind of have to continuously work on and maintain show that these projects are stable and worth getting to know how to use them because we will have your back and we'll continue to support you with that endeavor oh look it's me and one of the ways that I try to continue to support our development team and our community is showcasing a lot of our different projects on YouTube and that kind of can act as a second wave of new users coming in getting familiar with our stuff another thing to keep in mind is that sometimes the success of these projects are not immediately obvious we get some projects that go absolutely viral and then start to taper off and we have other projects that have more slow and sustained growth and others that yeah they take a little bit and then they just get really popular all of a sudden and I think it just has to do with the trends of what's happening on the internet what's happening in the text space the general sentiment of what people are looking for in the space and sometimes it also might just mean that the first time we put it out there the value wasn't immediately obvious or there was room to improve in the onboarding process I hope this was interesting I thought it was really cool the way that Christian broke down this blog post and I just kind of chimed in with my own thoughts on it and summarized it for you I will have the blog post Linked In the description if you're an open source maintainer I really hope that this helps you get your project more discovered if if you're ever interested in being featured on the charm Community Channel please don't hesitate to reach out to us we would love to have you it'd be great to be able to leverage our platform to help smaller projects gain visibility especially from those that are written by people in our community that being said I'll see you in the next video and thank you again for the 100 I was going to say 100 Stars 100,000 100 million stars that's so kind of you appreciate it see you next time
Info
Channel: Charm CLI
Views: 4,996
Rating: undefined out of 5
Keywords:
Id: Wg0Vev_oxmM
Channel Id: undefined
Length: 16min 57sec (1017 seconds)
Published: Thu May 23 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.