Utterances: Lightweight comments widget built on GitHub issues(utteranc.es)
utteranc.es
Utterances: Lightweight comments widget built on GitHub issues
https://utteranc.es/
10 comments
GitHub is at an interesting inflection point. Before the acquisition, VCs stoked the growth by giving away bandwidth and storage. Now that GitHub is a Microsoft property, the same continues because MS has been on a ten-year mission to build goodwill in the developer community.
That may not last forever. The original GitHub people will gradually drift away once their vesting concludes. If overall growth stalls, Microsoft management may yet feel the temptation to start squeezing GitHub for cash.
I suspect they'll acquire NPM along the way too, to have a better lock-in in place.
That may not last forever. The original GitHub people will gradually drift away once their vesting concludes. If overall growth stalls, Microsoft management may yet feel the temptation to start squeezing GitHub for cash.
I suspect they'll acquire NPM along the way too, to have a better lock-in in place.
Microsoft won't acquire npm for sure.
I highly doubt MS will ever squeeze GitHub for cash also. It's about integration and azure.
They have proved by now that they are not Oracle and they are doing the opposite of them.
- making development more open ( .net core vs Java)
- making tools more open ( eg. Sms vs MySQL, vscode, ...)
Both have clouds. Microsoft is adding/creating more free tools/services as their onboarding funnel. Development ease is their motivation.
Oracle buys popular things and starts licensing them. They try to force existing clients into their cloud ( MS makes it optional). Oracle's motivation is management influencing
I highly doubt MS will ever squeeze GitHub for cash also. It's about integration and azure.
They have proved by now that they are not Oracle and they are doing the opposite of them.
- making development more open ( .net core vs Java)
- making tools more open ( eg. Sms vs MySQL, vscode, ...)
Both have clouds. Microsoft is adding/creating more free tools/services as their onboarding funnel. Development ease is their motivation.
Oracle buys popular things and starts licensing them. They try to force existing clients into their cloud ( MS makes it optional). Oracle's motivation is management influencing
Microsoft (like many companies before, and many companies in the future) change. The went from cool, to not cool, to cool again in the eyes of the developer hive-mind.
I don't think we can say for sure that Microsoft will forever act the way they are acting now, as in the end it's run by people and those people eventually become replaced with others.
Saying that a company has "proven" something and that means they will act a certain way forever seems unhealthy.
I don't think we can say for sure that Microsoft will forever act the way they are acting now, as in the end it's run by people and those people eventually become replaced with others.
Saying that a company has "proven" something and that means they will act a certain way forever seems unhealthy.
NPM could use some cleaning. It's a single point of failure without the governance, the worst of both worlds kind of thing.
> I suspect they'll acquire NPM along the way too, to have a better lock-in in place.
No matter if someone is going to acquire npm or not, npm registry is clearly degrading in value provided to users, while trying to earn a profit.
I recently started a project to do something about it, called Open-Registry (https://open-registry.dev).
Basically, it's a new package registry compatible with npm (proxy to the npm inc registry) that is 100% community funded and has a explicit governance that the community owns it.
No matter if someone is going to acquire npm or not, npm registry is clearly degrading in value provided to users, while trying to earn a profit.
I recently started a project to do something about it, called Open-Registry (https://open-registry.dev).
Basically, it's a new package registry compatible with npm (proxy to the npm inc registry) that is 100% community funded and has a explicit governance that the community owns it.
> People keep on treating GitHub and other corporations as public services. They're not.
Good point! Maybe there should be such a public service as an option.
Good point! Maybe there should be such a public service as an option.
Funny you should say that! I'm currently starting a concept I'm tentatively call "Open-Services". The main points are:
- Strong community governance
- Everything done needs to be in favor of the users
- Funding should be by the community
- Metrics, finances and management has to be transparent and done in the open
- Obviously, 100% of the code has to be under a open source license as well
Basically, a Open Service is a public utility for the internet.
My first service I'm creating like this is https://open-registry.dev which replaces the npm inc registry with a community owned one.
- Strong community governance
- Everything done needs to be in favor of the users
- Funding should be by the community
- Metrics, finances and management has to be transparent and done in the open
- Obviously, 100% of the code has to be under a open source license as well
Basically, a Open Service is a public utility for the internet.
My first service I'm creating like this is https://open-registry.dev which replaces the npm inc registry with a community owned one.
Public services, as in, run by who exactly? There is no Internet government to run Internet public services.
If only we had a federated communication mechanism and the frictionless ability to run any server we wished from any IP.
Sounds like a great project for someone to work on.
You know, those Mastodon folks have built some interesting stuff on top of ActivityPub. Maybe we should build a text-based communication protocol on ActivityPub in addition to more social features. Then we could also give some file-sharing mechanism, wherein a user could send a message with a tightly linked file, like the message and file are attached to one another.
Then we could let users run a server to send these sorts of messages over a federated ActivityPub network.
Perhaps we could normalize this protocol so much that ISPs would include a basic option of an address and some storage. This would really help to separate us from these mega service companies like Google and Facebook.
/s
You know, those Mastodon folks have built some interesting stuff on top of ActivityPub. Maybe we should build a text-based communication protocol on ActivityPub in addition to more social features. Then we could also give some file-sharing mechanism, wherein a user could send a message with a tightly linked file, like the message and file are attached to one another.
Then we could let users run a server to send these sorts of messages over a federated ActivityPub network.
Perhaps we could normalize this protocol so much that ISPs would include a basic option of an address and some storage. This would really help to separate us from these mega service companies like Google and Facebook.
/s
Not sure.
A start might be a standards body offshoot, or a similar organization.
Maybe the UN? Maybe an org like IEEE?
Seems like an interesting discussion topic.
A start might be a standards body offshoot, or a similar organization.
Maybe the UN? Maybe an org like IEEE?
Seems like an interesting discussion topic.
How did people became so incapable in social interactions that they need a public service to share code they make together?
A public service is exactly people interacting. It just prioritizes posterity over profit.
No, people interacting is people talking together and then doing things together. Please don't try to act like voting or otherwise going the political route is anything like that. I will believe you once there is no government in the middle. There is absolutely no need for a third party, especially given we're talking about code sharing and not about saving dying people.
Talk is ephemeral. That’s why we create systems: longevity and posterity. We use them so they might outlive us and our talk.
When you put it in terms of “code sharing” it sounds like an act, rather than what I’m targeting—a repository or library.
When you put it in terms of “code sharing” it sounds like an act, rather than what I’m targeting—a repository or library.
It is an act. A repository is a thing that helps you do that act. If you want more people to act like you want them to, you should talk to them. If you have anything worthwhile to say, they will listen. Again, we're not talking about dying people.
I think we might be talking about two different things. (You're losing me with the "dying people" remark. Not sure what you're driving at)
I'm only suggesting common repository hosting would be a benefit to humanity, so that source code can be persisted beyond the whims of a private company and accessible by all.
I'm not suggesting that anybody should be forced to use it.
I'm only suggesting common repository hosting would be a benefit to humanity, so that source code can be persisted beyond the whims of a private company and accessible by all.
I'm not suggesting that anybody should be forced to use it.
> I think we might be talking about two different things. (You're losing me with the "dying people" remark. Not sure what you're driving at)
That is an example of a situation which's solution might have to be solved as a public service because it is literally people dying. Code sharing is not as severe as people dying and thus not really necessary to have it as a public service with all of its shortcomings including unnecessary cost to the state budget and irrationality of the whole idea (just why, we have the nonprofits for exactly this kind of things).
> I'm only suggesting common repository hosting would be a benefit to humanity, so that source code can be persisted beyond the whims of a private company and accessible by all.
Then do it. You have all the means to do so:
- You have Facebook, Reddit, HN, ... to gather community
- You have the Internet to find incorporation documents for nonprofits
- You have Paypal and cryptocurrencies to receive donations
- You have IPFS
- You have Git
- You have Amazon, DO, Azure...
Apparently such service has not enough value even for you if you can't spend $10/month to do it, and thus you want to force other people to do it for you.
> I'm not suggesting that anybody should be forced to use it.
I'd call you a fucking communist and went away if I thought that.
That is an example of a situation which's solution might have to be solved as a public service because it is literally people dying. Code sharing is not as severe as people dying and thus not really necessary to have it as a public service with all of its shortcomings including unnecessary cost to the state budget and irrationality of the whole idea (just why, we have the nonprofits for exactly this kind of things).
> I'm only suggesting common repository hosting would be a benefit to humanity, so that source code can be persisted beyond the whims of a private company and accessible by all.
Then do it. You have all the means to do so:
- You have Facebook, Reddit, HN, ... to gather community
- You have the Internet to find incorporation documents for nonprofits
- You have Paypal and cryptocurrencies to receive donations
- You have IPFS
- You have Git
- You have Amazon, DO, Azure...
Apparently such service has not enough value even for you if you can't spend $10/month to do it, and thus you want to force other people to do it for you.
> I'm not suggesting that anybody should be forced to use it.
I'd call you a fucking communist and went away if I thought that.
Your tone is surprisingly accusatory given the subject matter. You also seem to be assuming that I'm suggesting such a service should be the domain of the United States. It's a global (read: human) matter.
I should maybe be more clear: I see a public service option for code repositories as more of a public library than anything else. I was suggesting something expressly not run by a private company. That's because as we've seen many times over: companies' priorities change over time—products rise and fall.
I think code is important. I think it will be important in the future as well. As much as ancient recorded mathematics and literature is important.
As well, I see a greater benefit to building common libraries than to burning them.
Because I don't favour dictatorships, I see building libraries as the product of agreement. So by default it seems a collaborative effort to me, and not a forced one.
All of this is why I consider the subject worth discussing.
I should maybe be more clear: I see a public service option for code repositories as more of a public library than anything else. I was suggesting something expressly not run by a private company. That's because as we've seen many times over: companies' priorities change over time—products rise and fall.
I think code is important. I think it will be important in the future as well. As much as ancient recorded mathematics and literature is important.
As well, I see a greater benefit to building common libraries than to burning them.
Because I don't favour dictatorships, I see building libraries as the product of agreement. So by default it seems a collaborative effort to me, and not a forced one.
All of this is why I consider the subject worth discussing.
> How is that not a proprietary lock-in if all your data is stored on a single company's servers?
Even more than this, I'm a big fan but IIRC GitHub is pretty infamous for making it excessively hard to extract issue data/move to other platforms? (I think the wiki pages are available as a repo, so at least that's easy to get).
Even more than this, I'm a big fan but IIRC GitHub is pretty infamous for making it excessively hard to extract issue data/move to other platforms? (I think the wiki pages are available as a repo, so at least that's easy to get).
Citation needed. Almost all issue data should be available from the API, and I have seen cases where issue contents are copied over with a bot from an obsolete repo to a new repo.
"(I think the wiki pages are available as a repo, so at least that's easy to get)."
This is true, but other components of a github project, such as the issues, are not available as a git repo that you can clone, etc.
This is true, but other components of a github project, such as the issues, are not available as a git repo that you can clone, etc.
No, wiki pages are not available through git on GitHub. You're thinking of GitLab which does have this feature.
EDIT: TIL, turns out they are. And the syntax (add .wiki to the repo name) is the same as GitLab.
EDIT: TIL, turns out they are. And the syntax (add .wiki to the repo name) is the same as GitLab.
Yes, they are. For example, the GitHub repository ethereum/wiki can be cloned by doing
git clone https://github.com/ethereum/wiki.wiki.git
You basically add `.wiki` after the repository name, and it's exposing a git repository you can clone.So this is a comments app that uses Github's issue tracker service as a data store. Is this a round hole / square peg mismatch of problem and solution?
I'm asking honestly what other people's opinions of this are because whilst it looks good it: 1) looks like the kinda of hacky solution I try to avoid building when trying to fit together incompatible data objects and data storage. 2) uses Github's systems for purposes other than they were intended, which seems slightly unethical or at least impolite to me.
I'm asking honestly what other people's opinions of this are because whilst it looks good it: 1) looks like the kinda of hacky solution I try to avoid building when trying to fit together incompatible data objects and data storage. 2) uses Github's systems for purposes other than they were intended, which seems slightly unethical or at least impolite to me.
Yup, it's the 10×ers' equivalent of <https://xkcd.com/763/>.
> uses Github's systems for purposes other than they were intended, which seems slightly unethical or at least impolite to me.
I wonder where the line is drawn here, and whether it really is unethical to use GitHub to store comments. Is something of this sorts explicitly or implicitly mentioned in their ToS?
Along the same lines, will hosting files on directly on Github and using that as our primary resource (raw.githubusercontent.com...) be considered unethical or impolite?
I wonder where the line is drawn here, and whether it really is unethical to use GitHub to store comments. Is something of this sorts explicitly or implicitly mentioned in their ToS?
Along the same lines, will hosting files on directly on Github and using that as our primary resource (raw.githubusercontent.com...) be considered unethical or impolite?
I hadn't thought to look at GitHub's ToS as that would have been too obvious! I did just have a quick look now. Nothing too specific in there, but then these things often are general so that discretion can be used later. A couple of things that might catch this out:
- "Abuse or excessively frequent requests to GitHub via the API may result in the temporary or permanent suspension of your Account's access to the API. GitHub, in our sole discretion, will determine abuse or excessive usage of the API."
Utterances uses the GitHub API and its demo page makes 4 requests to api.github.com. The API docs state a limit of 5000 requests per hour. That's quite a lot and within what a low volume blog would get, which I think is the main use case for this app. But if your blog gets really popular then you might ring alarm bells at Github.
- "Responsibility for User-Generated Content" As this is all user generated content you, as GitHub account owner, are responsible for it not breaking GitHub's content guidelines and you had GitHub permission to do with it as they see fit. GitHub are the ultimate decision makers about your user's content, not you or Utterances.
https://help.github.com/en/articles/github-terms-of-service
- "Abuse or excessively frequent requests to GitHub via the API may result in the temporary or permanent suspension of your Account's access to the API. GitHub, in our sole discretion, will determine abuse or excessive usage of the API."
Utterances uses the GitHub API and its demo page makes 4 requests to api.github.com. The API docs state a limit of 5000 requests per hour. That's quite a lot and within what a low volume blog would get, which I think is the main use case for this app. But if your blog gets really popular then you might ring alarm bells at Github.
- "Responsibility for User-Generated Content" As this is all user generated content you, as GitHub account owner, are responsible for it not breaking GitHub's content guidelines and you had GitHub permission to do with it as they see fit. GitHub are the ultimate decision makers about your user's content, not you or Utterances.
https://help.github.com/en/articles/github-terms-of-service
An interesting fact about this is that the author is on the Microsoft docs team, which uses a similar system for docs.microsoft.com [1]. So I don't think that GitHub has a problem with this approach.
For an example of Microsoft's system in use, see the "Feedback" section on [2].
[1]: https://github.com/MicrosoftDocs/feedback/issues/396
[2]: https://docs.microsoft.com/en-us/azure/azure-functions/funct...
For an example of Microsoft's system in use, see the "Feedback" section on [2].
[1]: https://github.com/MicrosoftDocs/feedback/issues/396
[2]: https://docs.microsoft.com/en-us/azure/azure-functions/funct...
GitHub is owned by Microsoft though, so there's no guarantee they won't have problems with someone else doing this.
I can't imagine GitHub are going to be very thrilled with this. Maybe as a one off you'd fly under the radar but making it more widely available seems kinda silly.
I like how it's marketed as 'no ads, always free'! Not so difficult to do when you're (ab)using someone else's service to handle all your data.
I like how it's marketed as 'no ads, always free'! Not so difficult to do when you're (ab)using someone else's service to handle all your data.
I think GitHub is okay with "creative" uses of their system, as long as one doesn't push the limits and doesn't make a business from it.
Infamously, CocoaPods was serving directly from GH, maxing out out five server CPUs and using terabytes of traffic, and their response was fairly sympathetic: https://news.ycombinator.com/item?id=11245652
Infamously, CocoaPods was serving directly from GH, maxing out out five server CPUs and using terabytes of traffic, and their response was fairly sympathetic: https://news.ycombinator.com/item?id=11245652
> I think GitHub is okay with "creative" uses of their system, as long as one doesn't push the limits and doesn't make a business from it.
Being on the front page of hacker news feels a lot like "pushing the limits".
Being on the front page of hacker news feels a lot like "pushing the limits".
I've seen a couple apps like this now where the app is basically a parasite on something else. Seems like a an abuse of goodwill.
"Check out SnooFS: the free cloud storage solution built on Reddit comments! Basically instead of paying for your own storage, SnooFS generates you a personal subreddit and uploads your data as text, video, and images to be hosted on Reddit's servers! No limit to storage - upload as many TB as you want!"
"Check out SnooFS: the free cloud storage solution built on Reddit comments! Basically instead of paying for your own storage, SnooFS generates you a personal subreddit and uploads your data as text, video, and images to be hosted on Reddit's servers! No limit to storage - upload as many TB as you want!"
This is not a good comparison. While I agree with you that a project like SnooFS is using other people resources in a bad way, projects like this are more of a proof-of-concept than anything else. I don't believe people would actually trust their files in a manner like this.
On the other hand, whereas GitHub issues are not intended for external blogs comments, it is already used like this and for blogs hosted on GitHub Pages. This is just an automation tool. If GitHub sees a problem with this in the future they can always change their terms of use (and that's why anyone should only use a system like this for ephemeral stuff).
On the other hand, whereas GitHub issues are not intended for external blogs comments, it is already used like this and for blogs hosted on GitHub Pages. This is just an automation tool. If GitHub sees a problem with this in the future they can always change their terms of use (and that's why anyone should only use a system like this for ephemeral stuff).
I looked into using Utterances a while back, but decided against it.
From my blog post [0]: This product requires an external server to be up and online at all times. And while they do promise to be always free without ads, they don't promise to be always available. And while they are open-source and I could always decide to host my own Utterances server/bot, I'd prefer to host nothing at all. This isn't a super deal breaker, because in the end, all content is stored in GitHub Issues.
[0] https://pknopf.com/post/2018-10-13-comments-for-static-sites...
From my blog post [0]: This product requires an external server to be up and online at all times. And while they do promise to be always free without ads, they don't promise to be always available. And while they are open-source and I could always decide to host my own Utterances server/bot, I'd prefer to host nothing at all. This isn't a super deal breaker, because in the end, all content is stored in GitHub Issues.
[0] https://pknopf.com/post/2018-10-13-comments-for-static-sites...
you could have pushed solution a bit more to create the github issue when creating blog posts - like use a github token to generate issue when the issue does not exist for blog posts.. utterances feature that I liked is the bot that creates the issue for you automatically and also scans the github repo for comments based on title..
> you could have pushed solution a bit more to create the github issue when creating blog posts
I guess, if my solution were a "product", as opposed to a one-off.
I guess, if my solution were a "product", as opposed to a one-off.
I have been using utterances for a couple months and absolutely love it. It simplified my stack so much as I could finally shutdown my crappy REST comment api
This is brilliant! If your blog is hosted on GitHub it's even more useful and comments will be closer to the source.
Just embed a real comments platform for free like Disqus, or Discourse. There are plenty of better options that make this pointless for anything more than a "just because" project.
This is awesome! Great work. Any support for nested replies coming?
Not likely, since it sits on top of GitHub issues.
Might be possible to leverage comments on issues for that use case.
How is that not a proprietary lock-in if all your data is stored on a single company's servers?
People keep on treating GitHub and other corporations as public services. They're not.