
Turning a side project into an open-source project - siruelise
https://www.reaktor.com/blog/how-to-turn-your-side-project-into-an-open-source-project/
======
joeblau
This is a great guide. I followed the similar steps for
[https://gitignore.io](https://gitignore.io)

I was doing a lot of development work and going to github.com/github/gitignore
to copy templates from GitHub's website to my own file system was getting
tedious. What I wanted was a simple command line tool like

    
    
      gi java > .gitignore
    

So I built it over the course of a week while at Mammoth CA. I was on a
snowboard trip so I would ride during the day and code at night. I was
thankful to have a great designer (who worked at GitHub) help me design the
site. And today the project is almost 5 years old and gets nearly 80,000
MAU's.

~~~
onion2k
A little feedback - it seems a bit mixed up. If I put in "Node" it assumes I
want suggestions for files that you'd typically ignore on a Node project.
That's useful. But if I enter "Web" it gives me a list of web file types to
ignore (*.html etc). Rather than assume I'm working on a web project (as it
does for Node) it's doing the opposite of that, and making suggestions to
ignore all the "Web" files.

Clearly this isn't a huge problem as your project is doing really well, but it
jumped out at me a bit.

~~~
joeblau
The history on this is that originally, templates like Web, Compressed, Audio,
Video, etc... were added to ignore an entire domain's tele tapes instead of
assuming that you're working on any of those types of projects. Right now,
there isn't anything that differentiates the domain specific templates from a
language, IDE, or operating system template. Not sure how to improve the
experience off the top of my head but I'll think about it.

Good feedback.

------
spieglt
I was just worrying last night that I've released my side project too early,
so glad to hear someone encouraging imperfect-but-usable releases. If anyone
has advice on finding users, testers, and contributors besides posting on Show
HN, please let me know.

[https://github.com/spieglt/flyingcarpet](https://github.com/spieglt/flyingcarpet)

~~~
jehna1
Wow, cool project!

You should try Reddit. It has a lot of niche communities where you could share
your project.

Also Google for things someone who seeks for a project like yours would
Google. That gives you a rough idea of what kind of sources people use to find
tools like yours.

Also some directories list specific tools (like "awesome" lists of github).
Try listing your project there. Or even starting your own "awesome" list
project on GitHub :)

~~~
spieglt
Thanks! Any specific subreddit recommendations besides r/golang?

~~~
jehna1
Try product-specific subreddits like /r/coolgithubprojects

There are other subreddits too which are trying to find cool projects like
yours.

Other approach is to write a blog post and post that to e.g. /r/opensource

------
orng
I think that adding a (permissive) license is the missing step from this
"tutorial". If you want people to use your project you are going to need to
give them permission to do so.

