220 comments

[ 3.2 ms ] story [ 255 ms ] thread
this piques my interest. i've been looking for a set of project hosting and management tools which are deeply integrated with each other and with very minimal UIs designed as an extension of the tool's inherent abstractions, rather than obscuring the tool behind "simple" UI abstractions which ultimately force opinionated workflows.

the only thing that's missing for this to be useful to me is code review. re: the UI, gerrit has always been my favorite code review platform because it embraces git's abstractions.

drew: do you have any plans for adding a code review service?

Hiya! I do have plans on adding a code review service, driven by email on lists.sr.ht in a similar style to how it's done in other mailing list driven projects. Here's an example of how this works:

https://lists.sr.ht/~emersion/mrsh-dev/%3C20180916165820.144...

My plan is to parse these discussions using this library my friend made:

https://git.sr.ht/~emersion/python-emailthreads

Then provide a UI similar to Gerrit, but driven by emails underneath.

This is amazing! Just what I was looking for! I love this project, thanks a lot for this!!
I'm glad that you like it! Please don't hesitate to send me feedback.
I like look of it too, but I'm not sure how to pronounce the name. "Shirt"? "Shart"?
As mentioned in the article, I pronounce it "sir hat", but you can pronounce it any way you like.
This sounds too good to be true. Who's funding this project?
Hi, I made sr.ht. The users are funding it! There's some information about this here:

https://man.sr.ht/billing-faq.md

What's the pricing structure going to be, ie. how much should I expect to pay for hosting a dozen of small git repos? I can't access the billing page without an account.

Thanks for your work for the FLOSS community, btw. I've got one machine running Sway and I might start using sr.ht.

You can choose any of $2/mo, $5/mo, or $10/mo, depending on your financial situation and investment in sr.ht. All plans have access to all features. Here's a screenshot of the billing page:

https://sr.ht/rYFF.png

I'll capture the information here in the billing FAQ and make it easier to get to the billing FAQ without signing up later tonight.

Thanks for using sway :)

Thanks for providing this and thanks for allowing us to pay for an account. I hope that sr.ht becomes sustainable, it's great to have an alternative that is focused on open source developers.
Love the idea that of contributors being eligible for free access!
I see for now there's only package repositories for Alpine and Arch (https://man.sr.ht/packages.md), any plans to expand this list any time soon?

(Fantastic job by the way, as other commenters are pointing out this is the type of project hosting suite that I've been looking for)

I do intend to expand this list, probably with at least Debian packages. This isn't a high priority at the moment, though, I have limited bandwidth for sr.ht until it's profitable and have to focus on other features. This is definitely an area where an interested Debian user could contribute packages, though, especially if nicely integrated with builds.sr.ht like the other packages are.
This has all the hallmarks of high-quality, well-designed software. I will definitely be checking it out. Thanks for all the work you've put into it!
+1. This is the kind of software that makes me genuinely happy.
Will we be able to selfhost it on our own infra?
I didn't happen to see install instructions for dispatch on that page. Is that an oversight or is dispatch a component of builds.sr.ht?
dispatch is the newest sr.ht service and docs are scant. They'll come eventually... but it's pretty similar to the rest of sr.ht, you could probably figure it out if you gave it a shot.
Thank you so much for open sourcing the whole thing!
I wouldn't have it any other way :)
(comment deleted)
Ya, I believe so. > You’re welcome to install it on your own hardware, and detailed instructions are available for those who want to do so.
Beware the AGPL on some components, though. You may want not to make a business whose business model revolves around adding features to sr.ht.
I'd be happy if my business contributes to a foss software and builds on top of it. I'm all against closed source.
I adore the aesthetic! Absolutely smooth web design; top notch work Drew.

Just registered and hope to familiarize myself with everything. This is one of the few "Show HN" projects I've felt compelled to actually try. Heck, I'm so charmed by it I want to contribute.

What a lovely Thursday morning discovery.

Agree. Simple and not over-engineered.
>not over-engineered

Always keep in mind that many people have an interest in ensuring their own job remains relevant and necessary. How else can you explain e.g. google's constant UI changes? Designer's keeping themselves busy (even though there are no real reasons for the changes)!

Just because we know why it happens doesn't mean we can't complain if we think that "why" is stupid :)
That must explain the new GMail design.
Thank you for your kind words! I'm happy that you like it.
It's ok but it should really be centred at least.
> On top of that, sr.ht is one of the most lightweight websites on the internet, with the average page weighing less than 10 KiB, with no tracking and no JavaScript

