1 comment

[ 0.25 ms ] story [ 7.2 ms ] thread
Hi,

Gitly is my side project I've been working on for a couple of months. It is an open source repository manager with a focus on performance, ease of use, and productivity (especially for larger projects).

It's still in an early alpha stage, a lot of features are missing. The source code and the ability to self-host will be available within a month.

There's GitHub, Bitbucket, GitLab, gogs. Why create another solution? Gitly has been designed to be very fast and ridiculously easy to maintain. It is much faster than all of the above. It also offers a couple of unique features.

You can self-host gitly in 10 seconds. It has no dependencies, and doesn't require a database or a web server. Updates are automatic and seamless. It's easier to set up than gitweb! At the same time gitly is going to have the same features GitHub/GitLab offer, and even more.

How fast is gitly? Every single page takes less than 0.5s to load, no matter how big the project is. There are no JS libraries used (in fact, there's barely any JS at all), so the client side performance is great.

You can host your repositories on gitly.io, and it offers the same high performance. Cloning the entire Spring framework on gitly.io takes 11 seconds. On GitLab.com it took 7 minutes and 50 seconds. Of course GitLab.com is massive. However, the way gitly was built, performance will always be this good: it can be scaled horizontally very easily. And if you host it locally, the cheapest 256 MB instance should be enough for most users.

Gitly works great with large projects. I successfully tested it with a 10 year old repository with 4 million lines of code. Bitbucket took almost an hour to cache. Gogs crashed, and I didn't manage to install GitLab to test it locally after trying for 2 hours.

Many of the unique features are to improve productivity and help understand the code base better, which is very useful for large projects.

One of them is called "top files". It shows the largest files in any directory of the repository on one page with detailed language stats. Here's how it looks like for the Spring framework:

https://examples.gitly.io/java-spring-framework/top-files/ma...

Another unique feature is language stats. Gitly displays detailed language stats for every single directory. This can give a better picture of the structure of the project.

One of my favorite features is the search. Unlike all other search engines, the one in gitly will search exactly what you asked for: character by character.

For example, if you are a Rust developer, and you need to search for the following declaration:

fn next(&mut self) -> Option<Self::Item> {

You type it, and you only get the results you are interested in:

https://examples.gitly.io/rust-alacritty/search?q=fn%20next(...

Gitly also has discussions, which is like a simple forum where you can discuss the project, ask questions and so on. Mailing lists will be integrated as well.

Like most other solutions, gitly has a Trello-like issues board, and you can import all your Trello boards.

It's still an alpha. There are a couple of rough edges (e.g. markdown support is not great). Here are the missing critical features that will be implemented within the next two weeks:

- Forking, pull requests, code review. - User profile (password change, SSH keys etc) - SSH support (only HTTPS for now, making SSH authorization secure takes time)

Some of the upcoming functionality I'm excited about: - Go to definition support for most popular languages - Issues as part of the repository, so that it's possible to manage them locally - Pull request interface that...