Open source devs: please, please add screenshots...

My Password Is 1234@lemmy.world to Open Source@lemmy.ml – 1187 points –

I beg you, if you are a developer of an open source app or program - add screenshots of your app to the README file. When looking for the perfect app, I had to install dozens of them just to see what the user interface looked like and whether it suits me. This will allow users to decide if the app they choose will suit them... Please, don't think about it, just do it....

139

Dear open source app user: feel free to improve the README file of the projects you come across by adding a few screenshots you believe are relevant.

Although I understand the OP's perspective open-source is a community effort and people should have a more proactive attitude and contribute when they feel things aren't okay. Most open-source developers aren't focused / don't have time for how things look (or at least not on the beginning). If you're a regular user and you can spend an hour taking a bunch of screenshots and improving a readme you'll be making more for the future the project that you might think.

When the last big Twitter migration to Mastodon occurred there were a lot new users complaining about things like documentation, bugs, etc. Old users and FLOSS supporters kept pushing the "its open source, write a doc or fill out a bug ticket" and evem included documentation on how to do those tasks.

Most people just continued to complain. /facepalm

We just don't live in a world where making the changes you want are encouraged. We have been thought to just accept whatever changes happen or at most file a suggestion that almost noone will listen to. Obviously open source is different but it's still such a tiny minority compared to how the rest of the world functions

The big difference here is there is already this "learning curve" about the whole fediverse that people were struggling with that many of us wrote blog posts and had toot chains we'd forward explaining how this universe works. Adding in links and screen shots and templates for how to submit a bug...

...I hate saying this but the vast majority of people are just lazy. It's not a culture issue or not something too difficult. People like to complain and not put in effort to things. People expect others to do things for them and don't get that free comes with a cost.

FOSS isn't really that small, it's just that most people don't do any type of investigation into what they use for technology. Much of what you use may have a for-profit company in front of it but huge parts of their products are open source andnyou can directly influence the products by actually engaging the projects themselves.

Yeah people are very much lazy and that's fine, you just have to work around that and well culture is one way of getting people to do what should be done.

As you say Foss does impact quite a lot of those company products however what is the important part of the casual user is what and how they interact directly with the products and well at no point are they expected to directly impact the project, it's just you use what you are given. That is why they have that people will do things for me mindset bc that is what happens with almost everything the use

As both user and developer - user CAN contribute but the developer/maintainer SHOULD add the screenshots.

This mentality explains a lot of open source.

Yeah, and please have EASY setup instructions or complied binaries.

There's both an ignorance and fear barrier to that.

A lot of people don't know they can, and don't know how. And even the ones that do know, often worry their contributions would be shit.

And there's folks that just don't think the project would accept that kind of submission.

I'm not contradicting your suggestion! It's a great thing to let people know that they can contribute without knowing how to code. Just adding in both an explanation as to why it's so rare, and hopefully allaying some of those worries for passersby.

I think it depends on the project. Some projects are the author's personal tools that they've put online in the off-chance it will be useful to others, not projects they are really trying to promote.

I don't think we should expect that authors of repos go too out of their way in those cases as the alternative would just be not to publish them at all.