~~~
ShaneCurcuru
You _have_ to have a license to attract contributors.
[https://choosealicense.com/](https://choosealicense.com/) and github make it
easy; there's zero excuse to not have a license.

Permissive licenses attract the broadest range of contributors, so if you're
looking to build a large community, they are the way to go. GPL tends to have
a smaller overall, but very strong pool of contributors, so if copyleft makes
sense for your technology, by all means use it.

Just use a license, please.

~~~
kakwa_
The chance of a personal project building a large community are quite slim
regardless of the license.

Chances are a personal OSS project will only attracts a few dozen users and
maybe a handful of contributors (contributing mostly small bug fixes) with the
creator as the only real developer/maintainer.

There is also a good chance that the maintainer will only contribute from time
to time after the initial "dev sprint", if it doesn't abandon the project all
together.

Basically the bus factor for such projects is 0. If you are relying on one of
them, you should be aware that you may have to maintain a fork on your own in
the future.

Given this state of things, I prefer having permissive licenses (ex: MIT) on
my projects. It's a way for me to give complete freedom about what you do/want
to do with my piece of code (piece of code that I may have abandon but is
still useful to you). You can fork it and keep the fork OSS or you can include
it inside the source tree of your product and maintain it that way, the later
being generally easier.

------
jlg23
Call me old-fashioned, but the only thing necessary for turning a side project
into open source is to grant anonymous access along with a license. Well,
that, and either too much disposable time or a strict policy how to deal with
users or contributors. Making this policy clear to your users/contributors is
IMHO the most important thing - it allows you to tell people to GTFO if they
disagree; after all, they already get more than they paid for.

~~~
dawnerd
Yep. Anything more and you’ve turned it into a side job that doesn’t pay.

------
mjleino
Nice work! I especially appreciated the emphasis on writing a good README… but
I think it's missing the most crucial thing you need on top your README.
That's the motivation aka _why_ the project exists at all, _why_ it's better
than the alternatives, etc.

~~~
jehna1
The differentiating qualities of the project is indeed very important. But I
think it's more than okay to also say that "this is a clone of xxx I'm using
to learn yyy".

~~~
Jaxan
Putting a bit more into the README has my preference. Often I come acros repos
with “I cloned xxx with yyy”, where I have never heard of xxx. It only takes a
bit more to briefly explain xxx.

------
sudhirj
On the subject of OSS projects on the side, I'm really interested in the dual
licensing model - I'd like to have my code licensed under a strict copyleft
license so people can see the code, but a more permissive license so
businesses can use it.

Based on articles like [http://www.mikeperham.com/2015/11/23/how-to-charge-
for-your-...](http://www.mikeperham.com/2015/11/23/how-to-charge-for-your-
open-source/) I've figured out the following:

OSS license - AGPL - I'm building web services distributed as docker
containers, so AGPL makes sense because it forces businesses to buy a license
even if thy just deploy an instance of the service without modification.

Commercial license - this is where I'm stuck. MIT / BSD isn't a good fit
because the business is then free to make and sell their own version of the
service. What license will allow a business to run my service, and customize
it for their own needs if necessary, but not re-license or redistribute it?
Based on
[https://choosealicense.com/appendix/](https://choosealicense.com/appendix/)
it seems like the Mozilla Public License comes close, but it forces businesses
to disclose the changes they've made - which I doubt they'd want to do.

I don't want to write my own license - anyone know of a good existing license
or template? Don't mind buying it if it's less than $100, but getting a lawyer
to write one is much more expensive.

~~~
bluGill
AGPL doens't force bushiness to buy a license. They can use your code at no
cost and modify at will so long as they make their changes available AGPL.

What you want is dual license. First is AGPL: you accept that some companies
will use the free code - get over it. Second is a non-open source license:
your lawyers write it, those who buy this license don't have to share changes
(which could be made by you or them).

The hard part is not the license, the hard part is the business model so you
don't go bankrupt. Since AGPL is always available what do you offer so that a
company will pay you? (there are many good answers, just make sure you have
one)

~~~
sudhirj
> AGPL doens't force bushiness to buy a license. They can use your code at no
> cost and modify at will so long as they make their changes available AGPL.

Because the AGPL counts network access as distribution, it would force
businesses to open source their private codebases that communicated with my
service - which is enough of deterrent to freeloading for me.

~~~
icebraining
_Because the AGPL counts network access as distribution, it would force
businesses to open source their private codebases that communicated with my
service_

I don't think so. It only forces you to distribute the source of their copy of
your service to any network users.

------
jehna1
Hey, I'm the author of this blog post. Hit me with questions if you got some!

~~~
jehna1
TL;DR: how to turn a side project into an OSS side project: start by
scratching your own itch, timebox tweaking, write a good README, hit publish.
Easier than you'd think.

here's the project [https://github.com/jehna/ga-
lite](https://github.com/jehna/ga-lite)

------
CthulhuCoin
i love the idea of just finishing - anything - and doing another. this is the
only way to go, in any endeavor. try, fail, learn, fix. repeat.

~~~
jehna1
Deadlines are a bliss. They help you to both reduce the unnecessary, but also
to fail faster.

Sunken cost fallacy is a real thing even in side projects.

