Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Gitly.io – high performance Git service with a 10s installation time (gitly.io)
230 points by alex-m on March 8, 2017 | hide | past | favorite | 125 comments



It's so cool to see people focusing on web app performance. Everyone complains about it but no one follows up their complaints with action. That's a big plus and I will definitely keep my eye on this.

This is going to sound petty, but I think it's important: you might want to come up with a better name. "Gitly.io" is, like, three different regrettable startup naming fads in one.


Thanks for your feedback. Yeah, I'm not good with names. I'll most likely come up with something different.


Don't change your name. It doesn't matter and it's short. Good luck


Google was called "Backrub" before it was called Google[0] so a suboptimal name doesn't portend failure - focus on the product first! Nice work.

[0]: https://www.google.com/amp/s/amp.businessinsider.com/the-tru...


Seconded.


there is nothing wrong with the name, it's catchy and memorable ... and like Flickr and twttr you know.. it doesn't matter..

and always remember, if one is being 'critical' does not make them 'right' too. yep listen to it carefully, but do not assume they are right 'automatically'


I like the name, I'd keep it if I were you.


no issue with the name.. small and I can easily differentiate from other hosting services.


litgit - hella fast git


Yeah, I'd recommend it just to avoid confusion with other projects with a similar name. I was looking for more information on your project (before you had replied to some people) and some other uses.


It's short, and unique. Which means it has a brand associated with it. Using generic words, is worse than goofy "web2.0" cliches, in my opinion.


How about one of those:

GitAndGo.com Git4Work.com GitCrew.com GitTools.com GitGun.com Git4Me.com GitDuck.com

Edit: I'm not trying to sell you anything. Those domains are freely available.


Relavent username :)


Do you own these.. Or what?


All of them are freely available.


I'm sorry for littering this thread, but I wanted to ask Analemma_ a question and didn't know how else to communicate with him/her.

23 days ago, you made a comment: "Put down the Ayn Rand and go outside." in this thread: https://news.ycombinator.com/item?id=13645996

I've been reading about objectivism, and wanted to ask what you meant by this comment.

Again, really sorry to be off-topic, but the question is burning.


Um, okay.

In your comment, you said that CL keeping their product free instead of taking money to improve it was "selfish" in that it was (if I understood you correctly) withholding or stealing innovation from everyone else. I felt this position was ridiculous and could only have come about from reading too much Ayn Rand, of whom I am (to put it mildly) not a fan.

Mine was admittedly an unnecessary and kinda trollish comment, and I've been trying to make fewer of those. Don't take it too seriously. To HN's credit, nobody upvoted it.


Appreciate your response, and I'm happy you made the comment as it piqued my interest in the subject matter.

Could you help me understand what part of the stated position reminded you of Ayn Rand / objectivism? I'm struggling to make the exact connection.

Is it that ppl who read Ayn Rand tend to project a selfish motive on others?

Also, would love to read more on why you're not a fan of Ayn Rand if you have any links.

And, for the record, upon further inspection, my statement about CL was misleading. CL makes a lot of money, and profits could easily cover the cost of product development. I'm guessing their business philosophy just runs counter to these improvements.


There's way too much here to get into on an unrelated comment thread (it's a little unfair to the OP). Kinda wish HN had DM functionality right now...

My recommendation would be to write a blog post about the virtues of Objectivism, then submit it to HN. If people like it enough and it gets front-paged, I promise I'll be there in the comments and we can argue all you like ;)


Will that 10s install be anything like production-ready? As a sysadmin, one of my pet peeves is tools where the "install process" is "run this executable and it's a webserver," because for me to put a tool in a place where my teams rely on it I'm almost always looking at SSL termination, LDAP auth, not to mention putting it under systemd or something so that it'll get restarted if the host system does, and the fact that I'll inevitably be deploying via automation.

The takeaway is that I hope the easy install process won't only be easy in the absolute minimal case. Ideally I'd love to get RPM and DEB packages and example configuration snippets for a frontend web server. At the very minimum, distribute in a form that is amenable to deployment to Ansible/Puppet/etc (no 'setup wizard' please!) and placement behind a reverse proxy.


Honestly, from my sysadmin perspective, I don't give much of a damn about installation time, provided it's not absurd (e.g. picking a figure out of thin air 30 minutes?)

What I care about around install, is can I do it in a automatable fashion, including all configuration. I don't want to have to do anything by hand after the first exploration and evaluation work!


