How to start and run an Open-Source project.

Let's take a look 👇🧵
If you have never Open-Sourced a project before, the whole thing might feel very intimidating.

You probably fear what people will say? Will they throw shade at your project? Will it even be noticed at all?

You’re not alone in feeling this way. Believe me!
🔸 Finding a problem to solve

Most popular projects have a clear goal of solving a problem.

There are exceptions, but generally, great Open-Source projects consist of ready-made solutions to a problem that you can easily consume or incorporate into your own software.
Did you notice that there are certain recurrent issues that you solve in the same way every time?

Maybe you have found yourself digging into old projects to snatch that piece of the code that solved it the last time, and carry it on to your new project?
These are obvious queues that you should consider Open-Sourcing your solution.

Instead of trying to invent a new problem - simply try to look into the existing projects, and identify the problems you have.
🔸 Creating a solution

Formulate a simple, novel solution to your problem, and make a simple, clear-cut API with good self-explanatory names.

You want to consider as many scenarios as possible - also scenarios that you may not encounter in exactly your own projects.
A generally recommended practice is to formulate an outline of your solution first.

Create all the function signatures that you expect your API to have, and maybe start drafting the documentation first, so you get an overview of the structure.
Make it easy to contribute to.
When creating the solution, keep in mind that the codebase is written for other contributors as well.

Spend time writing clean, readable, and concise code.
Make comments where you find that it makes sense.
🔸 Creating an outstanding Readme

This part is central and really important.
As a bare minimum, the Readme should describe the motivation for creating the solution and explain how to use it.
However, keep in mind that you’re also “selling” this solution.

It is in your best interest that people will use it, improve and contribute to it and star it on GitHub.
To make the Readme appealing and intuitive, I suggest including:

🔹 Banner/graphic
🔹 Badges (from shields .io)
🔹 Table of content
🔹 Illustrations and code-snippets
🔹 List of technologies used
🔸 Create a contribution guide

I recommend covering the following points:

🔹 Issues
The preferred format of reporting a bug or requesting a feature

🔹 Pull Requests
The preferred way to create a PR, including which base branch and branching/naming conventions to use.
It’s also highly recommended to do a PR checklist:

An example could be:
- I ran all unit tests, and they are passing
- I wrote new unit tests if appropriate
- I install the client locally and tested it manually
- I updated the version in package.json
🔸 Package and publish

If you’re writing a project in JavaScript, you would package and publish the project using npm.

Again, keep the ease-of-use in focus.
The consumer should be able to install and get started with a minimum of configuration and initial procedures.
When you release a new version of your project, you will have to label it with a version number.

The version format that is most widely known and accepted is ‘semver’, which stands for Semantic Versioning.

It follows the format: MAJOR.MINOR.PATCH
semver.org
🔸 Licensing

When you create a new Open-Source project, it is highly recommended to include a license.

This license guarantees that contributors can clone, use, and alter the source code without facing legal repercussions.
Choosing the right license for your project can feel like dreary legal work.
But don’t overcomplicate this - in most cases, you’re good picking either MIT or Apache 2.0.

Unless you’re working under special circumstances, I suggest picking MIT and getting on with the project.
🔸 GitHub’s Community Standards

Make sure you can check off all items on GitHub’s Community Standards checklist.

You can find this by going to Insights -> Community.
Of course, then there's promoting the project and creating awareness about it.

That's an entire topic on its own and is not very different from promoting any other projects or products.

I'll cover that in another thread 😊
Open-Source is carrying so many benefits and opportunities, whether you're looking for a career boost or improving sales in your business.

Don't miss out!

Also - make sure to like and retweet the first tweet so we can get this one around 🤩 Thank you!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Simon Høiberg

Simon Høiberg Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @SimonHoiberg

5 Aug
3 things we are extremely proud of as SaaS founders:

🔸 We are bootstrapped 💪
🔸 We've been driving sales from day 1
🔸 We had product-market-fit from day 1

How did we do that? 👇🧵
🔸 We are bootstrapped

Even though we generated revenue from the beginning, we were not profitable.

Of course, it costs money to get started.

There are two main reasons why this was possible to us 👇
1. Both my Co-Founder, @SimonGronborg and I are software developers with a lot of experience.

No doubt! When running a SaaS business, paying engineers to build your product will be the biggest expense for a long time!

In our case, we've been able to do that part ourselves.
Read 16 tweets
5 Aug
JavaScript 💡

14 Array Methods that will land you the next job.
Learn and understand what they do and how to use them.

Explanation and examples below 🧵👇
🔸 map

The map() method creates a new array populated with the return value of the callback function for each element in the array.
🔸 forEach

The forEach() method executes a provided function once for each array element.
The callback function does not expect a return value, and the forEach() method itself also returns undefined.
Read 16 tweets
3 Aug
You should start contributing to Open-Source.

Here are 6 ways you can heavily benefit from it.

👇🧵
1️⃣ Become a better developer

Maybe you are still entry-level.
Or maybe you are an experienced developer.

No matter the level, the world of tech is a place where you can (and should) strive to learn something new.

Open-Source allows you to build up skills and become better.
If you are an entry-level or newly graduated junior, you may find yourself stuck in the famous “cannot-get-hired-because-I-don’t-have-experience” deadlock.

Open-Source doesn’t require you to be hired, nor does it require you to have a degree or a resume.
Read 26 tweets
22 Jul
How to make a contribution to an Open-Source Project.

If you are new to this, it may all seem a bit intimidating!

Let me explain the process and give you some tips and best practices.

🧵👇
First of all - why even care about Open-Source?

🔹 Become a better developer
🔹 Become a great collaborator
🔹 Improve the software that you use
🔹 Grow a reputation
🔹 Attract recruiters.
...Just to name a few!

Now that we got that straight - let's get started 👇
🔹 Find a good project to contribute to (1/2)
You want to look for a project that accepts new contributors and is likely to review PRs.

You also want to find a place that has a healthy tone in the discussions and polite and grateful maintainers.
Read 18 tweets
20 Jul
Did you know that FeedHive is built using a fully serverless architecture with monthly server costs of <$10?

This is how we did it 🚀

Learn how to create a Full Stack Serverless Application using React and Amazon Web Services.

🧵👇
First of all - there are many different ways to compose a Serverless Stack application.

With that said, let's start.

Tech Stack:
🔹 DynamoDB
🔹 GraphQL
🔹 AWS Lambda
🔸React
🔸Static hosting in AWS S3

Tools:
🔵 AWS Amplify
🔵 Serverless
🔹 DynamoDB (1/3)

A managed database provided by AWS.

It supports both key-value entries and documents.
That means that a field can contain a single value, such as a string or a number, but can also contain a document, i.e. a JSON-object.
Read 22 tweets
19 Jul
Want to start a business?

Keep it simple!
Become a solopreneur and start on your own.

🔸 You can get started almost for free.
🔸 You don't need to quit your regular job.

Here are 5 ideas + strategies you can use to get started 🚀

🧵👇
⚠️ Disclaimer:
You're not gonna be rich overnight.
Building up a business requires hard work.

The good news is - it's probably easier than you think 😉

Keep reading 👇
If you're interested in this topic, be sure to check the video version of this thread as well. I go into much more details here 👇

Read 30 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(