#7 Make Your Project Open SourceπŸš€

::: hljs-center

Hey, it’s Sarthak from Bitfumes! Welcome to the 7th edition of our Newsletter πŸš€

A huge thanks for being here with us ✨

:::

Hi there πŸ‘‹

Making your project open source is one of the most rewarding experiences you can have. In the previous two editions of Bitfumes Weekly, you got introduced to the concept of open source and also to get started for the Battle of Portfolios Contest πŸ€“

In today’s edition, we will give a complete brief into how to make your current/existing project open source and get it ready for the world to see, use, and contribute.

Let’s get rolling πŸ‘‡

In 10 simple, easy-to-follow steps, let us learn how to convert your project into open source -

1. License Selection

This is the first, important step. Choose your license wisely, so that everyone from users, contributors, moderators, etc that you add to the project, know how and within what limits they can use your product!

It also reassures contributors that they can use, modify, and add back to the project without any consequences. It also helps to protect you from future possible legal entanglements. Do not worry though, no one can/will make matters complicated at this stage πŸ˜ƒ

There are several licenses to choose from - MIT, Apache 2.0, GPLv3, and many others. All of these are straightforward and a simple copy-paste of one of these can strengthen your project licensing a lot.

2. Code Quality

Make sure your code is neat and has comments where needed so others can easily understand what’s going on. You do not have to make it "optimised" yet, but make sure that whatever code you write is readable by others and they can start making sense of it almost immediately.

The goal is to ship the code quickly but with enough standard quality.

3. Create a Good README

All good, great, and the best codebases have a README. It is one of the most basic, and most important files to be included in the root folder of your code.

Write up a README that explains what your project is about, how to set it up, and how people can help out. The README should also contain other technical details such as setting up the environment, packages, versions and breaking changes during installation (if any), and how to run the code on localhost. This will immediately make your project more likeable and people can get a first-hand experience and feel of your project in their own development environment. Great, isn't it? πŸ€“

4. Set Contribution Guidelines

Similar to a README, make a little guide (guide.md) that tells people how they can contribute, how to suggest features or fix bugs.

This step can go a long way in ensuring that your project follows standard guidelines shipping new features, upgrades, and for contributors to follow necessary rules and steps to contribute properly. They must have a clear idea of how to raise PRs, assign issues to other fellow contributors, and even resolve any problems fellow users might have.

5. Set a Code of Conduct

In a world with increasing volatility, it is very important to set the tone of your project. This will indicate a strong presence of β€œculture” where contributors, users, and anyone who uses your project and communicates with others, follow a set of ground rules about discipline, decency, way of addressing people/issues, etc.

6. Get Social

Community building is very crucial, and doing it before Day 1 is important. Today's world thrives on close-knit people coming together around an idea, and working on that idea. Share your project in places where folks who might be interested hang out and set up a way for people to chat about it, like a Discord server, or a simple Slack channel.

Interact with them on a frequent basis, invite opinions, suggestions, etc in the open. Building in public goes a long way πŸ™‚

7. Use GitHub

A central code repository is a must have! And presently, GitHub is the best place for that. It has stood the test of time, and along with a good interface, it provides many add-ons like dependency bots, CI/CD pipelines, GitHub pages, etc to really take your project to production level. Put your project on GitHub, make sure it’s public, and use the issue tracker to keep tabs on what needs to be worked on.

8. Keep a Changelog

You must have noticed that version changes for anything is a difficult thing to keep track of. One simple slip-up without a track record, and all hell is set loose πŸ€• Keep a note of all the changes in your project, so everyone knows what’s new. Here are 4 useful GitHub changelog tools for your project.

9. Pricing (Optional)

Set pricing guidelines for bigger companies or enterprises that can adopt your project and upgrade it to enterprise levels with added features, benefits, etc. This makes sure that while the core features are always there, people can pay and contribute to get something extra, which helps keep your open source project alive (servers, development costs, etc).

And.. that's it! This is everything you need to make your project open-source. And this is a great first step in entering the open-source world! Next, you can become a contributor yourself and start racking up those cool brownie points πŸ€“

There is one last step however.. I did promise 10 steps πŸ˜ƒ

10. Personlization

Make your project as personally expressive of yourself as possible. What I mean is this - when I started Bitfumes, I began doing everything to express my core beliefs and thoughts through my work. That meant honesty, transparency, and of course - my personal design ideas and style of writing code 😎 Over the years, people know me and identify me through my work. That's a cool thing, personally.

Your project can also have this trait. It need not necessarily solve the world's big problems. It can be as simple as a neat little feature or Chrome extension that you always wished for. Code it yourself, make it public, give it your own personal spin and voila - you have a nifty open-source project ready for the world πŸš€

:::hljs-center

REMEMBER -

For your project to be considered for the Bitfumes Battle of Portfolios contest, the first requirement is that you should follow ALL the above steps without fail! The only exceptions are Pricing and Changelog since they can be tricky to understand and setup, but the rest of the stuff is very straightforward.

Make sure to follow them πŸ™Œ :::

:::hljs-center

What's cooking at Bitfumes

I have been a bit engaging with the YouTube channel this last week, and it's been amazing! Make sure you do not miss out on these πŸŽ₯

πŸ’Ž If you are a Docker enthusiast, then you should definitely not miss the Docker series I have been doing. Last week, we saw how to integrate Docker with PHP/Laravel, and this time I am sharing this comprehensive video on best practices with Dockerfile. Check it out πŸ‘‡

πŸ‘‰ Dockerfile Best Practices

πŸ’Ž And why stop with PHP/Laravel? Let's also give the frontend its spot in the sunlight πŸ˜ƒ Here's how you can use Docker with NextJS πŸ‘‡

πŸ‘‰ Use NextJS this way with Docker

πŸ’Ž Speaking of frontend, who doesn't like controversies? πŸ‘» Watch me take a risk with this much debated topic πŸ‘‡

πŸ‘‰ React vs Vue - Which Is Better for 2024?

Further Reading

Let's be real - Learning continuously is not always fun. Yes, it does spark the mind with new ideas, new thoughts, etc. but we are humans at the end of the day - humans with hundreds of commitments.

Learning new things in this busy life can be difficult. So how to really optimise it?

βœ… Learn Like A Pro

On the same train of thought, learning to learn is a crucial thing. Here's a nice article on learning new things as a software developer.

βœ… Learning Everyday As A Software Developer

In the same way, there are often many, many things in our life that become obsolete. We must learn to let go or "unlearn" a lot of stuff to make room for new things. It's a simple way of accepting new things while also recognising the need to unlearn previously gained knowledge. Much needed for coders in this ever-changing world, wouldn't you say?

βœ… Unlearning To Learn :::

::: hljs-center

Show some love ❀️

:::

If this newsletter helped spark some new ideas in you, then let us know on your socials πŸ™Œ

Subscribe on YouTube Tag me on Twitter - @sarthaksavvy or @bitfumes Our latest posts on Instagram - Bitfumes