I must be a terrible sysadmin, because I have never in my life have deployed anything in under 30 minutes, unless I have already deployed several instances and have it scripted. If I can get something up and running [and actually doing what the tool is intended to do] in my infrastructure in a day's amount of work I call it huge success.


From the authors github, I presume its written in go. So its just going to be a binary with a config file. Thats great, and easy to deploy! I get your point, nothing is a 'production ready' deployment in 10 seconds. But, i think the author means it will 'just work' for most people. In reality, our version of production ready wouldnt take more than an our max to deploy that to ecs/kubernetes.


Correct :) It's written in Go.

And you are right about deployment.


Curious if this is a ground up implementation, or if you forked gitea or gogs and made improvements.


Good point.

It's definitely not going to be 10 seconds for a more serious installation you described. But it will be faster than anything else. You download the binary or compile it yourself, set the path to your repositories, and you are done. No wizards!

I haven't thought about RPM and DEB packages yet, but they will be definitely supported if that's what people want.


These days I won't run anything more complex than an executable that isn't in a docker container. I think that a lot of people feel this way too.

It's just so much easier in the end.


You may want to check with the Software Freedom Conservancy wrt trademark:

"In addition, you may not use any of the Marks as a syllable in a new word or as part of a portmanteau (e.g., "Gitalicious", "Gitpedia") used as a mark for a third-party product or service without Conservancy's written permission. For the avoidance of doubt, this provision applies even to third-party marks that use the Marks as a syllable or as part of a portmanteau to refer to a product or service's use of Git code."

https://git-scm.com/trademark https://public-inbox.org/git/20170202022655.2jwvudhvo4hmueaw...


Interesting. Does this mean that the popular existing sites (GitHub, GitLab, etc) did get permission? Or is this a looming issue?


Read the 2nd link ;)


Thanks, I will.


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 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.


Hey! I think this is a fantastic tool. There's only one thing:

CHARGE MORE!

This is easily worth $5 per month per user. It's Github, but lean and fast. There are very few people who would sign up at $1 per month who wouldn't sign up at $5 per month.

Also- if you're trying to make this into a business, self-hosting is something that you can get companies to pay for. Github Enterprise pricing is [obscene](https://enterprise.github.com/features#pricing) compared to the pricing for hosted, and companies pay it.

I think this is fantastic- great work.


As someone that has worked with github enterprise, I agree. Adding a self host option, and external authentication options (LDAP/AD) are needed in a self hosted product.


Thanks for your feedback. I'm glad you like it.

The pricing is not final, but I do want to keep it simple and affordable.


Let me know if you're interested in talking about pricing (probably once the work from launching settles down)- I'm working on a pricing analytics service and would love to get your thoughts/feedback.


> There are no JS libraries used (in fact, there's barely any JS at all)

Holy shit that's refreshing! I was planning on moving from GitLab to cgit + an issue tracker/wiki, but I'll give Gitly a closer look. The speed of the examples is impressive.


Thank you. I really needed that, for self-hosting. Gitlab's UX is difficult, Bitbucket Server is expensive.

It seems you're targeting many features that are way beyond an MVP. Won't you suffer from exhaustion at some point? For example, why not leveraging or extending Git's embedded GitDaemon server features?

Note that I wouldn't mind if it were a paid product, as long as it's open-source.


Yes, there are a lot of features planned, but not all of them will be released before the MVP.

> Note that I wouldn't mind if it were a paid product, as long as it's open-source.

That's what it's going to be.


Will automated repo-mirroring be in your roadmap? I've got a project I'd love to test-drive gitly on, but I know some collaborators will be hesitant to leave gitlab/github


Absolutely!

It's really easy to implement. Expect it before Saturday.


Awesome. Count me in!


Looks nice. My vague impression of the alternatives out there: GitLab: <s>Python</s>Ruby ergo slow, hard to set up; Gogs: haven't tried but I remember they directly ripped off GitHub's UI (visually speaking) at least in the initial version, kind of shady; everything else: bad UI. So it's great to see new competitors.

Since you say it's open source, where is the source code? I was curious what the implementation looked like but didn't see a link on the website. You should add one. Or are you waiting until April 1 to release the source?

Edit: FWIW, I'm not sure "Gitly" is the best name. I'd expect something called that to be at git.ly, analogous to bit.ly. But that's just my impression.


I think Gitlab is mostly Ruby.


It's pretty much all Ruby, AFAIK.


The performance intensive parts of GitLab are written in Go, for example https://gitlab.com/gitlab-org/gitlab-workhorse/

We're working on moving the git commands to https://gitlab.com/gitlab-org/gitaly/ this will help to improve cloning speeds.

BTW The people at Booking have a lot of expertise in scaling Git. I'm sure there will be a lot Gitly there we can learn from.


I misremembered.


By the way, which mature web language is fast these days? Go is not quite there in terms of maturity, and everything else is "slow" (maybe the Microsoft stack is fast?), but I'm a web developer by trade and none of my views have been CPU-bound in... ever.


Common Lisp :)


