
Show HN: Gitly.io – high performance Git service with a 10s installation time - alex-m
https://gitly.io
======
alex-m
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...](https://examples.gitly.io/java-spring-framework/top-
files/master/spring-core/src/main)

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(...](https://examples.gitly.io/rust-
alacritty/search?q=fn%20next\(%26mut%20self\)%20-%3E%20Option%3CSelf%3A%3AItem%3E%20%7B)

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 would
make Linus happy \- Search in commit history \- A way to organize a large
amount of repositories

Thanks for your time, looking forward to your feedback.

