 Welcome to the NextCloud podcast. Let's talk about digital sovereignty. Welcome to another episode of the NextCloud podcast. Today, we'll be diving into the fascinating world of app design and exploring how the design team collaborates with the community to create amazing apps. To help us navigate this topic, I am joined by Nimesh Avijay, one of our talented designers at NextCloud. We also want to take a moment to thank our listeners for the positive feedback about the podcast's return. Please continue to share your thoughts with us on social media or by emailing podcast at nextcloud.com. Now let's get started. Here's my conversation with Nimesh Avijay. Nimesh, thank you so much for joining us. Oh, it's really nice to be here. Would you mind introducing yourself for the podcast to your listeners? Yes. Hello. I'm Nimesh. I work as a part of the design team at NextCloud. I've been working here for, I don't know, a while. I started off as a contributor actually for six months. At the end of 2020, I think, I don't know. I'm going to fact check this later on, but around that time. I got involved in NextCloud through the diversity and inclusion program called NextCloud Include. I sent out a little email saying, hey, I really want to help out at NextCloud. Can I do that? And Jan, who is the other designer, replied saying, yeah, sure. For six months, I was contributing and then I joined the company full-time. It's been fun. It's been a good time. Some people might have already seen your lightning talk that you gave at NextCloud conference last year. We're going to get a bit deeper into this kind of topic all about how the design team works and how the collaboration process with the community works. I'm also very interested on what your work week looks like. Can you maybe start out by explaining a bit what the design team at NextCloud actually does? Wait, so how much time do we have? We'll see. I will cut you off if it comes to it, but feel free. The design team at NextCloud, it's not just two people. It's a bunch of even developers that are involved in design a lot of times. Anyone who gives just feedback on how it looks, I guess it's also involved in design. But formally, the design team just tries to make sure that NextCloud, whatever you're using, is usable so you can do the things that you want to do with it. It looks great so it doesn't look repulsing when you open it for the first time. It's just have a good time using it basically. Can you elaborate a bit on what the work at the design team entails? What's your structure and how do you work with the community and what's the process? It's pretty flexible and open-ended I guess because the community is involved as well. It's not siloed into just the company and just two people making all the decisions. So at least we try to make sure that it's open and transparent as well. We do a bunch of things as part of the design team. Some of the listeners might know the weekly design review call, which happens every Tuesday. So at 2 p.m. Central European time, if you want to join in, please do. It's always fun. We do stuff like that where we give feedback to developers. We also work a lot with the developers in specking out what a feature could look like. So something that could be kind of complicated. We try to make sure it's visualized in a nice way. And someone who doesn't know what Next Cloud is going to look like can also use it. So we do stuff like that. We also do some competitor analysis. So comparing Next Cloud against what's already out there in the market. So we know some of the feature gaps that exist, stuff like that. And just generally tweaking the UI, I think. So using just some best practices, using some best practices of UX design and UI design. And trying to make sure that everything works smoothly. So a lot of that goes on in GitHub as well, out in the open. A lot of community members give a lot of feedback. If a developer says, hey, this is a feature that I want to implement or something. There are community members who can just hop on and say, hey, maybe you can look like this and give a mock up or they can just describe how it could work. Or they can describe a use case which would sort of go into what the final product could look like. Or they could just point out a bug, which is also a design contribution. So a bunch of stuff happens. And hopefully I think we all, I like to think that we all work together in making this happen. So yeah, nice, fun stuff, fun stuff. Nice. Can you go into a bit more detail about how these design calls go that you have like, that are also happening with community members? What's like the usual thing that's being discussed there? Since you've described that there's not only for experienced designers, but also for people who are just starting out or who have questions. How does a call like that usually go? Yeah. So I mean, every Tuesday there is like an open slot for a design review call. So a lot of times developers who maybe have an app or something or a feature that they would like to get some design feedback on, can just hop onto the design channel on the next cloud instance that we use and say, hey, I have this feature up and I'd like some design feedback on it. Can we have a call and everyone's like, cool. And then we get on the call and we basically just do a review. So the developer maybe shares the screen and we say, you know, this looks great, but maybe the alignment is off a little bit over here or, you know, the flow of this particular thing, you know, is not super clear to us. So, you know, you can work a little bit on that. So that's usually how it goes. A lot of community members just hop in and listen as well. If you're interested in doing that, that could work. I think it's a pretty cool way of understanding, you know, how we work as a design team and how next cloud works as well. So fun fact, that's actually how I started getting involved. I just hop on in the design review calls and I just like sit there and say something and hope that I was right. But it's super chill. You know, you don't have to worry about being right. All feedback is good feedback. So that's usually how the design review call goes. It doesn't have to be a developer who proposes this. If anyone wants to start a design discussion that they can also do that. So it's just one slot where anyone who wants design feedback or a discussion to be started can hop in. Awesome. That's also good like to get like pointers on where things are going at the moment and where they might want to, if they have already existing apps might want to work on a redesign or whatever to make it more like in line with our main design. That kind of brings us to the next topic that you've had or that got a bunch of attention at the Hub 3 event that we presented at Next Cloud Conference. That was the Next Cloud Personal Design. Can you give like a recap of what all that was about? Yeah. I mean, so for the previous release, we really wanted to make Next Cloud a little bit more fun and like nice to use, I guess. You know, we like we were thinking about how we could make it a little bit more personal. Like that's the best way to put it. So, you know, previously the interface was still really nice. But the main thing that you could sort of tweak and change or play around with was the dashboard background. So, if you're an older versions of Next Cloud and you open your dashboard, there would be one big nice image. And that was sort of the extent of personalization that you could do. And with this new release, we really wanted to get a little bit more personalization and, you know, allow people to play around with what their Next Cloud instance looks like. So, you know, we decided to keep that background for all of Next Cloud, basically, not just limited to the dashboard. So, if you have used Next Cloud in the latest version, you would see that the background shines through for all the apps that you're using. Plus, we wanted to make it a little bit more fun and playful so there are some, you know, rounded corners, you know, softer colors and stuff like that. So, and, you know, I think it looks great. I'm obviously not biased from the design team, but I think it looks great. And, you know, my personal thing has like super nice green background with like nice green theming as well. So, I don't know, that's off to myself. I guess I'm just kidding. Yeah, I tend to agree, but also I'm obviously biased as well. Can you touch on, apart from the visual improvements, a bit on the accessibility improvements that have gone in there? Yeah, absolutely. I mean, there have been like the accessibility can, I mean, the menu for accessibility is now easily accessible from the top right hand menu, otherwise you would have to go into the settings and go into another menu and then find it. So, anyone who wants to, you know, use like a, I don't know, like a screen reader or something like that can get to where they need to be a lot easier. Plus, there have been general accessibility improvements where your experience with using a screen reader or a keyboard navigation have been vastly improved because we really try to focus on it intentionally for the most recent release. So, you know, that's just generally, you know, keyboard navigations improved vastly, you know, screen reader experience have also been improved. So, yeah, like general overhaul for how you would, how next cloud is presented to users of all kinds. I've heard good things about this from people who rely on these accessibility features to use next cloud. And I think it's really, really great that we focused on our last release on that and that next cloud personal now comes with like easier ways to use it like with keyboard input and screen readers and all those good things. I will actually link to the next cloud have free launch that we did at conference where you talk more about the UI and accessibility features. So, if anyone wants to listen to that or watch it again, I think we'll be in the show notes. Then I have another question that is that's kind of circling back to the weekly design review calls. How do you deal with the feedback or suggestions that come in there? Because obviously next lot in itself, we get lots of suggestions on how to implement things or how to make things work for certain people and we kind of have to find a way to make it work for everyone, for it to be like a feature to be as obvious to use to everyone instead of trying to solve a specific issue for one person. So, I'm sure you get like specific requests that might not benefit everyone. So, what's the selection process there? How does that look like? So, I think one thing that we sort of keep in mind is that a lot of people who are active contributors to next cloud and who are involved in the community are developers and we want to make sure that next cloud is usable for people who aren't developers as well. So, people like my mom should still be able to use that even if she doesn't know how to make a pull request or something like that. So, we generally try to follow just best practices that come to UI a lot of times. Things like alignment and color of the button and stuff like that, there are general rules but for the question that you asked specifically like suggestions or feedback that aren't in line with what we think next cloud could look like, we do consider it. Of course, we try to think of as many solutions and try to consider use cases for all of them and we try to make sure that most number of people are able to use next cloud. So, if someone who doesn't have any knowledge of next cloud is still able to use whatever feature that we got feedback on with your feedback, then obviously like go ahead, it's great feedback but we also try to keep an eye out for features or suggestions where it's a little bit more technical knowledge and the design team isn't super technical so that helps in a lot of cases where we don't know what's going on over here so maybe some users don't as well. So, we try to rely on our own lack of technical knowledge in order to make sure that next cloud is usable for a lot of people as well. Does that sometimes lead to frustration from community contributors? I made this very thorough plan on how to improve this one thing that in the end might only benefit me or that specific person. You kind of touch on that you're already trying to, if that happens, to combine that with ongoing efforts but does that happen sometimes or is there like in the design world that also I don't know anything about, I'm also not too technical around next cloud Is there an understanding in the design world about how to make this kind of rejected idea work in the next revision of it or is that where things fall down? Well, I mean, it really depends. I mean, a lot of people suggest can we make this a setting and a lot of times that can be an option. I think to give an example of the top of my head I think there was an issue in deck which is the next lot up for Kanban board basically. So there was an issue over there which was very specific kind of a power user sort of thing and someone who's just using it casually may not use it and in that instance making it a setting that was off by default or something was really the best sort of solution there but a lot of times but people who request features maybe sort of don't understand is that the developers who implement this feature as maybe a setting is that they'll have to test for twice the number of cases now with the setting off and with the setting on so that it's not a design problem like it's not just a design problem it is like a developer problem as well if every single feature is incorporated into next cloud so we do end up having to say that's not the direction that we're going in or this is too specific for someone who maybe doesn't have the technical knowledge and there are times where we have to say that but I do think that that's necessary and we do consider it obviously it's not rejection right off the bat but even after consideration if it's something that we think is going to impact the experience of using next cloud we will have to say that we can think about it later on sometimes or just be like sorry this is something that we're not thinking of right now You're kind of touched on the topic of setting and selecting smart defaults already that's kind of where UI touches UX are you also involved in UX decisions like since you've already said we might not want to enable the specific power user settings but that's not necessarily a reason to reject it outright we might still want it in there but maybe not hidden away but selectable as an option Are you also involved in those kinds of decisions? Yeah I mean it is a collective decision there is no decision that I alone can take as part of the design team the developer team has to make sure it's in scope and UX goes into a lot of this as well so a lot of times when I think of how something could look like on a very high level the resulting mock up or the prototype is very complex and we obviously have to scale it back down to what's in scope for developers and what's actually possible as well so the process of UX is sort of ingrained in all of this so even when you suggest UI improvement or suggestion if it's not in scope and you have to think of a way around it you're kind of impacting the UX also yeah I would say yes in short Thank you for that Then you've also made a note in the dark about resources we use and recommend can you maybe explain a bit about that? Well I mean there are if you go to the next cloud website there is a little page for design and over there we go through a bunch of little resources which I think are really useful for anyone who is looking to get involved in design or even a developer who is creating something that's user facing for example the thing I mentioned about we can't make everything a setting there is an entire very well written blog post about that I can share it to you and you can share it in the show notes later on but it's a very good blog post about why everything shouldn't be a setting and that's something that I keep coming back to and the other designer in the team Yan also introduced to me and I'm a fan of it ever since that's one thing that we really like and there are also some accessibility resources like A11y.com so that's A1 on Y like accessibility.com so that's a really well designed, really useful resource that we use for making sure that things are accessible there's also laws of UX generally just some basic principles with which we can make some UI or UX decisions so any developer who doesn't have a UX background or a design background can check out laws of UX and it's a very interesting and very well designed website also just going through some basic principles like the law of proximity the law of common region and stuff like that so it's a very interesting read if you're interested in design in general as well so and I think Nielsen Norman Group has always been one of the biggest best practice very well known resources so for anyone who has any questions in designing something or something like that I would really recommend you go through some of the resources on the website and try to see what you can come up with before sort of asking right off the bat hey can I ask for some help? it's always nice to see contributors and community members come up with designs of their own and then we work together to come to a final design I think that's always a great process Awesome that kind of leads us actually to the next point which is contributing to design can you describe the ways on how that process actually works I mean we already touched on the design review calls but what are the steps like outside of that? most of our discussions happen on github using the issues some of them happen on the forum as well so any place where you can present your ideas go ahead that's what we use to communicate basically so if you have any design suggestion or improvements or something you can just open an issue about it on github and you know we will have everyone involved so the entire community can check it out and see what they think of it there's going to be some feedback there's going to be some activity some people might be like oh I don't think this is the best idea because you know so and so and you know you can be like oh I actually think it could be helpful in this situation and then there's some discussion and that's always interesting so github is almost always the best place where you can present your design ideas and stuff so you know github for sure if also the design review calls like you mentioned it happens every Tuesday so if you have a free slot then you can hop on there and you can also present your app like something that you've developed for getting feedback or you can sit in on those calls and give feedback as well so that's another really good way you can get in design as well so yeah and it doesn't stop with just giving suggestions you can also make a pull request for fixing something that you think is broken so if there's a very small for example alignment issue with the buttons if you know the text overflows from a button for example and you know how to fix that go ahead you can make a pull request about it and you know that's great that's like you've finished like you've gone like 15 steps ahead and just fixed it already so I think that's always cool to see yeah I mean you can whatever you have you can present it on github and you know you can get a conversation started you already touched on like as you said skipping all of the steps ahead and actually submitting like the solution and that's obviously also some overlap with not design related but code contributions aren't there like a few steps before that before you actually decide on trying to fix it yourself or to actually see if maybe people are already working on that what's going on there yeah that's actually a good point I mean it is like for small paper cuts obviously it's great to see people you know fix it and all of that but for maybe a bigger issue or something like that or if you are honestly even before you make a PR I think it's a good idea to always just check whether the issue that you're facing has already been discussed about in the past so you can go to whatever repository you're working for for example if you think there's an issue in mail you can go to the next cloud mail github repository go to the issues and see the closed issues and type in whatever you think is the problem or suggestion and go through the closed issues and see if there's already been a discussion about the thing that you want to talk about because a lot of times someone opens up an issue and it's already been discussed and there was a conclusion reached a few months ago or a few years ago and it's great to revisit it of course but many times there has been a well thought out rationale for why your feature maybe has not been implemented or something like that so I think that saves a lot of time and it's encouraging for new contributors to go through that and familiarize themselves with what's already been talked about and some of the design decisions that have already taken place before you open up an issue so that you're not demotivated when someone says oh we already talked about this and we don't want it so buy I think it always helps to go back to previous existing issues and check it out and what you mentioned about some steps in the middle there are a bunch of things you could do while you're opening an issue and it doesn't have to be a feature request or something like that you can also report UI bugs for example for example if that button alignment is off or the text overflows you could just report that that would be a UI bug and you can open that as an issue and that would work but some other things that you could do are also we could do like gap analysis like I mentioned you can compare NexCloud with existing products and check out what features are common to NexCloud and what features NexCloud is lacking and what features these other competitors are lacking to see where NexCloud stands in the market I think we did a round of that recently and it got a bunch of discussion happening in the comments saying hey for example roundcube has this feature Thunderbird has this feature and some people are like oh NexCloud has this really cool feature why isn't that on the list yeah that's right we should include this as a cool feature while we're comparing that's a really cool thing that you could do for any application that you want and it's generally a good idea to check if your feature is present in other competitors as well to sort of make sure that it's something that people actually want and this sort of goes back to what you were saying before about how do you know if a feature is something too specific or something that we don't want other people want it is actually a pretty good measure of how well received it's going to be if it's implemented so that's something you could do you could also do some usability testing and I think as a designer this is very very interesting where you take whatever feature you have or app or whatever and sit down with someone who maybe isn't as good who hasn't used NexCloud or isn't good with technical stuff as you are and then you go hey you can complete this task for example you can be like you can show them files and be like hey can you create a file and then share it with your mom's email address or something and you know they would go through it and they would click and they would be like oh I don't know how to what's the sidebar thing I don't understand this link and that's very interesting to see because you get to see where people think that you are used to think that you sort of take for granted in the UI that's very confusing for some people or some things that you thought but a major major issue end up being not an issue at all so that's something that you could do and post the results for been a couple of usability tests for forms I think there's also been one for tasks if I'm not wrong so very very interesting things for me as a designer at least so that's also something that you could do and obviously if you have a visual request and fix the issue I think making a mock up of whatever feature you want and posting that so some visual specs are really helpful for developers in implementing the final product so if you want to if you're opening a feature request or an issue or something you could also it can be as simple as just drawing it on a piece of paper and taking a photo of it and uploading it or you can go super fancy and use like mock up tools or prototyping or use like a low fidelity process to create something that looks super hi-fi and all of that so all of those would be really appreciated by the people who are actually implementing it so those are all the things that you could do before like you know making a PR if that's not what you want awesome yet to recap that a bit obviously it's very important to have like a look around because in the world of open source and technology in general you're usually not the first one with an idea there usually have been people before you had similar suggestions or even something that even touches the same product or setting or whatever area we're talking about even reading those conversations on GitHub I do this actually regularly before contributing like I actually did a mock up about something last week that I opened an issue on GitHub for but before that I went through like a bunch of related issues and had to look at the discussions to make sure that I understood what I'm asking here for and what might the implications are because it would be touching multiple apps or parts of our product usually a reason why we do stuff the way we do it and then if your pull request or your feature request is way more likely to succeed if you already kind of had to look around and know what the discussion around that was instead of like going over all of that again reiterating the stuff that has happened before yet keeping right on with the schedule there are many other ways to contribute if to next cloud if you might not be interested in doing design work or maybe not in user interface or user experience regards what are the other ways how you can contribute to next cloud there are a lot of different ways but I think the most sort of prominent one like when it comes to an open source product is just programming so you know like that's and I think that's where most of the contributors are like that's where we get most of the contributors also so you know programming and coding and you know actually fixing bugs and all of that that's you know I think that's a very a classic way of contributing to an open source product I think but you could also do like testing and bug reporting you know if something doesn't work right you can report that and that's actually really helpful because you know it can slip through the cracks when you know we're doing testing or if other people are using it so it can be really specific thing and you know that's also something that you can do and even if a feature is working but you might expect it to do something differently or to I don't know show up in UI in a different way this is also useful to know this touches more on the like user experience part of things again but yeah if you would expect a feature to not only one simple thing or one thing in itself but also a bunch of other things that we should know about because then we might have not considered that specific workflow or use case yeah exactly so I mean I think you did ask for non-UX specific contributions oh sorry yeah I did yeah but like you know bug reporting ends up being inherently maybe somehow but if you have the technical knowledge and you see that you know something doesn't work wouldn't work right in the code itself you could bring that up and you know worst case it's going to be someone saying oh it's actually we intended it to be this way so there's if you have the technical knowledge I think going through the code is something that's always going to be really well appreciated so yeah that's a very good point you brought up non-UX specific but bug reporting unfortunately ends up being a lot of UI so gosh dang it other than that there's also translations because next slide can be used it's not just in English or German there's also you know a bunch of other languages that you could use next cloud in but it's very important that the strings that are I mean the words that are translated from English to these other languages are actually translated accurately so if you have if you find that you use next cloud in French for example and some of these words don't make any sense to you and you know what it's supposed to be that's a really good way of contributing which doesn't involve super technical knowledge or something like that saying hey this join call button is actually translated to you know like start call and that doesn't make any sense it's very confusing so translations are a very very important part of contributing and if you want to get involved there's a really good way of getting involved as well also there are like two ways to go around with like improving the translations the first part that we also sometimes see is like people opening issues on GitHub saying like hey I would expect this word or the sentence to be something else and this is kind of like a low hanging fruit or like a paper cut back that you can if you see it also like take on and then go over to our translation platform which is trans effects that we're using for this and there you can like actually find that string or in that app and actually can go ahead and change the wording there already and then that would be reviewed and there's like a process and how that would then flow back into the product all of these resources you will also find on nextslot.com and that's a good way to start there but also if you're just starting out and looking for stuff to do or might be being interested or seeing like an issue on GitHub flying by this and also stuff that you can easily take on. Yeah for sure and I completely missed that trans effects part actually thank you for bringing that up so we do use trans effects for translation so if you already want to fix something in like the last step because you know if you're a native speaker or if you have really good knowledge of that language you can totally just go ahead and literally fix it by yourself so that will always be you know super appreciated other than other than what I mentioned already there's also documentation I think very important to document open source projects especially because it's maintained by the community and stuff like that so anyone who wants to set it up or you know contribute to it or use it needs to know how to do it or if they don't then they need to know they need to be able to know where to go to learn more about that so the documentation is very important I think a lot of people start off with documentation no matter what project they're starting off working with for like the developer documentation is super popular and with next cloud and I'm sure a lot of people who are contributing start off with the developer documentation so if you find any discrepancies or anything that you want updated in the documentation maybe maybe it's outdated and recently I think a year ago or something I noticed that the design documentation was completely out of date so I try to update it with the design principles and stuff that we use right now so stuff like that is really helpful for other developers or you can also update the admin and user documentation so people who are setting up next cloud or using next cloud also don't have a hard time so if you're finding discrepancies you can go to the next cloud documentation repository and make a pull request or something like that or say that hey this is not clear or something that's a really really value to contribution speaking of documenting things that also ways that you can make an app for next cloud and that's like a kind of a new initiative and there are tutorials for this that I've worked on pretty recently so that's also something that you can look into developing an app if that's something that you're interested in definitely and we recently started doing like also a video series about this on YouTube where I sit in front of a camera and pretend to be a developer but actually following like the tutorial as it's intended for non-technical people or people are just starting out so that's me where I quickly go through this tutorial and give you an idea how that process happened and a bunch of other people the company have done a great job on creating these tutorials and I believe also with contributions from the community we recently did one about how to set up your development environment and also how to what was it how to create like an interface only app and all of these things and this is like a great idea to to watch this to have an idea of how to start out how to how to get started and yeah we will link to those tutorials as well. So today I just tested out one of the you know setting up your development environment for Windows and it worked really nicely for me so I would I would personally like highly recommend that so if you get a chance you know please do check it out and like one other sort of way that you can contribute and I think this is like we've talked a lot about contributing and I think this is one of my like I don't know favorite but like sort of not often thought about ways is like organizing local meetups so I got a chance to go to my first FOSDEM like very recently and it was like an amazing experience. Oh nice. Yeah it was super cool and I got to meet like so many people so organizing meetups or just meeting people who are enthusiastic about the same sort of stuff that you are you know is sort of spreading the word and it's a form of you know contributing to we are part of the community if you're doing that so I think like I'm still like writing the FOSDEM high but I would highly highly recommend you know meeting other people who are as excited about something as you are so you know like if you if you're you know if you're up for it you can always organize a little local next cloud meetup where you meet other people talk to them maybe you know like grab a drink or something go a little bit you know whatever you want the agenda is yours. And we do support those initiatives actually so if you plan on having like a booth at like a local tech conference or whatever the context might be and you want to have some resources there as in like I don't know flyers we obviously get many requests for like stickers for our next cloud we have like the very often tweeted and shared about on social media sticker with who owns your nudes and stuff like that so this is a great way to also inform other people that hey this product actually exists so yeah if you will I believe also find those resources on nextcloud.com slash contribute and yeah please get in touch all right and that brings us to the end of this episode. Namisha it was a pleasure talking to you as always and I'm really looking forward to seeing you in a few weeks in Berlin for company week. Oh I'm really excited about that as well and thank you so much for having me it is always cool to talk about you know the nice thing that we do at nextcloud so thank you absolutely thanks for coming on Namisha have a great day you do thanks for tuning into this episode of the next cloud podcast special thanks to Namisha for sharing her insights with us today if you have any feedback or ideas for future episodes please don't hesitate to reach out to us at podcast at nextcloud.com we'll be back next month with another episode thank you for listening bye