Go is certainly there.


Go's ecosystem is as large as Python's/Ruby's/Node's? I very much doubt that.


That's great, I think this can really fill a niche.

Thanks. Looking forward to the self-hosted release. Sounds like it won't be open source, but if it's gratis or reasonably affordable I'll probably get it.


Thanks! It will be open source. The source will be released within a month.


Impressive performance - what was this built with?


Thanks. Go.


I kept hoping Gogs (or Gittea) would really take off - I love the single-binary Go philosophy. This looks fantastic. I'm afraid the killer deciding feature is going to be the hardest to implement: good code reviews. Github has recently (finally) upped their game, and added (some of) the stuff that was lacking: sending all comments at the end, rather than live as you finish typing them, tracking comments properly when new commits are pushed in response to code reviews, letting you see diffs between such in-progress pull requests, etc. Basically the stuff that Reviewable.io adds (which is basically a list of things that Google's internal tool does that Github doesn't.) :-)

Best of luck!


Thanks for this! Code review is really important, I'm going to try to make it the best in the industry.


No way to reset/change the password?


It will be implemented this week. This a very, very early release.


It is so refreshing to see slim, fast websites. Only the minimal JS is used. Even though I don't have many repositories, I'll certainly consider supporting gitly.

Please remain true to your current vision.

Just a minor point: although the website uses so little JS, the Signup form is broken without it.

EDIT: by broken I mean it returns a JSON instead of an HTML page or HTTP redirect.


Thank you! I knew I'm not the only one with this vision. It will always stay this way.

The form should work fine, I'm getting registrations, but I'll check it. What browser are you using?


It's Chrome 56.0.2924.87 on macOS, but the issue is that the form point to an API endpoint, so without Javascript I can only see the JSON response instead of being redirected to the protected page.


Ah, right. If JavaScript is disabled, you are going to get the JSON response.

I will definitely make it work without JavaScript.

Thanks for reporting.


I like the sub-domain approach. It's fast and nice enough. I'd focus on UI consistency; pages have different navigation elements. Issues trello-style board is cool but let down by over-simple styling.

FYI the default avatar image (https://errant.gitly.io/img/avatars/default.png) seems to be missing? On the issues page, JQuery UI seems to be missing too.

If you keep working on it I'll probably keep using it :)


Yeah, I really wanted to have unique subdomains for each user.

The design will be improved. This is a very, very early release. I'm also not a great designer, so hopefully I'll get some help there :)

The entire issues section will see a huge update in 2 days.


What's the actual benefit of a subdomain for each user?


Hopefully "user" really means "company" rather than individual user. Otherwise copy/pasting URLs between colleagues won't be much fun.


I'm sure it does. But I still can't see the benefit of a subdomain rather than a subdirectory.


It could be easier for load balancing or if you want to shard. You could do it at the DNS level at that point, without needing to strip the TLS bits, decode the HTTP request and go from there.

For the end user though I can't see much of a benefit of a subdomain over a URL path, or the other way around. I don't think it matters much but the author might have bigger plans in which having the subdomain could be easier.


I hope it will be still as simple as it is now.


I love the simplicity and speed of this. Its endearing. No fuss. Reminds me of Gogs, easy to setup, easy to use. Great job on that. Of course its early days but I do hope you make the right trade offs and retain the simplicity.

Those with the complex use cases should take the technical debt rather than now in a lot of software where every possible complex case is accommodated and the complexity is offloaded to all users.

And I hope you give credit to git for the fantastic piece of engineering it is. So many projects use Git as the central piece yet push it into the background.


Thanks. I'll do my best to keep it simple and fast.

I absolutely love git. It's definitely going to be the central piece of the software.


