How did I promote my open source project to get a first star ⭐️?
Tags: github, opensource, rust
Published: 2022-11-28 05:47:35

Building in public has gained traction in recent years. Instead of building on somebody's dream and earn money, digital nomads start inclining to build on their own dream and make revenue. I am also really into working publicly and contributing to open source projects. Hence, I decided to work on my own project to learn more how this community drives.

## What is the project I am working on? 
The open source project I mention is [SolomonDB: A distributed Gremlin-compatible graph database written in Rust 🦀](https://github.com/nomadiz/solomon-db). 

![SolomonDB Github Banner](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ubguvcsjdbpu7ixnl2vk.png)

**SolomonDB** is briefly a graph database that supports Gremlin as a primary query language. The key point of this article is about how did I promote my project SolomonDB to get a first star from stranger on Github. The current status of SolomonDB is that I already get around **4 stars** ⭐️ under a week from strange Github users. 

## How did I get my first star? 
> Each project can have different approach to gain traction. This is shared based on my personal experience so it might not be suitable to your project but hope it will be helpful.

![SolomonDB Github Star Chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/etw58x0twlhe24s2dplz.png)

To me, getting a first step of everything is important, as it shows you are having a progress. For example, building a startup, first step would be first customer. In this case, my very first goal of working on an open source project has been accomplished, getting the first star.

SEO (Search Engine Optimization) for Github repository is quite bad in a first place actually. Not until your project has around couple of hundreds star, it won't be found on Google. So the strategy would be

### 1. Create a minimal website of your repository

A minimal website can be any kind of website: a landing page, a documentation page or a progress update page. This web page will enhance the SEO of your Github repository as you can give user more information about the repository inside a page which links to your Github repo. In my case, I design a documentation page using Rust `mdboook` and `Github Pages`. My page is easily deployed and edited just by using `Github Actions` and `Markdown` file. If your project is a Rust app, you can try the stack, it is quite easy to use.

Link to [SolomonDB Documentation](https://nomadiz.github.io/solomon-db/)

![SolomonDB Documentaiton](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g6fmsm34u9ivkf94ev34.png)

### 2. Write a good README file

Imagine a README is a frontend of your project. If you are a web designer, you definitely understand that a backend only does not make a project works. A README in this case can be considered in a same way. README file gives a clear introduction on what is the project offers and how can user use it for their own purpose. A good README file will bring a good impression to the user that could land you a first Github star easily.

![SolomonDB README file](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mtoz7osajsyuxdb3me4c.png)


### 3. Update the CHANGELOG frequently

A CHANGELOG is a diary of your project. It reports an update of the project daily, weekly or monthly. The purpose of writing a CHANGELOG is to keep the user up-to-date with changes made to the repo. CHANGELOG is also very necessary if you want to onboard a new contributor smoothly to the open source project. This is an example of one CHANGELOG.

![SolomonDB Changelog](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z8jcaxgym5aw7azses4l.png)

### 4. Maximize the benefits of social networking

As a programmer, I can confirm that engineering is usually overvalued and marketing is undervalued in tech community. Normal user or even other developers won't understand you 1000 lines of code as they don't want to waste their time on something that does not bring them any benefit in a first place. 

On the other hand, choosing a correct social network to build your project brand gains you a lot of expansion in social branding as well. The main social network I choose to deliver my product update is Twitter.

![Twitter Statistics](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pd71e3gqcctuvetjwv6h.png)

With SolomonDB, I try to keep have daily tweet about a product with hashtag and tagging to bring it to more targeted user on the platform. 

Choosing a right hashtag and right accounts to tag is a strategy. To build your account from scratch is a very challenging task. However, when you reach a certain level, the connection will be automatically expanded due to the power of social network.

### 5. Active in tech community

Every technology has its own tech community or tech channel (Discord or Reddit). It is fulfilled with people who interested in the technology and its ecosystem. Therefore, announcing your project in those places would improve your project position. In my case, as the main technology I use to build SolomonDB is Rust, I post an announcement in **Rust User Forum**. 

![SolomonDB Announcement](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fbphi28r6g8r7e7sq5s0.png)

## Keep building and connecting

Those above approaches won't bring you an overnight success. It claims to be a long-term journey and persistence is a key. Hence, keep building and connecting with people on social media incrementally. Try to make the loop of feedback and development keeps running and you will see the result.

![Github contribution chart](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kaq978aiut170quy89cz.png)

Thank you for reading until now. Hope this article is beneficial to your open source project. Even though my project SolomonDB is not a successful open source project yet, it is in a beginning and I believe persistence will prevail.

If you are interested with my article. 
- Please follow my Twitter: https://twitter.com/chasechung111
- Give my project a star: https://github.com/nomadiz/solomon-db