What if I do a PR for a program that isn't even related to Linux and Linus still sniffs it out to tell me I'm a dingus :(

NGL I actually didn't know that I can do such a thing. I do still kinda have a closed source mindset in that anything I use I cannot change or Influence. Like I knew that other people can do that but I didn't know I can do that

Yeah, it's a thing :)

I've only done it once, and it wasn't pictures, it was rewriting a horrible section about how to install a program my cousin was trying to build. He abandoned it three months later, but still.

From what I've heard from people that code, it's polite to approach whoever is maintaining the project before jumping in, and it makes sense so that nobody wastes resources on something that isn't going to get used.

If the app sucks, few people will add the screenshots. Therefore, most apps without screenshots will suck. So new apps will need the developer to add screenshots, or people will assume it sucks.

And we're back to square one. The developer has extra responsibility to highlight the features.

This is good advice, but having a screenie there in the first place might make someone more likely to try it out.

One thing though: I’m likely not to stop and consider looking closer at an app if I can’t judge if it’s going to be what I’m looking for. I’m not going to go over random GitHub repositories and create screenshots for their projects. So if the assumption is that the user contributes screenshots I don’t think it will ever change anything for the majority of projects.

While we're at it, I love that you let me customize the settings via a config, but for the love of god make the default config the best it can possibly be

This. It should be the most sane configuration and fit most use cases and lead to an experience working out of the box.

I contribute to OS projects and work on one full time. EVERYBODY thinks that their obscure use case is the most common (not saying this is what you are doing).

We get users that are completely flabbergasted that our software doesn't offer some feature that is totally specific to their industry and has never been requested even once by anyone else previously. We'll show them our feature request form on our site where you can also view and upvote other requests, and point out that the feature they want has never been requested. They will literally come up with some bs excuse why that is and then insist that we get on it and build out this custom functionality that they need or else they're going to slander us on social media.

Your app doesn't integrate with "didLr"? OMG any decent app integrates with "didLr"!

I understand the developer POV too. It's clear that getting the right config for most use cases is a UX problem, which may involve user studies, telemetry to be setup. Perhaps out of scope for most small scale individual projects.

Additionally, I also fully understand that many, if not most of these projects are hobby projects and expectations from users should align with the scope of the project and the resources committed. It's so easy to feel entitled and deserving of high quality projects but they are so time consuming.

My comments were not for those projects but rather mature ones. And contributing to the projects is often the most appreciated way when proposing changes.

In all cases, for any free project, it is always acceptable to answer that something is out of scope, that resources don't allow for the feature to be implemented or that additional help on implementing it are welcome.

People demanding something in exchange for nothing are obviously not the most welcome users :)

There's a real problem here with backwards compatibility. If you add an option for something, it makes sense to make the default match the functionality of old versions, even if it's not the best for general use cases. That way any tools built on top of it can safely update.

Ding ding ding!

That said, the solution is to set new defaults for new installations only and not change existing configs. Users lose their minds (rightfully so) if you modify their existing configs.

I prefer the simple, sane defaults that work for everyone with a heavily commented config file giving detailed information on what each value for each option does, personally. Like MPV's config file.

I haven't even touched MPVs config file because I just assumed it would be empty like so much other software I use. Looks like I know what I'm doing tonight.

Sometimes I'd settled for a simple description of what the tool even is. Sometimes the readme is just straight into compilation steps and I feel like we're rushing into something.

Foreplay is important! Gotta get me excited for that app.

🛠️ Building

To build the app install the gamete dependencies and run the following

make child

A lot of documentation is like that.

Its terrible when the software is called some random word that has nothing to do with the programs functionality

I also hate it when it has a name that is a super common word or phrase. Our last 3 records management prograns at work have been like this, and their help fires are terrible to non existent. Good like trying to search the internet for information on the software with those common names. Even adding terms relevant to what the software does, didn't help much.