I like that code is shown with a proportional font. I've been coding like that for a couple of years. It took a week to adapt but code is far easier to read now. After all we're using proportional fonts for nearly everything, why not code?

Compare proportional on Gitly to fixed on GitHub, same code.

https://tensorflow.gitly.io/tensorflow/blob/master/tensorflo...

https://github.com/tensorflow/tensorflow/blob/master/tensorf...

However it's not what most people see in their editors. I wonder if anybody noticed or complained about it.

Two things that can go wrong with proportional code:

* Alignments like this

    a =    1
    long = 2
you can't do that unless your editor is very cooperative. That could make sharing code with coworkers difficult.

* Sans serif fonts don't distinguish between I and l and I didn't find a proportional serif font that does look good enough for code.


> Sans serif fonts don't distinguish between I and l and I didn't find a proportional serif font that does look good enough for code.

You might try Trebuchet MS. I've been using it for a few years now and find it to be an almost ideal programming font. It does have easily distinguished Il| and 0Oo characters, and it looks really good in the somewhat large font sizes I prefer on a high-DPI display. The only thing I don't like about Trebuchet MS is it has a really weak tilde (~). Sometime I will have to play with a font editor and see if I can swap in a better tilde.

Regarding column alignment, the solution is "don't do that." :-) I banished column alignment from my code a long time ago and haven't regretted it at all.

Of course, all that said, when viewing other people's code it can be useful to be able to view it in a monospaced font.


I suspect this may be an unintential CSS error. On my Windows box, the gitly source renders in Courier which is very much non-proportional.


Hi,

The default font is not proportional, BUT you will be able to set it to whatever you like. There will also be an option to disable syntax highlighting.

Could you tell me what browser you are using?


from css/main.scss `$monoFont: 'Courier New', Monaco;`

I think it's caused be the missing fallback `monospace` in that list.


Firefox Android.

I checked with Chrome and Opera and it's monospace there.

Edit: It's monospace in Firefox desktop too (Linux).


> Self-hosting will be available on April 1, 2017.

Really, or is that just an April Fool's joke?


:)

I didn't even realize what date I chose.

No, it's not a joke.


This looks promising. Can't wait to check out the source. How exactly do you plan on monetizing while allowing unlimited free private repos?

Also, for anyone looking for a good self-hosted git service like this, check out the existing open source project GOGS https://gogs.io/


Hosting on gitly.io for $1/user/month (if more than 5 users).

For self-hosting maybe I'll go the GitLab route, which I don't really like. I think the product should have the same set of features for all customers. Maybe I'll just go for paid extended support. We'll see.


I've thought about this in the past, and I would do something where features are delayed 6 months to a year to the community version.


i have generally seen that a piece of software that is built for self-deployment is not optimized for scalability. in fact, optimizing for scalability screws around with ease of deployment.

It will be interesting to see you pull this off if you are indeed thinking of making your software dual purpose - self deploy as well run a scaleable/fault-tolerant hosting company.


You are right, these are two very different tasks. That's what makes solving this fun and challenging. I had it in mind when I was designing the architecture of gitly. In the end it really is going to be easily deployed and scalable.


I would recommend to use gitea.io it's a gogs fork that far a better open-source project, that gogs maintainer weren't too active at some point


I've been following both projects with quite some interest and it looks like gogs has become much more active, now a days. Here's a quick break down on both projects:

3 months of commits activity:

https://gitsense.com/gogs-gitea-analysis/commits-3months.png

6 months of commits activity that only unique commits between gitea and gogs.

https://gitsense.com/gogs-gitea-analysis/commits-6months-uni...

September was when things started to slowly deviate, between the two projects, and November was when gitea really went off on their own. At around January, gogs started to pick up steam and has continued on an upward trajectory ever since.

This is what it looks like, if you want to merge gitea, back to gogs.

https://gitsense.com/gogs-gitea-analysis/merge-gitea-to-gogs...

You are looking at 3,201 changes that needs to be resolved.

This is what moving gogs to gitea looks like.

https://gitsense.com/gogs-gitea-analysis/merge-gogs-to-gitea...

Going this way, you'll only have to resolve 1,244 changes.

These are the contributors to gogs, within the last 3 months.

https://gitsense.com/gogs-gitea-analysis/gogs-contributors-3...

Contributions to gitea, within the last 3 months.

https://gitsense.com/gogs-gitea-analysis/gitea-contributors-...