At the age of Spectre/Meltdown, it is no longer safe to leave JavaScript enabled, so thank you for this.

Javascript hardly needs help from Spectre/Meltdown to be a security threat. It has never been safe to allow Javascript. A reasonable compromise is to use a Javascript blocker that lets you white-list domains.
How does this compare to Trac, which is also a 100% free, open source "software forge" (also built on Python)?
Without having used sr.ht yet I'd say that it's most likely less of a pain to use than Trac. Also Tract doesn't have any build capabilities iirc?
There are a bunch of CI plugins and bots for Trac, and part of the point of sr.ht is that it's modular, too.
One immediate difference is that sr.ht has a publicly-hosted version; I'm having trouble finding that for Trac.

Trac is also not JS-free, so for those who prefer to not rely on arbitrary Turing-complete code running locally without explicit permission, sr.ht has an edge there.

That said, Trac feels a lot more polished (unsurprisingly, given that it has a significant headstart in terms of development resource and time).

Right, Trac has an extreme head start; it was, before Github, practically the de facto standard answer to this "software forge" problem. But it also continues to work just great, and has a pretty decent ecosystem.
Looks great, nice work! Registered my account, bill_barnhill.
Is the old file hosting service that was once on sr.ht still accessible to people that had an account?
Yes, but it will eventually only be accessible via the old API.
I love this, and wish it well.

I currently host my personal repositories on GitLab, as I see the monoculture that has developed around GitHub to be dangerous for the community in the long term. I went ahead and created an account on sr.ht, and subscribed for the $20 / year plan. Whether or not I end up using the service (though I think I will), I'm happy to spend $20 to support this work.

One note - the billing plans seem to be recurring right now. If you could offer an option to make a one-time payment, that would be much appreciated. If anyone else is interested in subscribing to support the project but doesn't want a recurring charge on their card, you can go to https://meta.sr.ht/billing and "cancel", which will turn off autorenewal but leave your account active for the term for which you've paid.

For the sake of sustainability, I want to discourage people from using one-time payments. For the time being charge -> cancel manually is the preferred way to do this.

Thanks for your support!

That is understandable, as long as it is not difficult to find the cancellation button.

Gonna go and subscribe as well, probably. Looks quite promising.

Just signed up. I like the old fashioned user URL, reminds me the age of public_html

https://lists.sr.ht/~ontouchstart

BTW, please add a nice 404 so people won't see that you're running nginx/1.14.0 :-)

https://sr.ht/~ontouchstart

Following link listed on the man page https://man.sr.ht

https://man.sr.ht/root

also gives a 404, but in a little better format. :)

That's a git clone URL, not a web-facing URL :)
I have not tried to clone it myself. But if it is not a web-facing URL, you should list it in clear CLI command and remove the <a> tag. People will click if you make it clickable.
Hmm i made a golang project to test https://git.sr.ht/~ata/demo/tree/master/main.go and first thing I noticed was that ~ in my package name. I wonder if that’s valid golang?
Golang doesn’t have a problem with it, but I would have to rename src/git.sr.ht/ata src/git.sr.ht/~ata a ~ in the filename which linux doesn’t like
I mean, you can do it, it’ll work but looks weird.
The only characters not allowed in a filename on Linux are 0x00 (the null byte) and '/'. It's perfectly valid to have '~' in it.

You may be confused because your shell expands it to the value of $HOME -- which you can prevent by putting it inside single quotes.

    aaron@aspire5742:~$ echo hi > 'foo~bar.txt'
    aaron@aspire5742:~$ ls -l *.txt
    -rw-r--r-- 1 aaron aaron 3 Nov 16 03:20 foo~bar.txt
    aaron@aspire5742:~$ cat 'foo~bar.txt' 
    hi
    aaron@aspire5742:~$
> BTW, please add a nice 404 so people won't see that you're running nginx/1.14.0 :-)

Actually simply adding a custom 404 page won't hide the webserver/version, as it is also sent along the HTTP response headers.

For nginx specifically, one can use the `server_tokens off;` directive, which hides the version (but not the webserver). Brings back memories of when I used to recompile the webserver to remove this header :)

Of course for UX a custom 404 page is great. Congratulations, Sir_Cmpwn, this is just awesome and I'll soon be subscribing.

I love that you are able to support FreeBSD but Travis CI couldn't even be bothered. Is there support for Windows as well?
No, for the time being I'm only adding free (as in freedom) operating systems. In the future you'll be able to upload custom build images.
Congrats on the milestone. This is a huge boon to the open source community. I love the pricing model.

Are there any plans or ideas for a migration path from GitHub to sir.ht? I would imagine that if there was a way to transfer issues and discussions it would encourage more users to make the switch.

Here's one data point for you: zig programming language. Influencing factors:

* If we had syntax highlighting in the file browser, that would be a win over GitHub, which insists that there be "hundreds of GitHub repositories" before accepting a syntax highlighting pull request for a new language. I could imagine it would be reasonable to support "repository-local" highlighting configuration.

* Transferring existing content as mentioned above. It would be unwise for us to give up all the issues and discussion.

* The fact that the build service supports FreeBSD is already a win. However, to switch from Azure DevOps we would lose Windows builds. Is that ruled out due to the open source nature of sr.ht, or is that planned? Related, it would be attractive if sir.ht offered more architectures, e.g. i386, ARM, RISC-V (I believe this was mentioned but I could not find it in the docs)

>* If we had syntax highlighting in the file browser, that would be a win over GitHub, which insists that there be "hundreds of GitHub repositories" before accepting a syntax highlighting pull request for a new language. I could imagine it would be reasonable to support "repository-local" highlighting configuration.

We use pygments, so patches to pygments would make it to sr.ht's syntax highlighting.

>* Transferring existing content as mentioned above. It would be unwise for us to give up all the issues and discussion.

Planned. Also planned to let you sync between both.

>* The fact that the build service supports FreeBSD is already a win. However, to switch from Azure DevOps we would lose Windows builds. Is that ruled out due to the open source nature of sr.ht, or is that planned? Related, it would be attractive if sir.ht offered more architectures, e.g. i386, ARM, RISC-V (I believe this was mentioned but I could not find it in the docs)

Eventually users will be able to add custom base images, which will permit the use of Windows (if you can get an sshd running there, at least). As for multi-arch, experimental support for aarch64 is there, and by the end of the year I expect to have RISC-V builds backed by HiFive hardware.

> We use pygments, so patches to pygments would make it to sr.ht's syntax highlighting.

I really appreciate this response! That encourages improvements that benefit everyone, not just sr.ht users.

> Eventually users will be able to add custom base images, which will permit the use of Windows (if you can get an sshd running there, at least).

msys2 has an sshd. I use it on a Windows VM runner with Gitlab CI. It's not easy to set up but it can be done.

Nonetheless, it'd be nice to have some way of plugging in more of this kind of functionality at the instance, user, and possibly repo levels. Obviously syntax highlighting is one use case, but some others:

- Sophisticated cross-referencing tools like Kythe and SourceGraph

- Linking stdlib functions and imports to public documentation, like cppreference.com, python.org, etc.

- Linking ticket/user names to my non-srht bug tracking tool (especially JIRA, but there are lots of possibilities).

- Linking to public or self-hosted generated API docs (doxygen, swagger, sphinx, etc).

- Linking to info pages generated from metadata-type files such a PKG-INFO (for example containing dependency tree information).

- Propagating back information gathered from build or test runs, for example highlighting areas missing test coverage, or which are "hot" from a perf point of view.

Only some of these would be appropriate to go into the mainline version of the tool, which is why it's important to support plugging in these capabilities for the users which need/want them.

