Interesting stuff! I really like the design philosophy you're applying here, where the browser/web behaviour is actually part of the UX. Pretty rare for web application nowadays!
If I could make one suggestion, I really like the old MacOS "inspector" pattern. Basically a consistent way to get meta-information about any "thing" the user chooses to inspect. Your right sidebar is going towards that, but it would need some work to make it more consistent between views.
GitHub's UI has these weird meta-states/restrictions that are so badly explained in the UI they feel like bugs. Each line gets a [...] menu in github which lets you see the blame/spawn a issue linking to it/get a permalink/etc. It's a totally different UI in the diff view, and then totally different again if you're looking at a comment referencing a line in a diff AND different if it's referencing a permalink to a line in a file, even if it's the same code that would be in that diff!
I want the UI to have obvious "nouns". If the UI is showing me a line of code, even if it's in a diff view, let me "inspect" it and get the exact same meta-info + tools I get for lines of code anywhere. It's "a line", not a weird meta state of "a line, but you're in the comment of a PR linking to this line".
Same concept applies to comments/commits/authors/etc. If the UI shows me a username, I should be able to pull up a "who is that again" inspector. Going into github's commit view, clicking on a name... and being sent to a filtered list of that person's commits makes zero sense to me because this is the ONLY place where that happens. That behaviour should be a "recent commits" button inside some "user inspector".
> We view AI as an implementation detail — and do not think that using it is necessarily good.
> In fact, we think it makes many products worse by acting as a bandaid for poor design.
> That isn’t to say we are blind to it, but that we will be judicious in our use of it instead.
Not sure I follow. What feature are the developers referring to? I understand that AI will power tools that may or may not fit a particular use case. How is AI a feature and what does it mean to be anti-AI?
yeah thanks for digging in, this was a bit ambiguous.
so take this to mean - 1) no AI copilot in the app and 2) no training on your data nor selling of it.
our take on AI is that we should focus on building tools that help address its limitations; one of the things we're particularly keen on is building stacked diffs into reviews as a primitive, so it's easier to review a large AI-generated (or assisted) PR. (e.g., diff 1 for API changes, diff 2 for backend wireup, diff 3 for front-end changes)
i think to do that, we're going to try and hook into the subscriptions that people already have and are paying for: Claude, Codex, rather than package our own, but some of that is a bit hacky to do.
AI is rapidly becoming a synonym for enshittification. It can be a little aggravating. I am trying to judiciously use terms like "agent" or "LLM" so I can avoid just lazily saying "AI", which is often a pejorative term now.
my fixation here is to make everything load instant, but that is dependent on server latencies, which right now is admittedly slow as we only have one server in the US.
a lot of this we've really come to know as we dug into both it, gittea, gitlab, and all of their internals.
i think the short answer as to a differentiator is design.
our goal's to just build the best product possible, one that we'd love to use and one that we hope developers do too.
some of the stuff we've been thinking about include: stacked diffs as PR primitive, a Nix-based CI (that's reproducible and locally testible), a super simple and intuitive bug tracker, and just making the site super duper fast and pleasant to use.
that is to say, there is a _lot_ of surface area that a software forge covers and i think there's a lot of room to make things better.
hope that's clear enough, apologies for any ambiguities, we do NOT have all the answers quite yet haha
I'm a bit confused, aren't the Forgejo people trying to build the "best product possible", too? And there's more of them, and they have funding, and… between 2 good forges or 1 great one, I rather have 1 great one… I guess you're not interested in joining them because it's not Rust?
i think the honest answer here is autonomy. the freedom to choose our own tech stack, our own product priorities, and our own design.
i'll also admit that i don't know forgejo's own priorities as well as i do our own, and that is negligence that we're due to correct. maybe they are perfectly aligned and it does make sense for us to join forces.
but just as with any FOSS project, they have the freedom to choose what they work on as do we, and i intend on respecting that.
The minimal look feels very refreshing, and yet it's not disorienting like many minimal web git UIs are in my experience; I actually feel like I know how to navigate this thing. Site feels very snappy too, especially with those instantly loading file previews when you hover. Congrats!
I think you're in an interesting space where there's a real opportunity to create something fresh. When people are actively looking for alternatives it will be easier to break out of the established norms.
What does anti-AI mean? Don't really see anything about it in the design doc except "no AI copilot".
but overall, the general ethos is to focus on the problems that AI is introducing as of now and how we can help solve them, rather than just build AI features with abandon assuming that they're good.
some stuff that we do know about: the influx of slop PRs / slop issues on popular repositories, losing agency our own of code as we AI generates more, and privacy/sovereignty of code.
i've talked a bit about stacked diffs which we do see as one concrete stab in that direction, but a lot here is to be admittedly sketched out.
Seems interesting an I'll take more of a peek after work, but one thing that stood out to me is the only way back to the home page after navigating to a repo is the back button. Going back to the home page via the back button also doesn't retain that "new" was selected. But I agree with others, I do like the simplicity of the site.
this hn thread is interesting as it feels like i'm getting to revisit a lot of decisions i've made in the design haha.
i debated this for a while too, some of my thinking for how it is is that i wanted the focus of a repository page to be _the repository_. so as much as we can, trim things that might detract.
it was also done with the intention that it's actually pretty rare for a user to find or explore repositories on github (more likely you find them here on hn or on twitter), so had the restraint of really trying _not_ to make gitdot anything like social media.
but thank you nonetheless for the feedback, i'll revisit it proper and see if i can make this more intuitive.
I’m not sure I agree with all of your takes either. For example, I’m not anti-AI for coding, so that immediately made me click away. I’m glad I read the comments though because I think the take of “not using your code to train AI” makes a lot more sense.
But, I wanted to say thanks for posting this and being really open in the comments. It’s hard to get so much feedback so quickly. It’s a firehouse of criticism that’s hard to deal with.
thank you mbreese, i know folks can be mean and i also recognize where they're coming from (we are certainly far from perfect), but this comment is nice to read.
I think I can understand that reasoning. I do have a tendency to explore, especially at the start since it gives me a view of what the site can already do, cause I wouldn't want to run into issues with my own projects without knowing of the possible limitations ahead of time.
If anything since the keyboard shortcut already exists, you could always put it in little cursor menu at the bottom of the screen. But yeah up to you, I look forward to your progress.
Would be interested in a comparison with https://sourcehut.org/ (which has a comparable minimal aesthetic, but also has the deep benefit of being FOSS.
yeah this is because we're currently (very temporarily) hosting things in NFS and git stat operations are very slow since they assume a fast file FS. we'll fix that in a few.
and yeahhhh, i do try to be very non-marketing in all that i say, but something about the title made me a bit ambitious, apologies.
Feels like one can just copy the UI and use it for forgejo. It would get something similar very quickly, and avoid handling all the difficult stuff I guess.
hrm. so i guess if the question is why not just make a software forge that is _only_ based in the CLI, the answer i think is convenience.
it's very convenient to be sent a link (or find it on hacker news) and to be able to click around files, read the README, understand what a repository is about without having to clone it and open locally. plus -- if you only need a barebones git server with no web UI, git provides this by default.
if the question is, will you build a CLI / what will be in it?
the answer is yes, we do have a barebones CLI for auth as of now, do envision things like managing issues / PRs from the CLI, but want to make sure that strike the right balance there.
i think TUIs can be deceptively hard to build well, and admittedly, it hasn't been a priority for us quite yet.
Yes, this particular UX is poor. It's not intuitive that clicking the filename has different behavior from clicking elsewhere in the file's row. Expanding the row inline needs a leading widget.
This particular issue is solved in GitHub proper, and derives from the Windows 95 tree view widget [1], which I seem to remember from Windows 3.x but can't find a screenshot.
The hover behavior is just not an intuitive or accessible default. I can't imagine someone being able to use this if they have a hard time clicking without moving the mouse. It also wastes resources fetching file/directory contents while the user is moving the cursor to a predetermined file they presumably wish to open.
This is really interesting. Especially as its open source and I really liked the UI design of it.
I was thinking about creating my own git forge given the unreliability of Github and I wouldn't be able to create just at the moment incredibly reliable software like git forge although I could use AI to create a minimalist piece of software, I didn't because I didn't want to create yet another AI slop fighting another AI slop (github/gitlab).
Forejo is incredible but I have always wanted to get more alternatives in this field.
Much thanks for making it. I have signed up and I have high hopes for it too and I will try to either self host this on my servers or gitdot.io as well as Github
I recommend making a small community in matrix (preferred), fluxer.gg, discord etc. as I'd like to join it.
PS: small personal thing that I have made which helps in making communities: https://mirror.forum
I am definitely interested in gitdot.io! This seems incredible
I wish nothing but the best for you folks. Gonna create a local copy of the source code of gitdot.io right now!
Thanks for open-sourcing the efforts too. I really appreciate it :-D The software is so nice!
I genuinely hope that you guys and the project blows up and if you guys might ever hire a junior dev, I hope you all could remember me as the world right now needed such software that you have made!! :-D (Although I am more interested in managing servers/golang but that's because rust is hard to learn as a beginner but that's different topic but I like rust's ideas too and rust is a great/preferred language with golang for this type of service :-D)
Thanks for the support, we really appreciate it. We want to create/support communities within the app in the future (via issues, etc) but ya it's a good idea to form some channels.
It might be a bit difficult to self-host at the moment (as we don't have a good documentation to do so) but you can try and let us know how it goes.
If I could make one suggestion, I really like the old MacOS "inspector" pattern. Basically a consistent way to get meta-information about any "thing" the user chooses to inspect. Your right sidebar is going towards that, but it would need some work to make it more consistent between views.
GitHub's UI has these weird meta-states/restrictions that are so badly explained in the UI they feel like bugs. Each line gets a [...] menu in github which lets you see the blame/spawn a issue linking to it/get a permalink/etc. It's a totally different UI in the diff view, and then totally different again if you're looking at a comment referencing a line in a diff AND different if it's referencing a permalink to a line in a file, even if it's the same code that would be in that diff!
I want the UI to have obvious "nouns". If the UI is showing me a line of code, even if it's in a diff view, let me "inspect" it and get the exact same meta-info + tools I get for lines of code anywhere. It's "a line", not a weird meta state of "a line, but you're in the comment of a PR linking to this line".
Same concept applies to comments/commits/authors/etc. If the UI shows me a username, I should be able to pull up a "who is that again" inspector. Going into github's commit view, clicking on a name... and being sent to a filtered list of that person's commits makes zero sense to me because this is the ONLY place where that happens. That behaviour should be a "recent commits" button inside some "user inspector".
IMO a team like yours can either:
* Use LLMs, in which case you aren't "anti-AI".
* Not use LLMs currently, but the non-use is not due to following a principle, in which case you aren't "anti-AI".
* Not use LLMs and promise never to do so.
I'm happy you are trying something new. But you hurt yourself by engaging in something very old: disingenuity.
(edits for presentation and grammar)
hope our sentiment is clearer in the comments that i've made, i think i've made the mistake of phrasing here with the "anti", i'll revisit it.
> AI.
> We view AI as an implementation detail — and do not think that using it is necessarily good.
> In fact, we think it makes many products worse by acting as a bandaid for poor design.
> That isn’t to say we are blind to it, but that we will be judicious in our use of it instead.
Not sure I follow. What feature are the developers referring to? I understand that AI will power tools that may or may not fit a particular use case. How is AI a feature and what does it mean to be anti-AI?
https://gitdot.io/bkdevs/gitdot/files
so take this to mean - 1) no AI copilot in the app and 2) no training on your data nor selling of it.
our take on AI is that we should focus on building tools that help address its limitations; one of the things we're particularly keen on is building stacked diffs into reviews as a primitive, so it's easier to review a large AI-generated (or assisted) PR. (e.g., diff 1 for API changes, diff 2 for backend wireup, diff 3 for front-end changes)
i think to do that, we're going to try and hook into the subscriptions that people already have and are paying for: Claude, Codex, rather than package our own, but some of that is a bit hacky to do.
hope that's clearer and thank you for asking
That sounds more like anti-enshittification.
No loading animation, but my screen jitters while loading in stuff. My internet speed is fine, so it's a performance/bug issue.
I also did not initially understand the UI, but that'll come as I use it more
my fixation here is to make everything load instant, but that is dependent on server latencies, which right now is admittedly slow as we only have one server in the US.
but thank you for giving it a shot nonetheless!
a lot of this we've really come to know as we dug into both it, gittea, gitlab, and all of their internals.
i think the short answer as to a differentiator is design. our goal's to just build the best product possible, one that we'd love to use and one that we hope developers do too.
some of the stuff we've been thinking about include: stacked diffs as PR primitive, a Nix-based CI (that's reproducible and locally testible), a super simple and intuitive bug tracker, and just making the site super duper fast and pleasant to use.
that is to say, there is a _lot_ of surface area that a software forge covers and i think there's a lot of room to make things better.
hope that's clear enough, apologies for any ambiguities, we do NOT have all the answers quite yet haha
I think the question is why not try to make the other FOSS forges better instead of reinventing the wheel.
i think the honest answer here is autonomy. the freedom to choose our own tech stack, our own product priorities, and our own design.
i'll also admit that i don't know forgejo's own priorities as well as i do our own, and that is negligence that we're due to correct. maybe they are perfectly aligned and it does make sense for us to join forces.
but just as with any FOSS project, they have the freedom to choose what they work on as do we, and i intend on respecting that.
glad to hear the positive feedback :)
What does anti-AI mean? Don't really see anything about it in the design doc except "no AI copilot".
i replied in a separate comment: https://news.ycombinator.com/item?id=48452052 but to reiterate: 1) no AI copilot and 2) no training or selling of your data.
but overall, the general ethos is to focus on the problems that AI is introducing as of now and how we can help solve them, rather than just build AI features with abandon assuming that they're good.
some stuff that we do know about: the influx of slop PRs / slop issues on popular repositories, losing agency our own of code as we AI generates more, and privacy/sovereignty of code.
i've talked a bit about stacked diffs which we do see as one concrete stab in that direction, but a lot here is to be admittedly sketched out.
i debated this for a while too, some of my thinking for how it is is that i wanted the focus of a repository page to be _the repository_. so as much as we can, trim things that might detract.
it was also done with the intention that it's actually pretty rare for a user to find or explore repositories on github (more likely you find them here on hn or on twitter), so had the restraint of really trying _not_ to make gitdot anything like social media.
but thank you nonetheless for the feedback, i'll revisit it proper and see if i can make this more intuitive.
But, I wanted to say thanks for posting this and being really open in the comments. It’s hard to get so much feedback so quickly. It’s a firehouse of criticism that’s hard to deal with.
You’re handling it well.
thank you for the empathy.
If anything since the keyboard shortcut already exists, you could always put it in little cursor menu at the bottom of the screen. But yeah up to you, I look forward to your progress.
i will also say on accessibility, i recognize the site is a bit too small font in general — and will fix it soon.
Personally while I appreciate something not being AI slop, writing something in Rust has no meaning to me.
and yeahhhh, i do try to be very non-marketing in all that i say, but something about the title made me a bit ambitious, apologies.
I see code reviews is in the roadmap, I can't wait to try it.
it's very convenient to be sent a link (or find it on hacker news) and to be able to click around files, read the README, understand what a repository is about without having to clone it and open locally. plus -- if you only need a barebones git server with no web UI, git provides this by default.
if the question is, will you build a CLI / what will be in it? the answer is yes, we do have a barebones CLI for auth as of now, do envision things like managing issues / PRs from the CLI, but want to make sure that strike the right balance there.
i think TUIs can be deceptively hard to build well, and admittedly, it hasn't been a priority for us quite yet.
Don't try to make me install a random program if I can view it in my sandboxed browser safely.
Also, browsers have greasemonkey to help me personalize websites easily. TUIs don't.
This particular issue is solved in GitHub proper, and derives from the Windows 95 tree view widget [1], which I seem to remember from Windows 3.x but can't find a screenshot.
The hover behavior is just not an intuitive or accessible default. I can't imagine someone being able to use this if they have a hard time clicking without moving the mouse. It also wastes resources fetching file/directory contents while the user is moving the cursor to a predetermined file they presumably wish to open.
[1]: https://learn.microsoft.com/en-us/windows/win32/winauto/syst...
i think i will get rid of the change on hover, it is a distraction and perhaps was just my ambition to show people how fast we load.
edit: fixed
I was thinking about creating my own git forge given the unreliability of Github and I wouldn't be able to create just at the moment incredibly reliable software like git forge although I could use AI to create a minimalist piece of software, I didn't because I didn't want to create yet another AI slop fighting another AI slop (github/gitlab).
Forejo is incredible but I have always wanted to get more alternatives in this field.
Much thanks for making it. I have signed up and I have high hopes for it too and I will try to either self host this on my servers or gitdot.io as well as Github
I recommend making a small community in matrix (preferred), fluxer.gg, discord etc. as I'd like to join it.
PS: small personal thing that I have made which helps in making communities: https://mirror.forum
I am definitely interested in gitdot.io! This seems incredible
I wish nothing but the best for you folks. Gonna create a local copy of the source code of gitdot.io right now!
Thanks for open-sourcing the efforts too. I really appreciate it :-D The software is so nice!
I genuinely hope that you guys and the project blows up and if you guys might ever hire a junior dev, I hope you all could remember me as the world right now needed such software that you have made!! :-D (Although I am more interested in managing servers/golang but that's because rust is hard to learn as a beginner but that's different topic but I like rust's ideas too and rust is a great/preferred language with golang for this type of service :-D)
It might be a bit difficult to self-host at the moment (as we don't have a good documentation to do so) but you can try and let us know how it goes.