The contributions information, better highlights why gitea forked, since for gogs, virtually all changes, goes through u@gogs.io


Just so you know, your email for verifying an account signup comes through with a pretty high spam score (for me at least.) The first email was rated 4.5 and the second 5.9 (I signed up two accounts: personal and business.)

I use Fastmail as my provider.


Thanks for reporting! I'm using SendGrid, I'll make sure it's fixed.


Try postmark instead. You'll get a good idea of the user interaction with your transaction mails.


Couldn't find a public test-repo on the front page. Anyone wanting a test drive without signup, here you go: https://niko.gitly.io/ruby-shout

I love the speed and the (repo internal) search. Looking forward to the announced missing features.

Note: the "Add Collaborators" link works for anonymous users. Sending the form then fails with a JS error.

Is there a plan for a global repo search?


Good point, I'll add a a link to a test repo to the front page.

I'll fix the "Add Collaborators" link, thanks for reporting.

> Is there a plan for a global repo search?

Yes! I hope to implement that before the end of April.


Always nice to see competition in this space. Keeps people on there toes though it's a steep hill to climb feature wise to bring out something as polished as the alternatives.

> Self-host in 10 seconds

> You can run gitly on your own server. It requires no installation or maintenance. You don't even need a webserver or a database. (Self-hosting will be available on April 1, 2017.)

Maybe April fools day isn't the best choice for a future release date? Though I guess it worked for Gmail...


Maybe :) You are not the first person to note that.


Nice project.

IIRC, doesn't github have some trademarks on their designs or something? If so, please be weary of this (and their lawyers) OP


Very nice. It really took me just 10s seconds to sign up and clone a repo. I believe this kind of easy of setup should be much more common - across many domains and languages.

That said, details will matter in the longer run. The markdown and code rendering on github has gotten such a large amount of attention over the years, that it's hard to compete.


Thanks for signing up! I'm really passionate about simplicity, and gitly is always going to stay this way.


Me too. It's just hard to achieve. Are there any projects or books that inspire you regarding simplicity in design and implementation?


The Go language. I can't really think of anything else right now.

I was inspired by GitHub of course, I really liked its design when it came out (it was a breath of fresh air after SourceForge and others). I tried to make it even simpler and more efficient.


Looks cool. There seemt to be some styling issues with fenced blocks in readmes, e.g. I cloned this repo: https://charlieegan3.gitly.io/personal-website


Thanks for reporting! Yeah, markdown needs a lot of work. It will be fixed this week.


Wow, the design is so "inspired" by GitHub… the language percentage thing especially


What's the difference with gogs/gitea or is it another fork? Is this open source?


Gitly is not related to gogs. It is going to be more stable and easy to use, work better with larger projects, and have a set of unique features.

Yes, it's going to be open source.


Looks great. May I ask, how can you provide free self-hosting (even if it's free only for <5 users)?

edit: I didn't receive email confirmation yet, after signing up (15 minutes ago). HN server effect?


Are you asking about how I'm going to be able to offer it for free for small projects?

The hardware is pretty cheap, plus there are special Compute Engine offers for startups.


Check your junk mail folder, that's where my confirmation email ended up.


Thanks.

Could be a sendgrid issue, or marked as spam.


What's it written in?


Go.


It's there a way to try it out without signing up? The first thing I wanted to do was test your claim for speediness. There is a road block in front of doing that.


You can check out one of the test repos.

In order to clone a repo, you have to sign up, sorry. That's a really fast process, but it requires email verification.

I'll add a "sign in with GitHub" button today to speed that up.


Why is it that the C++ code is pink in one screenshot, but blue in another? And Python is blue in one screenshot and pink in another?

Looks like a great project! Thanks for sharing!


Good question. I'm not using unique colors for languages. The main language is always blue, the second one is always purple etc.

Thanks!


That it should work without javascript is very nice. :)

The "at least four letters for username" limit is not. Why is this a restriction?


You are right, I will change it to two letters.


Very cool. I've been thinking about something like that for a long time.

I also don't mind paid solution if it'll be open source.


Thanks.

> I also don't mind paid solution if it'll be open source.

That's exactly what it's going to be.


Great start! Looks good works well. Can't wait to see more.


This looks great. Definitely interested in the self hosted option.


Thanks! Glad you liked it.


This looks very nice indeed and the pricing is not bad either.


Can you clone a bitbucket repo, or only GitHub?


You can clone anything.


I want it and I want it now! :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: