├── CONTRIBUTING.md └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | When contributing to this repository, please first discuss the change you wish to make via issue, 4 | email, or any other method with the owners of this repository before making a change. 5 | 6 | Please note we have a code of conduct, please follow it in all your interactions with the project. 7 | 8 | ## Pull Request Process 9 | 10 | 1. Update the README.md with details of changes. 11 | 2. You may merge the Pull Request in once you have the sign-off from other developers, or if you 12 | do not have permission to do that, you may request the reviewer to merge it for you. 13 | 14 | ## Code of Conduct 15 | 16 | ### Our Pledge 17 | 18 | In the interest of fostering an open and welcoming environment, 19 | we as contributors and maintainers pledge to making participation in our project 20 | and our community a harassment-free experience for everyone, 21 | regardless of age, body size, disability, ethnicity, gender identity 22 | and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. 23 | 24 | ### Our Standards 25 | 26 | Examples of behavior that contributes to creating a positive environment 27 | include: 28 | 29 | * Using welcoming and inclusive language 30 | * Being respectful of differing viewpoints and experiences 31 | * Gracefully accepting constructive criticism 32 | * Focusing on what is best for the community 33 | * Showing empathy towards other community members 34 | 35 | Examples of unacceptable behavior by participants include: 36 | 37 | * The use of sexualized language or imagery and unwelcome sexual attention or advances 38 | * Trolling, insulting/derogatory comments, and personal or political attacks 39 | * Public or private harassment 40 | * Publishing others' private information, such as a physical or electronic address, without explicit permission 41 | * Other conduct which could reasonably be considered inappropriate in a professional setting 42 | 43 | ### Our Responsibilities 44 | 45 | Project maintainers are responsible for clarifying the standards of acceptable behavior 46 | and are expected to take appropriate 47 | and fair corrective action in response to any instances of unacceptable behavior. 48 | 49 | Project maintainers have the right and responsibility 50 | to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions 51 | that are not aligned to this Code of Conduct, or to ban temporarily 52 | or permanently any contributor for other behaviors 53 | that they deem inappropriate, threatening, offensive, or harmful. 54 | 55 | ### Scope 56 | 57 | This Code of Conduct applies both within project spaces 58 | and in public spaces when an individual is representing the project or its community. 59 | Examples of representing a project or community 60 | include using an official project e-mail address, posting via an official social media account, 61 | or acting as an appointed representative at an online or offline event. 62 | Representation of a project may be further defined and clarified by project maintainers. 63 | 64 | ### Enforcement 65 | 66 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. 67 | All complaints will be reviewed and investigated 68 | and will result in a response that is deemed necessary and appropriate to the circumstances. 69 | The project team is obligated to maintain confidentiality with regard to the reporter of an incident. 70 | Further details of specific enforcement policies may be posted separately. 71 | 72 | Project maintainers who do not follow or enforce the Code of Conduct in good faith 73 | may face temporary or permanent repercussions as determined by other members of the project's leadership. 74 | 75 | ### Attribution 76 | 77 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 78 | available at [http://contributor-covenant.org/version/1/4][version] 79 | 80 | [homepage]: http://contributor-covenant.org 81 | [version]: http://contributor-covenant.org/version/1/4/ 82 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | A list of notes/tips for how to "make your open source project successful". 2 | 3 | 4 | 5 | 6 | 7 | 8 | # The Problem 9 | 10 | OK the problem in my own head is. 11 | 12 | if you don't do something that's your "passion"(document on "[passion project]"), 13 | then you will tend to abandon it half way. 14 | Another, or possibly the same(?) problem is you might get split or diverted half way through. 15 | You need to push through probably (though pivoting is OK) to make something truly useful. 16 | 17 | Seems at most a couple of projects "at most" that you really do/focus on, 18 | because if you have too many, you'll get support requests for "old" projects, 19 | and the motivation to fix it is harder, 20 | because you have to recreate your dev environment and somehow. 21 | Since its so old which makes it feel more foreign'ish, 22 | and resurrecting it is hard. 23 | 24 | Another motivator: Start a real side business out of it. 25 | 26 | you don't have to make it an "exclusive" business. 27 | it could have free and pay tiers, or "donate what you think its worth" or 28 | "make money without charging" like adwords, etc. 29 | (or "make money later" or make money by being eventually acquired, etc.) 30 | 31 | Not for me tho, not my style. 32 | 33 | or have tiers for "if you can afford it, 34 | you pay this, otherwise free [like "do you make enough money? pay this, otherwise pay this]" 35 | or "charge for business use" or what not 36 | 37 | In the end, it seems that if you just do it as a passion project, free forever 38 | 39 | 1) you won't have as much time to work on it (since you gotta work your day job too) 40 | 2) you'll probably, most likely, assuming you're human, 41 | human tendency for developers is to make it as good as they need it to be, 42 | for them, for their own use, and that's it. 43 | There is really little incentive to motivate more than that. 44 | That's as good as it'll be. 45 | However, if there's money involved, 46 | you can move quite past that point in terms of overall quality. 47 | So pick your destination here. 48 | 49 | If you do pay/charge for it think of how much cooler it may become, even excuse to provide real support [!] etc. 50 | 51 | I may have been wrong about preferring open source/free [?] 52 | You can have a dual: it's free with "an enterprise tier" or what not--it seems that if you reeeally want your 53 | open source project to be well polished, you've just gotta add some kind of income facet to it... 54 | 55 | It's a question of what/how good you want the end product to be. 56 | 57 | If you don't get remuneration (you don't have to always "charge" per se), 58 | it will "end up looking like X" and 59 | if you do get remuneration it will "end up looking like Z". 60 | 61 | Which one do you want to bring into existence? 62 | 63 | And yet there is a 3rd option: 64 | 65 | you just pay for it, with tons of your own money, 66 | and then it can exist 67 | (like you setup the framework, pay others to do the heavy liftwork/amazon turk). 68 | or *maybe* *just maybe possibly* you could setup the framework and have others contribute for it, 69 | but don't count on it until you know you have rabid fan base that will do you every bidding. 70 | 71 | Some projects do offer tiers, or an intro freebie. 72 | 73 | If you don't go the pay route, expect: 74 | 75 | 1) to have to fund it yourself *forever* 76 | 2) to have to force yourself to work on it/put extra time into it to make it look good, 77 | add features "you don't use" etc. 78 | You're going to have to like schedule yourself to make it grand. 79 | 80 | Is it something you're going to go back and add in little features that *you* don't even need, to it? 81 | 82 | They feel useless to you. 83 | Are you happy/excited to go and market it and keep marketing it, yourself? 84 | 85 | Another option: do a patroen, then you can keep it free but it motivates you to go get more "customers" still :) 86 | 87 | Is it something you'd actually "do" or "get around to" grooming the code, 88 | like really grooming it and finishing up the loose ends and unit tests? 89 | 90 | Would you enjoy it that much? 91 | 92 | Something you could be/become truly devoted to? (the project/cause) 93 | 94 | Even if you run a kickstarter, 95 | it may not be enough, 96 | you might eventually run out of cash, 97 | then what? 98 | Example on [openshot 20 september update] (update after many months) 99 | unless you have some way of cash flow turn around [donations? "premium" version or "monthly donations" maybe] 100 | 101 | normal people do this by producing a saleable post-product. :| 102 | 103 | 104 | NOTE: Read this, [how to spread the word about your code] (hacks.mozzilla.org) 105 | 106 | 90/10: last 10% takes 90% and is the 10% you don’t actually like doing [mundane], but is equally as important. 107 | 108 | It works better when it's your passion, something you are passionate about. 109 | Those long lonely nights for instance. 110 | People just give up. 111 | 112 | SEE ALSO: my notes on soul project [though "pay factor" would work here as well]. 113 | you could have a half pay, half free tier as well, or what not. 114 | 115 | # Things to help you popularize if it's not a "soul project" 116 | 117 | Possibly pay others to do it (ex: marketing it) for you. 118 | Or build a community and they advertise it "for you." (ex: word of mouth), etc. 119 | 120 | The "startup community" has studied this awhile. 121 | They have studied "similar stuff" forever and come up with some excellent best practices for getting things started. 122 | So it would probably be useful to read/adopt some of "their" best practices. 123 | Example: 124 | 125 | taking your idea, 126 | ask tons of people about it, etc. 127 | fail fast, pivot fast, etc. 128 | therefore, you should be read these as well, possibly before even starting: 129 | 130 | books that an Enterpreneur teacher loved/recommended: 131 | 132 | - Business model generation by Alexander Osterwalder, Yves Pigneur 133 | - The startup owner's manual by by Steve Blank , Bob Dorf 134 | - Lean startup by by Eric Ries (to a lesser extend) 135 | 136 | Read Mozilla hacker article '[Treat Open Source Like a Startup]' by Julian Shapiro. Very good blog post! 137 | 138 | OK the real kicker is that you should probably not really start into something without realizing some caveats. 139 | Like, you'll probably, most likely, typically, be the only leader of your project. 140 | Maybe it would be good to therefore only stay into projects you are really passionate about and could stay passionate about for years to come. 141 | Like ten years. 142 | 143 | Because you're the one who will be chasing down new features for people that you don't actually care about. 144 | Things that don't affect you. 145 | And doing the crappy work on it like bugs and dealing with poor input etc.. 146 | Stuff nobody else wants to ever do. 147 | And doing marketing. 148 | Possibly all of it. 149 | And it takes forever. 150 | 151 | At least initial marketing to popularize, 152 | Then Google organic can kick in. 153 | If it does its the saving grace of developers since in essence it does your marketing for you. 154 | You can hope anyway. 155 | But even with good seo maintenance will still be present and on your shoulders. 156 | 157 | And forums and irc chat 24/7. Having to check Facebook's. 158 | 159 | Basically, it needs to "be" a passion soul project for you. see its notes. ([passion project notes]) 160 | 161 | You basically "have" to choose something to "focus" on it, or else it will end up not being awesome. 162 | You have to focus on one or two projects or you'll never get them to super prime time shape! 163 | 164 | Even if you're past the advertising phase, 165 | you'll still have "some" maintenance (like daily/weekly) stuff and it will take time. 166 | If it's your passion, won't that be much easier? 167 | (i.e. it still takes time, which requires something like passion or duty). 168 | there's nothing wrong with providing "$10 worth of value" to people and asking them to pay you back $2 :| 169 | 170 | And it will all be for free most likely. 171 | Our absolute beginners who know nothing yet. 172 | Training them. 173 | You might make some money of it, or possibly convey into a pay project (where's the fun in that?). 174 | But probably not. 175 | The gifted few might even make a salary. 176 | But that is like rock stars. 177 | 178 | There can only be free. 179 | Assume you'll possibly make nothing. 180 | This better be a passion. 181 | Or it will end mediocre, seemingly. 182 | Or at least not polished, and not improved. 183 | 184 | I wonder if focusing on "only one project" would help but it would need to be only one, for years. 185 | Especially when that focus contains marketing 186 | (Which is another reason partnerships work sometimes. 187 | One can focus on one thing while the other does the technical) 188 | 189 | It is either that or do both yourself which is tricky. 190 | Especially for technical people who dont want to do much. 191 | It is not natural. 192 | 193 | # Idea 194 | 195 | One idea: 196 | try to take some more queries from lean startup. 197 | Like polling and pivoting so you can put your "decade". 198 | With off effort into something that can become even more popular/useful. 199 | 200 | NB: 201 | the mentions here on google keyword stuff are less important since the EMD update. 202 | so are deprecated. 203 | 204 | plan up front of spending a lot of time (budgeting a lot of time) to marketing 205 | 206 | NB: 207 | that this doesn't include much on successful marketing. 208 | which is 80% of the product, 209 | though getting good google SEO is a strong step in the first right direction for marketing. 210 | 211 | # Steps to make your open source project popular. 212 | 213 | The end goal of any project should be that people use it. 214 | And typically, you want it to be used by the most people that would benefit from it, 215 | if they knew it existed and used it. 216 | Basically your goal *should* be to make your app as popular as possible. 217 | 218 | It is worth it to try to popularize your program. 219 | It is worth the extra time and effort. 220 | 221 | Basically, you need to spend lots of time researching marketing and sales. 222 | 223 | Expect to spend 50% of your time doing unsultry things, 224 | like writing documentation, 225 | writing up press reports, 226 | creating installers, etc. 227 | Also expect to spend some time (a lot?). 228 | Adding features that you don't care about (and possibly don't even really like?) 229 | because others think they'd be cool. 230 | 231 | Having an in house "cooling down time" while you use it to test it before releasing is good. 232 | 233 | They say that a website is 80% propaganda 20% usefulness. 234 | If nobody knows your project exists, 235 | it doesn't matter how cool or useful 236 | or better it is, 237 | nobody will use it, 238 | and nobody will participate in it. 239 | 240 | So here are some ideas how. 241 | 242 | 1) Have a useful app. 243 | - you can distribute it to developers before it's useful or polished. 244 | - you should distribute it to "prototype" users during the development process, 245 | to refine your requirements and re-assess what people actually want. 246 | 2) Make it easy to use. 247 | Ask for user feedback on this. And do it early. 248 | 3) Try not to have too many bugs which annoy users. 249 | 4) **SEO**. 250 | This is the key. 251 | Google can help you find users that you never could. 252 | And is the great playing field leveler. 253 | - How to increase SEO: Use the google keyword ad tool to see what the most popular "related" queries are for your product. 254 | Make this the name of your project. 255 | 256 | Example: 257 | 258 | for a project which takes "loopback" audio and captures it as a device, 259 | the following were the statistics: 260 | 261 | waveout mix 1600 262 | audio sniffer 390 263 | record what you hear 12,000 264 | virtual audio interface 320 265 | audio loopback 1900 266 | record speakers 12,100 267 | 268 | audio capture 246_000 269 | virtual audio 135_000 270 | audio grabber 165,000 271 | 272 | So now choose a project name that matches the most popular: 273 | in my case: virtual audio capture grabber device 274 | 275 | - Maybe add some personal flair, like "yet another" or something to make it distinct. 276 | - Rename your github project this, 277 | - create a sourceforge project with the same name style, 278 | - change its "project url" to point to yours, 279 | - create the "project site" as virtual.audio.capture.grabber.device.t28.net or the like. (t28.net is freely available on afraid.org) 280 | - You want as many links back to it as possible, esp. if it's a related conversation or the like. 281 | - Post to your blog a post "virtual audio capture grabber device" with a link just to your project. 282 | - Possibly several different posts with different common keyword combinations. 283 | - Also could blog like "competitor/alternative to xxx" with the name of some popular (pay) competitor et al. 284 | 285 | Search for the various words that match (all of them, even low popularity), 286 | and try and post links back from there to your project. 287 | Be careful to not spam, though. 288 | 289 | - Use your "real" name when making blog entries, and don't make extra blog entries, just change the url you use to your site. 290 | - Be authentic/legitimate or you'll be marked as a spammer. 291 | - If you do get marked as a spammer, then change your url to somesubdomain.yourproject.com . 292 | - For the first few links, try and add yourself to them. 293 | 294 | Reference: [Promoting Open Source Projects] by lex li (blog.lextudio.com) 295 | 296 | 297 | - Make it part of your email signature (have your name link back to it, or the like). 298 | - Make a facebook group page for it, 299 | - Get 25 people to like it so that it can be visible or the like. 300 | 301 | Then the secret is to "keep pushing it" over time. 302 | As people blog related things, tell them about it, et al. 303 | 304 | You can never make it too easy for end users. 305 | Assume they'll be "way more naive" than you even think they might be. 306 | 307 | - Post to mailing lists that are related (or even once with each release or major release). 308 | - Create google group with the same name. 309 | - Link appropriately. 310 | - Get your-name.com 311 | 312 | 313 | 314 | - Add yourself to alternativeto.net. 315 | - Get people on facebook to "like" you or your web page 316 | - Maybe add yourself to online indexes of competitors (like dmoz or the like) 317 | - Create youtube account with name, some videos, link back to your project. 318 | - create google "project" (code) with same name, link in. 319 | - Try to have "related" sites link back to you, in their links page for example, 320 | - or have them do a blog post "about" your new site or the like, Friends, family, anybody. 321 | - If your project is a fit, advertise it on stackoverflow questions, while extolling its virtues. 322 | - Same with various mailing lists "semi-old" threads or the like (don't do too many obviously). 323 | 324 | - Tweet about it. That is, be social, so that tweeting means something, then show it off. 325 | - Post it in ycombinator (?). 326 | - Stackoverflow has some good ideas (follow the links, too). 327 | 328 | Basically your goal is to advertise "where your people are" (your end users). 329 | 330 | Find them. Find a way to advertise right there. 331 | 332 | - Add tracking (google analytics works) so that you can see where more traffic is doming from and how to focus perhaps). 333 | - Ask your users or potential users what they would want to see 334 | (and/or possibly "what would you pay money to have related to this project" since that's what would be more important to them). 335 | - Don't have your project "home page" be github as then you can't track analytics 336 | - Try to get past a tipping point artificially. 337 | - Sit down with somebody and have them try it out (preferably while talking out loud). 338 | - The closer to your target audience the better. 339 | - Ask for feedback (then respond to feedback and show them the fixes preferably). 340 | 341 | In general, start early, release early (but fully tested) to build your project(?). 342 | 343 | In general, start with something that 344 | "if users knew it existed, it could become popular ever" 345 | (example: `Imagine the best that could happen with your project popularity wise` to check). 346 | 347 | You could also submit a patch to a previously existing already popular project, as a way to immediately have "your" project be popular. 348 | 349 | If there are no google searches "near" or "close" to your idea (it's too radical or the like) 350 | then you could look for popular searches that are "near" or "related" and 351 | append them to your project name possibly, though I've never tried that. 352 | 353 | 354 | 355 | You could take over an already popular project you're interested in (or become the "3rd main developer" for it) to get some free popularity. 356 | 357 | A few case studies: 358 | 359 | Luis Lavena took over the One click installer for ruby for windows. 360 | Its download number was already 3 million when he took over. 361 | Instant popularity! 362 | 363 | VLC media player does something most free players don't, 364 | which is play DVD's back right (and also most files, etc.) 365 | They're by far the most popular sourceforge project. 366 | 367 | Rails had some screencasts initially (and high-ish quality online tutorials) 368 | that really helped its popularity. 369 | 370 | - May want to include "free" in the name. 371 | 372 | - Do polls `what else would you like this to do?` or `What about these ideas how important would you rate them?` 373 | 374 | - Polish like beautiful code or documentation, examples, "book style" tutorials, books, all help. 375 | 376 | # Keytool 377 | 378 | Use generic searches (two words'ish ?) and it will tell you what related popular searches are, 379 | so you can see the best names to use. 380 | Click "order by global to see which are most popular. 381 | You can also enter "competitor's" names as search criteria and it will tell you all related searches to them. 382 | 383 | - Blog posts that make it, match google searches that are high for it. Advertise as a competitor to that other fella. 384 | - Google the various, try to leave comments et al. 385 | - Add project as list of competitors on alternativeto.net 386 | - Present at conferences/fairs/local user groups et al 387 | (never tried this myself but it could help spread the word/look for collaborators/get early feedback) 388 | - Advertise local newspapers (?) "local company creates x!" 389 | - Big "free download" links. 390 | 391 | This may be annoying, 392 | but if you want to attract "lay" members, 393 | you'll want a youtube video or something like that (with a person describing it or what not). 394 | maybe on the main page, but don't auto-play that's just too hard. 395 | 396 | For code projects, and a little bit other projects as well : 397 | Until you have demos/screen casts/sample programs written in it/production apps, 398 | nobody knows that they *can* show interest. 399 | 400 | - Screencasts on youtube with good "appropriate" names so that it can attract google SEO/be helpful. 401 | - Google +1/Facebook like. 402 | - Easy way for "lay" contributors (ex: google +) 403 | - Easy feedback (feedback box). 404 | - Uservoice, to allow for voting (?) 405 | - If you have any related projects (or perhaps any other projects at all) where you could advertise it, that could help, esp. if they're popular. 406 | - Be kind, gentle, thankful when you get user contributions. Why not? 407 | - Have an contributors file, add people freely, tell them. 408 | - "Lurk" online (google alerts? stackoverflow? 409 | - Other related mailing lists? 410 | - Blog entries that get posted about your topic?) and 411 | - Answer peoples' questions/point them in the right direction. 412 | 413 | # Support your product. 414 | 415 | Why not? 416 | 417 | Be nice to newbies. 418 | If newbie questions are too lame, 419 | establish a FAQ so you can redirect them easily to something that even they can understand. 420 | 421 | Port it to Linux if you want to have developers help you on it (and/or mac if your developer base is more on mac). 422 | Your initial users may only be developers, anyway, so building that initial community might be good to get things started. 423 | 424 | If there's something like rubyflow/infoq that you can submit things to, then do that. 425 | 426 | On your website: 427 | - Make it look reasonably good. At least one image, nothing ugly. 428 | - Extoll virtues of your product. 429 | - Extoll what makes it unique. 430 | - Big download button, right on front page. 431 | 432 | # Rename your product early. 433 | 434 | Don't like some other project? maybe consider fixing that project instead of starting your own. 435 | 436 | Benefit: 437 | - Less maintenance burden for you. 438 | - You avoid having to popularize your project at all. 439 | - Forking is an option, too. (and/or re-branding). 440 | 441 | Release "dev" betas earlier on, for testing, even before user betas. 442 | 443 | - Pay for related newsletter 444 | - Adwords, 445 | - Plead for facebook like/google +1's on your web site. 446 | - "Follow us" on facebook. 447 | - Tweet/facebook it for releases/news/comments 448 | - Mailing list same name as project. 449 | - domain, title same name as project. At least the subdomain. 450 | - m/b domain name like netflixinstantcompetitor.com though I'm not sure if that helps or not. 451 | - m/b subdomains with that name? e.g. netflixinstantfreecompeitor.com 452 | 453 | Start with a project that (`imagine the ideal of what would happen with this project`) could ever become very popular. 454 | 455 | - Just help some popular project instead of starting your own. 456 | - Or use their libraries in your project possibly 457 | - Try to advertise to "your audience" or in vaguely related newsletters or real newspapers [?]. 458 | - Ask people first if they like your idea (people from your potential user base). 459 | - Make it easy to use/human friendly, GUI/admin control panel. 460 | - Polish (Not the country). Get the fine edges worked out. 461 | - Have a UI. make it friendly. 462 | - Make a "lay" version that cannot be misunderstood (expert version is ok too). 463 | - Watch people using it while they talk out loud. 464 | - Look past your own needs for what it should do. 465 | - Submit it for reviews by cnet, etc. slashdot? That type of thing. 466 | - Put your "name" in h1 tags, also name your movies/video with SEO friendly names. 467 | 468 | For the true work-a-holics, here's how to try and boost your facebook page more: 469 | [7 tips for boosting seo of your facebook page] by jim belosic (searchengineland.com). 470 | 471 | Basically name the tabs well is all he says. 472 | 473 | The reality is that you may need some GUI or some simplified means for them to access your program, and/or understand or use it more easily. 474 | 475 | You need two means of contact a "feedback" form and a group. 476 | Preferably google. 477 | Email address doesn't hurt either, though you can post the email to address of your group, too. 478 | 479 | Don't be afraid to not do your own project, 480 | but just become the "5th man" in another popular open source project. 481 | After awhile and many high quality patches, 482 | you'll probably become well accepted, and your contributions make a difference, 483 | not to mention the ease of not having to take on the "whole load" of maintaining/popularizing the project yourself, 484 | as well as possibly being able to avoid having to popularize the project at all, 485 | if it's already popular! 486 | 487 | Sourceforge is a good place to host your "main" site since you can have a custom subdomain url, and add your own analytics, and have free hosting. 488 | 489 | 490 | 491 | Or hosting it under github as "github pages" works, too, subdomain wise effectiveness, though possibly a bit odd. 492 | 493 | Don't be afraid to "pivot" your project every so often with feedback from users, 494 | so that you can create something of most value. 495 | You want to create something of value because that would be good for society, right? 496 | 497 | 498 | 499 | NOTE: [register with me](gh/rdp) and I'll give all the adwords profits to you! (or, give me your adwords ID) 500 | 501 | Possibly something that connects bid for fix'ish with their checkout(?), since your goal is to help people. 502 | In the end, become the 5th man/documentation guy/mailing list helper for some other project or group. 503 | They'll love it, you'll make an immediate impact, *avoid duplication,* life is good. 504 | 505 | Use google alerts. 506 | 507 | # Super simplified version of app 508 | You may need a "super simplified" version of your app, for distribution, for non technical users. 509 | 510 | The mark of a truly polished product (not that polish matters, functionality is 20%, propaganda is 80%) is that it runs "wonderfully well" on windows (Like VLC). 511 | They've polished the edges off in windows. 512 | 513 | For software projects: documentation isn't finished until you have a book. 514 | 515 | Once you have used your software for too long, 516 | you have no idea how normal humans will see it. 517 | Or how they will use it. 518 | Or what will concern them. 519 | You need to run it through/past a few of them first. 520 | 521 | Screencasts for "getting started" (and/or "how cool this is") are needed. 522 | 523 | Quality over quantity. 524 | 525 | Become a contributor for a lesser maintained project maintain lower "layers" of software to have a big upper impact. 526 | 527 | Maybe advertise next to some related projects, 528 | or (if retail) list things on ebay in the hopes of attracting traffic back to your site a bit (interested parties). 529 | 530 | "Push through to perfection" 531 | (and have something that people would use if they knew about it, I guess, but quality over quantity anyway :P) 532 | 533 | Maybe sometimes in order for a program to be useful to people, 534 | it has to be made more system whole. 535 | Like, not a directshow screen capture device, but something that makes screen capture easy/awesome using it. 536 | 537 | If something is more "generally" useful (a new mouse trap) then it has the potential to become more popular. 538 | VLC "a video player" but I suppose that doesn't prevent you from writing something small, high quality. 539 | Find a niche, fill it, I guess. 540 | (an end niche might be better than just a library, indeed) 541 | 542 | Sometimes you have to have tons of value added before. 543 | you can add value, if that makes sense (angie's list). 544 | Seems like once you have the right name, and the lurking, then you just need tons of value. 545 | 546 | Your command line utility is not complete until it has some type of wrapper GUI on it. 547 | 548 | It helps for web sites to add tons of "useful" data first somehow. 549 | Escpecially if you want to crowd source it. 550 | Like wikihow needed/needs to pay people to do most things originally [or was it ehow], 551 | and how amazon pays people via the first vine program to write high quality reviews. 552 | It is forcefully adding crowd sourced useful data. 553 | 554 | The ideal is quite possibly a "multi tiered" approach, 555 | where each tier is its own full blown distro somehow, 556 | so that others can notice/re-use/know of the individual pieces bundled underneath. 557 | And you can get SEO for each piece. 558 | Developing a "final, end user" app for your individual component pieces may help them to get used. 559 | 560 | advertise, advertise, advertise. 561 | it's what business people love, more exposure, and so should you. 562 | 563 | I think the principle is, work on a few projects and polish them, not tons of projects that don't affect many people. 564 | 565 | Normal end users want some wrapper that insulates them from *all* of the output and complexity of the lower layers. 566 | dirt simple, your own layer on top that abstracts out all the others. 567 | 568 | Functionally complete != polished!!! 569 | 570 | Add a link to your "stuff" in your email footer. 571 | spammy, but possibly effective. 572 | 573 | Make yourself "very useful" and you will get the users (ex: firefox, but other things too). 574 | 575 | 576 | 577 | [opensiteexplorer.org] "might" show you which of your backlinks are actually useful like they don't have a rel nofollow 578 | 579 | Actually, trying to add your site to wikipedia articles that are related "might" help with SEO, 580 | even though they don't give credit for the URL. It "might" build traffic as well. 581 | 582 | # Focus 583 | Better to focus on just "one thing"? (lyrics vs. sheet music?) first? 584 | 585 | Once you're done with it, that doesn't mean it's finished. 586 | 587 | If you can build a tool that other people can use "for their projects" then that could be useful. 588 | Making others money is typically popular. 589 | A tool they can use to build their dreams/help them is typically useful. 590 | 591 | You should make it functional, and also make it pretty. 592 | 593 | The best way to "fine tune" it to match your audience is to walk a mile in thier mocassins. 594 | Or ask them. 595 | Or if they're techy, they'll just tell you. 596 | 597 | In other words, the idea is that there is no way you can fix the command-line interface, 598 | for a number of reasons, not the least of which is the inertia of a precious few power-users, 599 | which according to Apple's Human Interface Guidelines is not a good thing: 600 | "If you try to design for the 20 percent of your target audience who are power users, 601 | your design may not be usable by the other 80 percent of users.". " 602 | 603 | 604 | "Like" making it easy to use for end users. 605 | Make that your goal. 606 | Also making it easy to install/get, easy to use. 607 | 608 | People like things that are useful to them. 609 | New mouse trap, som tool for marketing, a DVD player. 610 | 611 | In reality an open source project should "pivot" to do/know what is useful for them. 612 | 613 | Github "readme" links might add some SEO. Probably not enough to matter :P 614 | 615 | Don't rely on somebody else to make a pretty gui for your app. You make it! 616 | 617 | Make it as good as you need/want it, then envision/go one step beyond. 618 | 619 | "Imagine you were making it for paying customers, what features would you add? How would you change it to make it more user friendlier?" 620 | 621 | In true, normal business sense: 622 | - take surveys to see what people would actually "like/want" to use if they could have it, too. 623 | - See what do/don't use currently, too. 624 | - Ask them for feedback for the program, i.e. what they'd like, too. 625 | 626 | For a library, you need good "documentation coverage" of basically everything. 627 | Like examples, in the documentation/tutorial, of how to do each/everything. 628 | reference: [best documentation thoughts] by rogerdpack (betterlogic.com) 629 | 630 | Every project (well maybe not API Libraries) needs a website 631 | (or at least some way to get to the documentation/tutorials straight-forwardly). 632 | Non API, definitely needs its own dedicated website. 633 | 634 | To get a language/runtime popularized, 635 | you have to do a lot of things "for" people--like a quality standard library. 636 | This same principle may apply to other things. 637 | 638 | Put on final touches like a professional looking webpage, the "installer icon" of the installer package, etc. 639 | 640 | Making things easier for the end user can be excellent. 641 | 642 | Actually working and being user friendly is only 20% of being successful. 643 | Rest is propaganda or something else that I don't understand. 644 | 645 | # Others 646 | 647 | - Get awards. 648 | - "Have popularity contests somehow" that can help press releases? 649 | - Read books on it,like acangiano's on blogging 650 | - You need a pro looking website, and pro looking installer, and pro "marketing" something like that. 651 | - You may need to "know how" to build up a community. 652 | - Real website url probably helps. 653 | - Advertise on alternativeto.net, SO, reddit, community forums "related to your topic" [?] etc. 654 | 655 | You can't rely (at the get go) from crowd sourcing people to do your work/propagate things/get the ball rolling for you, 656 | nor can you rely on "other developers" to pitch in/join the team immediately and start adding features/fixing bugs/ making it work for you. 657 | 658 | The only thing "end users" really end up caring about is 30% functionality, 659 | 70% the "look and feel" and "ease of use/ease of setup". 660 | Something close to that anyway. 661 | 662 | They say building a tool will bring people running but, 663 | building something intuitive might be more important for end users? 664 | 665 | # User and developer 666 | Should pivot often to meet "real" user needs. 667 | 668 | User feedback is critical for developing what people actually want to use. 669 | I'm not sure how closely this is related to actually becoming popular. 670 | 671 | Realize that "closed source, free" == "open source, free" to typical end users. 672 | 673 | submit it to c.net for reviews or the like 674 | 675 | Don't expect basically any other developers to join your core team. 676 | For some reason, it's really rare (like FFmpeg rare). 677 | Small contributors, possibly, feedback from "lay users" more probably. 678 | 679 | Having an irc channel (with easy connection somehow) might be a nice thing, ideally inline on the website. 680 | 681 | Expect it to take more time than you anticipate it will take 682 | (well coding always does, 683 | but for the polishing and advertising and 684 | doing things beyond what you would normally do just to get it working for yourself to use). 685 | This may mean that you can't do as many simultaneous/different projects at one time. Limit yourself to one or 2. 686 | 687 | A quality "README" doesn't cut it. 688 | It should be a website explaining the concepts to users. 689 | 690 | Market early and market hard. 691 | Since it's 80% after all. 692 | Even before functionality has been built. 693 | It should be stable probably. 694 | So I guess polish up early releases to a marketable state? 695 | Don't need bells and whistles. 696 | 697 | "Real" end users only care about (mostly) the final final end product "what *could* this be, 698 | at its conclusion/fruition with all the bells and whistles added, etc. 699 | Of course, you'll want to pivot to really know/understand what end users end up wanting. 700 | 701 | 702 | NOTE: re-read [How to make your open source project really awesome] by the clojurewerkz team (blog.clojurewerkz.org) 703 | 704 | Seems like you almost want one guy just full time doing PR/getting feedback from users/beta testing while the other works on it. 705 | Submitting it to C|net, polishing UI [?] maybe there's enough work there. 706 | 707 | Best way to test is to have somebody use it for an extensive period of time (or you use it). 708 | In use you tend to run into things. 709 | It is excellent testing. 710 | 711 | People dont' care how excellent your code or test bed is. 712 | They just care about the polished end product. 713 | Like the technology side, per se, doesn't matter. 714 | Awesome code? don't care. 715 | Rockin' gui? care, possibly more than I imagine. 716 | 717 | It seems that if you do your project then are just fanatical about promoting it, 718 | watching ML's so that you can promote it, 719 | basically getting all fanatical about it (and possibly about supporting it? adding new features to it, etc.?). 720 | Basically devoting yourself to it, 721 | then you could make it more successful [viz: some of my ruby projects. I just don't care enough to promote them]. 722 | 723 | Don't be afraid to spend money (your own personal money, and possibly a kickstarter too?) on it. 724 | 725 | Also ideally you should get customer feedback, and meet some niche that people want/demand, if you want to be popular anyway. 726 | Maybe in the ideal world people would make money at it? 727 | 728 | At the end of the day, it is hard/painful to work on projects, even your own, if it's for features "for other people" etc. 729 | So add some kind of pay option, seems to be the way to overcome this and be able to justify, mentally, polishing your own 730 | products. It's just the reality of the human mind :) 731 | 732 | These days it seems a "good" option to have a "pay tier" somehow, as well as free, to keep things going. Then you're 733 | encouraged to work on it, but it still helps as many people as possible. 734 | Basically, anticipate if you do it "all free" to be spending the rest of your life "getting" to work on it. 735 | Including features for things you don't care about. Free tech support for people that don't realize 736 | how valuable that is. 737 | Or it will stagnate. If you don't see yourself doing that, then add a pay "something or other". Tie-in. 738 | Else stagnate it seems. Sometimes you can keep it in low maintenance mode (accepting PR's to keep it going). 739 | Sometimes. But it won't be as polished. Maybe still useful who knows... 740 | 741 | One tip to being leveraged/adoptes/contributed-to/used by others is the missing license. 742 | A permissive (non-toxic) license like MIT or Apache would make these much more attractive! 743 | 744 | # Note 745 | 746 | on 2017 '[how do you promote advertise evangelize your open source project](so-95710)' question on Stackoverflow is deleted. 747 | Archive from web.archive.org can be found [here](archive_so-95710) 748 | 749 | # Contributing 750 | 751 | Please read [CONTRIBUTING.md](./CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. 752 | 753 | # Links 754 | 755 | See also: 756 | 757 | - [Producing Open Source Software] by Karl Fogel (producingoss.com) 758 | - [How to self-promote your open source project] by Jason Hibbets (Red Hat)(opensource.com) 759 | - [How we got our 2-year-old repo trending on GitHub in just 48 hours] by Abhinav Suri (medium.freecodecamp.com) 760 | - [awesome-indie] - Resources for independent developers to make money 761 | - Stackoverflow tag, such as [project](so-tag-project) or [open source](so-tag-open-source) 762 | - Stackoverflow questions: 763 | - [Where can I advertise an open source project?](so-1621916) 764 | - [Promoting Open Source Projects](so-2820033) 765 | - [Best Practices for Setup and Management of an Open Source Project](so-2567766) 766 | - [How are open source projects managed](so-721545) 767 | - [How do I spread awareness of my open source project?](so-417079) 768 | - [How do one start a successful open source project?](so-3419160) 769 | - [How do you manage your own small project?](so-1077900) 770 | - [Seeking advice for taking a project open-source](so-2022200) 771 | - Quora: 772 | - [How do I promote my open source projects?](quora-hdi-promote-my-open-source-projects) 773 | - [How do you promote an open source project?](quora-hdy-promote-an-open-source-project) 774 | - [How do you promote software product on the Internet?](quora-hdy-promote-software-product-on-the-Internet) 775 | - [What are some ways for people to promote their open-source projects after a period of launching?](quora-w-are-some-ways-for-people-to-promote-their-open-source-projects-after-a-period-of-launching) 776 | - [What are the best websites or places in the internet to promote any software project?](quora-w-are-the-best-websites-or-places-in-the-internet-to-promote-any-software-project) 777 | - [What are the places or websites where you can promote your app?](quora-w-are-the-places-or-websites-where-you-can-promote-your-app) 778 | - [Where are the best places to promote a tech startup?](quora-w-are-the-best-places-to-promote-a-tech-startup) 779 | - [Where is the best place to promote your website?](quora-w-is-the-best-place-to-promote-your-website) 780 | 781 | 782 | 783 | [37 signals]: http://www.37signals.blogs.com/ 784 | [opensiteexplorer.org]: http://www.opensiteexplorer.org 785 | [Producing Open Source Software]: http://producingoss.com/ 786 | 787 | [7 tips for boosting seo of your facebook page]: http://searchengineland.com/7-tips-for-boosting-seo-of-your-facebook-page-91961 788 | [How to self-promote your open source project]: https://opensource.com/business/13/2/self-promoting-open-source-projects 789 | [How we got our 2-year-old repo trending on GitHub in just 48 hours]: https://medium.freecodecamp.com/how-we-got-a-2-year-old-repo-trending-on-github-in-just-48-hours-12151039d78b 790 | [Promoting Open Source Projects]: https://blog.lextudio.com/promoting-open-source-projects-863ad2f838dc 791 | [Treat Open Source Like a Startup]: https://hacks.mozilla.org/2014/05/open-source-marketing-with-velocityjs/ 792 | [best documentation thoughts]: http://betterlogic.com/roger/2012/06/best-documentation-thoughts 793 | [how to make your open source project really awesome]: http://blog.clojurewerkz.org/blog/2013/04/20/how-to-make-your-open-source-project-really-awesome/?utm_source=statuscode&utm_medium=email 794 | [how to spread the word about your code]: https://hacks.mozilla.org/2013/05/how-to-spread-the-word-about-your-code/ 795 | 796 | [openshot 20 september update]: http://www.openshotvideo.com/2015/09/openshot-20-september-update.html 797 | 798 | [archive_so-95710]: https://web.archive.org/web/20100121161608/https://stackoverflow.com/questions/95710/how-do-you-promote-advertise-evangelize-your-open-source-project 799 | [awesome-indie]: https://github.com/mezod/awesome-indie 800 | [gh/rdp]: https://github.com/rdp 801 | [passion project notes]: https://docs.google.com/document/d/1DmnI7hMHYpVwEn3ddRl1C1uBxaTikwGLZaoPT6oBxt0/edit 802 | [passion project]: https://docs.google.com/document/d/1DmnI7hMHYpVwEn3ddRl1C1uBxaTikwGLZaoPT6oBxt0/edit?usp=sharing 803 | 804 | [quora-hdi-promote-my-open-source-projects]: https://www.quora.com/How-do-I-promote-my-open-source-projects-Are-there-any-advertisement-services-for-free-that-can-be-used 805 | [quora-hdy-promote-an-open-source-project]: https://www.quora.com/How-do-you-promote-an-open-source-project 806 | [quora-hdy-promote-software-product-on-the-Internet]: https://www.quora.com/How-do-you-promote-software-product-on-the-Internet 807 | [quora-w-are-some-ways-for-people-to-promote-their-open-source-projects-after-a-period-of-launching]: https://www.quora.com/What-are-some-ways-for-people-to-promote-their-open-source-projects-after-a-period-of-launching 808 | [quora-w-are-the-best-places-to-promote-a-tech-startup]: https://www.quora.com/Where-are-the-best-places-to-promote-a-tech-startup 809 | [quora-w-are-the-best-websites-or-places-in-the-internet-to-promote-any-software-project]: https://www.quora.com/How-do-I-promote-my-open-source-projects-Are-there-any-advertisement-services-for-free-that-can-be-used 810 | [quora-w-are-the-places-or-websites-where-you-can-promote-your-app]: https://www.quora.com/What-are-the-places-or-websites-where-you-can-promote-your-app 811 | [quora-w-is-the-best-place-to-promote-your-website]: https://www.quora.com/Where-is-the-best-place-to-promote-your-website 812 | [so-1077900]: http://stackoverflow.com/questions/1077900/how-do-you-manage-your-own-small-project 813 | [so-1621916]: http://stackoverflow.com/questions/1621916/where-can-i-advertise-an-open-source-project 814 | [so-2022200]: http://stackoverflow.com/questions/2022200/seeking-advice-for-taking-a-project-open-source 815 | [so-2567766]: http://stackoverflow.com/questions/2567766/best-practices-for-setup-and-management-of-an-open-source-project 816 | [so-2820033]: http://stackoverflow.com/questions/2820033/promoting-open-source-projects 817 | [so-3419160]: http://stackoverflow.com/questions/3419160/how-do-one-start-a-successful-open-source-project 818 | [so-417079]: http://stackoverflow.com/questions/417079/how-do-i-spread-awareness-of-my-open-source-project 819 | [so-721545]: http://stackoverflow.com/questions/721545/how-are-open-source-projects-managed 820 | [so-95710]: http://stackoverflow.com/questions/95710/how-do-you-promote-advertise-evangelize-your-open-source-project/7290165#7290165 821 | [so-tag-open-source]: http://stackoverflow.com/questions/tagged/project 822 | [so-tag-project]: http://stackoverflow.com/questions/tagged/open-source 823 | --------------------------------------------------------------------------------