(Apologies if this is terribly typed, I've got an impending migraine aura that stayed right as I hit reply and have lost a good chunk of my vision. I can't see most of what I'm saying.)

Unrelated, but I used to get them often. I found one article about vitamin D deficiency as a potential cause, and figured, "what what hell". Started taking 5000IU every day of the Swanson's brand. It took a month or so, but I've been aura migraine free for months (still get migraines sometimes, but they're MUCH less severe than they used to be and no auras). Ask your doctor first, in case you can't take vitamin D, but it's worth a try if it's safe for you.

I actually know what causes most of mine, there are some nerves in my neck that get pinched/aggravated and trigger them. And for some reason, if I have multiple days in a row where I don't get much sleep, those nerves get extra cranky. They are extra cranky right now.

I'm so so sorry! I guess, at lease, you know why. That's something, right? Not really, but :shrug: seriously, I'm so sorry you're going through that!

Me, developing a headless component library:

To be that dick, a headless component library is still meant to do something, show an example of it being used!

1 more...

If you've written a "usage" section that showcases more than one uselessly simple example that doesn't even work in the project's current state, you're already far ahead of the average.

Even for a CLI tool, there should be a real world example showing how it works and what the output looks like. Eg, for jq:

$ cat file.json
{"field: "value"}
$ jq '.field' file.json
"value"

And a few other examples.

I feel like maybe you don't know what a headless component library is. A cli has a head -- the terminal. Headless applications, by definition, have no visual portion. For instance, a headless browser is a browser where the web page renders in-memory, but never displays any content. A headless component library, then, is one where the implementor doesn't provide anything visual, only behavior. For web dev, is very helpful -- the library implementator writes all the js, but the css and html (the "head") are left to the user for use. The best headless component libraries, then have nothing to screenshot without the user supplying some implementation.

1 more...

Also please begin the Github page or whatever with a description of what the app is actually for or what it does. I know that sounds super obvious, but the number of times I've seen links that are like "I made this app from scratch for fun, let me know what you think!" and then you click through and the app is called Scrooblarr or something and it has no indication of what it actually does is... more than it should be.

Wait what? I thought the read me file was to put as little info as possible to prove how awesome anyone was who can use the program.

Including the documentation link, which only has incomplete getting started section

Getting Started

  1. Clone the repo
  2. Install dependencies
  3. Compile the project: TODO
  4. Copy the executable to /bin
  5. Add your app.json config to ~/.config/app*

* IMPORTANT. APP WILL NOT RUN WITHOUT THIS

Oh hey, they have an example.app.json file. Let's check that out!

{}

Or at least a demo site if it's a web site or self hosted web based app 🥲

I wish there was a way to give more props to open-source repos that do this.

I already star the project. But I'd love to say "Thanks for making a demo page it really helped!"

Agree, I don't know what's so hard about a screenshot.

I imagine most single developer projects lack any design or UX so the screenshot would do little to encourage users to download.

I can only speak for myself and a handful of other people I know who are into FOSS, but for us we care more about it being functional than looking pretty. I just want to see what I'm getting into, a reference for what a successful install looks like, or just check to see if it's got the buttons I want on it.

Is it better for someone to download it, see it, and uninstall it immediately? I'm not sure how they are tracking metrics or if they are at all.

As a user, I completely agree. People often make decisions in a few seconds, and you've done all this work developing an app. That little extra step will allow you to make a difference to more people!

As a developer of a Lemmy web UI, I've been thinking about adding screenshots to my README for weeks but still haven't done so 🙈

Yup, if I don't see screenshots for a desktop applications, I don't bother since the developer clearly doesn't understand what they're doing. It's especially baffling when it's a WM/DE. It's really trivial effort too. If the devs don't get this basic point, it's going to reflect in their poorly designed UX/UI as well.

100% agree! I always get so frustrated when there are no screenshots in the README.md or on the site.

On github you can even paste your screenshot right from the clipboard. Zero excuses for not having a screenshot.

I think this ties in to the grander idea of: please provide information that is helpful on a nontechnical plane of thinking. It goes a very long way

README is usually a text file. While some platforms can now use markdown, that is nowhere near universal. So it might be better to ask for screenshots to be put on the website / wiki.

Not just a text file, a markdown file. And markdown has supported images since forever

README.txt will be a text file, README.md can be much more

There's an awful lot of comments in this post from people complaining that developers aren't making their projects attractive and user friendly enough, or the READMEs descriptive enough.

Can I just say, as a developer with some open source projects on github, I don't care; you're not my intended audience.

I find this unnecessarily derisive. There are good reasons for a UI or README not being user-friendly, the top-most one being (imo) that it is really, really hard to get right, takes a lot of time and doesn't primarily solve the problem the project was started for.

You mean you think I'm being derisive? I think it's important to remind people that not every open source dev shares their priorities, or indeed any interest whatsoever in whether other people use their code.

This whole post is filled with a really disappointing amount of entitlement and lack of self-awareness.

I think you generally can't know if someone shared their code with the intention that others may use it, but it's a reasonable assumption.

Don't forget to assume what works on macOS also will work fine on a Linux server deployment.

To be fair, most of time you can just Google %appname% screenshot. I understand that this is not as convenient as having screenshots in the readme, but eh, it's not as big of a problem when you realize this.

P.S. I do actually add at least one screenshot for my software. Maybe because sometimes UI is one of the main focus, idk. I just feel like it.

UI is always the main focus for the user. Because it's the "User Interface".

Searching the web for screenshots is an added hassle and something that makes me avoid most FOSS software, because sometimes there's not enough screenshots and not even the developer cared to show what the app is about.

Well that's what FOSS is. You can always contribute and add screenshots if you'd like.

I think that doesn't work for most smaller projects. That'll work for something like Firefox, but there's little reason for random, unheard of tools to have an image on the web. Plus the naming of some projects is super generic, which can make it hard to find correct images.

Some software changes appearance often, too, and google is bad at knowing what up to date is. It can be really easy to find wildly out of date images as the top results.

Where should I store the screenshots? In a screenshots folder in the repo? Should I update them at some time? Should I screenshot both light and dark theme?

That’s one option, or use imgur.

Update them if your UI has significantly changed or does not adequately represent the final product.

If having a light/dark theme is an important feature or highly requested feature for your project, it would be nice to show it off.

Screenshots can, most of the time, get away with showing just the default configuration. Share what a user would see when opening your project for the first time, and assume they used the default configuration. Optionally, if you offer a lot of customization, show what it could look like if someone spent a good amount of time personalizing things!

Please don't use a external image host, have it live with your code in /docs

Where: In the repository, most projects seem to use media or screenshots as the name of the directory.

How often: Whenever a big change happened or many small changes have accumulated.

What: Light theme suffices. I only care about the general look and feel, not about specific colors.

That’s how I would do it for my own projects.

Yes. Git can store binary files fine. It's not the most efficient for storing them, but it works, especially for a small number of screenshots. For updating and theme, that's entirely up to you. It's all a judgement call. If you want to show off your functionality (like a dark mode), I encourage you to include screenshots of it. If you substantially change your UI, update the images.

You don't have to update for every new button you add. It's more about giving a general impression of the UI. Is it minimalist? Is it a chaotic mess? Does it look like it fits in naturally with whatever OS appears to have been used? Does it look like any thought was put into UI and UX? Those are the kinds of things you're trying to answer.

A README file is usually comprised of text.

Other than that - usually if it has a webpage, it has some screenshots.

README markdown files allow for inline image links to be "expanded"

Anyone know of good Gitlab CI or GitHub actions for auto generating GUI screenshots and links them in the README? I only barely know testing tool and frameworks like OpenQA and Robot for GUI. Even better if we can get AVIF/GIF linked in there to see an app in motion.

Honestly though, documenting is a pain enough, I really don't want to be doing screenshot walk throughs on anything I'm not paid to do.

I totally agree that screenshots and a proper description of the app in the README are a must-have for all foss apps, but as a developer I know that most of the times you prefer use your time to add new features to your app rather then documenting existing ones...

Personally I'll try to add them to all my future projects but what I would suggest to everyone who use and love a foss app is to check out its README and, if needed, submit a pull request with an updated version of it with screenshot etc (You don't need to be a developer to do that and it can be really appreciated)

No. ReadMe files should be concise, explicit, and text only. UI/UX screenshots can be part of the repo, wiki, or associated website but they shouldn't be in the ReadMe.

If you don't understand the software you're installing from some rando stranger's git repo then you shouldn't install it. Period. Take the opportunity to learn more or use another tool.

Git repos are not app stores. The devs don't owe you anything.

The vast majority of software in publicly accessible git repos are personal projects, hobbies, and one-off experiments.

Your relationship with the software and the devs that create and maintain it is your responsibility. Try talking to the devs, ask them questions, attempt to understand why they constructed their project in whatever specific way they have. You might make some new friends, or learn something really interesting. And if you encounter rudeness, hostility, or incompetence you're free to move on, such is the nature of our ever-evolving open-source community.

We bring a lot of preconceived notions into the open-source / foss / software development space as we embark on our own journey of personal development. I try to always remember it's the journey of discovery and the relationships we curate along the way that is the real prize.

For a lot of open source at the moment the root level readme is fundamentally the homepage too. It absolutely should include screenshots, maybe even a gif. If your software has a GUI or TUI it should follow that a concise visual will do more to explain it's usage than a text document

Hey, all you folks ought to get together and publish a guide to writing good FOSS documentation,

Dear Open source devs: Do something I'm too lazy to contribute.

Unironically yes. Asking someone that doesn't use your project, isn't part of the development, and quite possibly doesn't even want anything to do with your project to do work for you project is silly.

I mean, it's just a suggestion. The utility depends on the goal of the project. Am I being lazy? Don't care. Do I want maximum user engagement/feedback; well, the suggestion is sound.

While I get the sentiment, historically, readmes have been text only, and should predominately focus on usage options, not a sales pitch. Today in GitHub, these files support markdown, but the level of effort is probably two orders of magnitude higher than a text readme alone.

Think of a readme file on GitHub/distributed with the binary more as a man page than a proper website.

So why not add a 'Screenshots' section with hyperlinks to PNG files?

Or, hell, just add a "screenshots" folder to the repo and mention its existence in the readme.

The best solution is to create an issue and attach the pictures there. You can then link in README and not bloat the repository.

If I clone the repo I expect everything to work, including the readme.

That's a good point non-text shouldn't be in the git tree, git-lfs is another solution for that though

I mean, yes, it's a little more effort, but I think you're over playing how much effort is required. Writing a half decent readme is vastly easier than frankly any feature or bug fix. Taking a couple of notable screenshots is super easy. Writing docs is hard (I've written tons for large and complicated projects), but readmes are the easiest and including screenshots is really quite easy.

Everywhere supports markdown in readmes now. Literally everywhere I've ever hosted code. And markdown with links to images is perfectly fine even if viewed in plain text mode. They'll just click the link and view the image standalone. I've done that plenty of times, too. Every editor (plus in-browser code hosts in plain text mode) makes it easy.

Who reads README's anyway? Aren't they like instruction manuals? You only read them once its broken? :) Or maybe i should start reading instruction manuals..

Lots of projects are on GitHub or similar repositories and the landing page is usually the readme file as rendered markdown.

I appreciate your joke, I totally got if.

Mainly because my dad would do exactly that if he ever had to use github lol. I grew up watching him literally throw manuals aside, only to have me or my sister bring them back when he screwed up lol.

Too lazy to just look the UI up and you want others to waste their time giving you numerous UI screenshots. Hypocrite

a.) I'm not convinced you know what the word hypocrite means.

b.) More importantly, they didn't ask for "numerous," they asked for one.