I think a lot of what you're looking for is going to be possible through generic interfaces I plan on writing. It's not going to take the shape of "you can write code which executes on sr.ht's servers just for your repo in particular", but rather things like "you can POST to an API endpoint on git.sr.ht to annotate the sources in your tree for a specific commit sha with links to pydoc et al". builds.sr.ht would then be the place where you could run arbitrary code to automate this.
Sourcegraph CEO here. We would love to help integrate Sourcegraph into sr.ht for code intelligence (hovers, go-to-definition, etc.). We’re kicking this off with GitLab next month.
This is impressive. The level of thinking that you’ve put into this project is totally amazing. Kudos.
I noticed that there's no link from, for example, https://todo.sr.ht/~sircmpwn/man.sr.ht to https://git.sr.ht/~sircmpwn/man.sr.ht - is there any way to link a project's pages together across multiple sr.ht services? Otherwise the navigation isn't so friendly for someone just discovering a project.
Yeah, improving this is a pre-alpha todo item.
It would be nice to be able to add custom links to whatever form this navigation takes, also (for example, if a project uses a different solution for code review/patch submission).
Aye, this is planned. Thanks for the feedback!
Wow. I've only glimpsed at some parts, but I'm really liking what I'm seeing! I also love the look and feel.

I look forward to doing deep dive the next few days and looking to contribute anyway I can.

Very impressive! The https://builds.sr.ht service looks especially interesting - any chance there's a way to use it without fully moving over to sr.ht? It would be nice to be able to try out the build system without having to fully commit to moving to to sr.ht, especially for projects with a large history on other platforms.

I went ahead and registered and signed up for a plan. If this is the kind of project you like to see, I encourage you to consider signing up to contribute.

Feature request: I'd love to see U2F support added.

Thanks for signing up!

>any chance there's a way to use it without fully moving over to sr.ht?

Yep. I currently use builds.sr.ht in combination with GitHub, for example, to build sway & wlroots:

https://github.com/swaywm/wlroots/pull/1377

You can wire this up at https://dispatch.sr.ht

The API is also pretty simple: https://man.sr.ht/builds.sr.ht/api.md

postmarketOS uses the API, for example, in combination with some custom tooling around their package manager.

>Feature request: I'd love to see U2F support added.

https://todo.sr.ht/~sircmpwn/meta.sr.ht/62

This has been discussed before, I would accept a patch but can't work on it myself until my browser (qutebrowser) grows U2F support.

Hi Drew -- awesome job! I want to migrate my projects there. Do you plan on supporting static sites a la GitHub pages?
Yep! This is planned and partially working through builds.sr.ht. I deploy my blog, drewdevault.com, through builds.sr.ht: https://builds.sr.ht/~sircmpwn/drewdevault.com This is built with Jekyll and used to be on GitHub pages. The plan is to have a place where you can dump static content, then you can use any site generator you want with builds.sr.ht.
Wow. Excellent. What serves drewdevault.com -- sr.ht itself?
It's just running on my personal infrastructure. In the future there will be a place to host it on sr.ht.
Don't have an immediate use, but I signed up for the $20/yr account. Seems like an incredible platform, and if I have this expectation that better software be built and not tied to huge corporations beholden to investors, the only way to do that is to support it. Looking forward to digging into all this.
This is the type of project announcement that gets me excited to work on my own open-source efforts. Congrats Drew, this is great.
I love this. Everything I've read so far breathes this "made for devs" attitude. I hope that a few years from now in a HN thread that lists successful companies that got "launched" on HN (you know, the Dropboxes and so on), this will be among them---and that the product is still as honest and awesome as it looks right now!
Well worth the $100 for the year and I even plan on self-hosting.
Not to mention the other amazing work being done by the developer that it will help sponsor.
Is this orthogonal approach to GitHub, etc ?

On GitHub you navigate to project(repo), then drill down to sub section provides specific piece of functionality (repo, commits, issues, wiki..)

Here you navigate to app then drill down to project..

According to comments elsewhere on this post, this functionality is in the works.