c.) Searching for the UI on, say Google, can have, at best, mixed results. Ive done this, then DLed and tried out the program only to find a completely different UI.

d.) The dev adding one screenshot to their readme.md and a /media folder takes them only slightly longer than it takes potential users to look one up and maybe get a good result. Multiply that time by the number of potential users, and it's obviously more efficient, and effective, for the dev to do it.

Stop being defensive. No one's attacking you or any other dev. They're making a request. Don't like it? Don't do it. Stop calling people names and trying to stir up drama.

Edit: formatting

A. When one makes a claim like that when nothing indicated such things, its accepted in the community of behavioral analysis that it was a projection

B. Its implied that there will be multiple and that's irrelevant

C. That's never happened Lol

D. Only takes you slightly longer to Google it too bitch. Don't like what I'm saying you can also stfu hypocrite. You also admit its an attack, as is all criticism right after you deny it. I'm not defending anything, just pointimg out hypocrisy which seems to anger lazy fucks like you who want to leech from good developers like myself and can't be arsed to Google a singe thing

I'm sorry, I'm just not seeing the hypocrisy.

What is hypocrisy is calling people lazy because they don't want to do work for a project they're not sure they even want to use, while also excusing same lazy behavior for someone who is interested enough in the project to develop it.

That's how you're being a hypocrite. Now, if you don't mind, please explain how OP is one. Or I am, for that matter.

Also, I'm not angry. You're some rando on lemmy and I'm not that invested. I suppose I care enough to reply, but get pissed off? Nah, bro. That's all on you.

Wordnik.com/words/hypocrisy

You both fit that definition, I don't expect to be given screenshots nor do I hypocritically tell people they can shut up if they don't like criticism. I'm not what I proclaim y'all are. You should really get better English and learn the meaning of basic words Lol. With the latter you once again appear to be projecting, When one makes a claim like that when nothing indicated such things, its accepted in the community of behavioral analysis that it was a projection. Also, have you showered at least in the past month? You should really try.. 🤢

Oh! I get it! You're just a troll!

Aw, man, I can't believe I fell for that! Wow, you sure got me.

I mean, surely if you weren't just a troll, you wouldn't tell me I should "get better English [sic]." That's a kind of hilarious gag right there.

Also, when I gave you an example of your hypocrisy, you basically responded with "Nuh-uh! You are!" with, like, no explanation! That's hilarious!

Oh! And then you repeated the "the community of behavioral analysis" bit when I actually explained why you were being a hypocrite, so it totally didn't apply anymore!

Ah, man. Good troll. I haven't gotten suckered that well in a bit. Well, I got chat botted a couple weeks back, but that wasn't nearly as funny.

I perfectly debunked your argument and my statement made perfect sense. It wasn't just "No you!". What a complete and utter projection. Cope harder. Maybe you're the word parsing bot, When one makes a claim like that (Im a bot) when nothing indicated such things, its accepted in the community of behavioral analysis that it was a projection

I'm kinda done with you, child. But let's do this:

its accepted in the community of behavioral analysis that it was a projection

Yeah. You said that. Three times.

What you've failed to notice is that you keep calling me, and OP, hypocrites with no supporting evidence. I provided an example of your hypocrisy and explained why it was hypocritical. You didn't. So if anyone is making repeated unsubstantiated accusations, it's you.

So, by your own argument the only one projecting here is you.

I perfectly debunked your argument and my statement made perfect sensse.

No, you didn't. You posted a link to the definition of the word, and then said "oh, you totally did both those things" (I'm paraphrasing here.). You didn't point out where I or OP said anything that remotely met the definition you posted. So, to use your own dipshitty quote:

When one makes a claim like that when nothing indicated such things, its accepted in the community of behavioral analysis that it was a projection.

You've repeatedly made the claim that OP and I are hypocrites. Nothing indicates that we are. So, you must be projecting, according to behavioral analysis.

Wait - are you not convinced just because I repeated myself? Welcome yo my world, kid. That's all you've done this whole thread.

Oh, and you made an ad hominim attack against me questioning my personal grooming routine. So, there's that too. Since you have zero information about my grooming routine, then, because…

When one makes a claim like that when nothing indicated such things, its accepted in the community of behavioral analysis that it was a projection.

… I have to conclude that you are projecting, and could probably use a bath. And maybe some time away from the internet, out from under your bridge.

Oh! I almost forgot! You insulted my grasp of English with poor English. So, yeah. If you're gonna call someone's grasp of a language into question as a pathetic attempt at looking smart, here are two good rules:

  1. Don't. You don't know if English is their first language, and even if it is, you just end up looking like an asshole
  2. If you absolutely insist on doing it, proofread your fucking post.

Ta. It's been fun.

I don't speak bullshitting cry baby. Speak English bitch. Consider that shower too.. 🤢

Ah. I'm sorry. I forgot to keep things at a 3rd grade reading level. Here, sweetie, I'll tl-dr for you:

  1. Your quote about presenting arguments without proof? You're the only one doing that.
  2. If you're gonna insult someone's use of language, learn to proofread.

It's funny. I'm pretty sure you think you're "winning" this. Dude, replying to you is just my way of having fun as I make more interesting things sitting on the toilet. I can keep this up as long as I'm sufficiently bored.

1 and 2 are both nonsense I've already debunked. You just repeat the same drivel over and over. Also when did I say "winning". Just making shit up. Cope harder Chud and get that constipation checked out as shitting for that long is unhealthy. Expected tbh from someone who doesn't even shower, I'm sure you have a whole slew of health issues

You've "debunked" dick, buddy. You are presenting an argument without proof (I have yet to see any evidence of my or OPs hypocrisy), and you can't really "debunk" number 2, because it's not a claim of fact, it's just friendly advice.

And the reason I keep repeating myself is because I'm calling you on your bullshit. I kinda have to repeat myself if I have to keep reminding you of what the we're talking about.

And of course you didn't say you were winning. That would be too direct and assertive. But you're acting like you are. You're acting like you're scoring points on me. You seem to think you're being clever.

You're not. You're not scoring points, because there are no points, and you're not clever because you seem to think you can, what, insult me?

Dude.

I'm a 45+ year old combat veteran who remembers flamewars on 90s Usenet. I've been dealing with shit like this longer than you've been toilet trained, possibly since before your daddy forgot to pull out. I've been torn down by literal professionals.

This? This is a picnic. This is a walk in the park. I'll keep it up as long as I stay amused. But seriously, sunshine, you're kinda just sad.