larvalabs / pullup

A website you join via pull request.
http://pullup.io
MIT License
320 stars 240 forks source link

A new idea for PullUp #367

Open megamattron opened 9 years ago

megamattron commented 9 years ago

Hi @qguv @treygriffith @josephwegner @pents90 @dfjones - been a while!

The renewal for the pullup domain just came up and while deciding whether to renew or not (I did), I realized I missed pullup and still wasn't really satisfied with the alternatives. After talking with @pents90 we think we have an idea for what to do with the site. I'd love to get your feedback and level of interest.

I suggest we head more in the direction of a reddit model, but in our case people who have contributed code would be like moderators, and regular users are people who have been invited by moderators. So if you contribute some code you get to invite users, moderate/edit posts, and eventually create sub-boards (if we support them). If you are a regular user you can post, comment and vote.

The only way to join the site will be by invitation, so membership is still tied back to a contributor. We could possibly allow users to invite other users, which would build up an "invite tree" and perhaps allow some interesting options for blocking subtrees of irritating users. Or even propagating a percentage of karma back up the tree to parent users - "thanking" them for the quality of user they added to the site.

This means we wouldn't limit our userbase to strictly technical people, however technical people that contribute code would still be recognized and given more control over the site. It also means the userbase size won't be limited by the number of features the software needs, the main limitation of the original membership model.

Anyway, I'd love to discuss more, and please mention more people if I've missed someone who should be involved. Fundamentally, I feel like I miss pullup, and I'm ready for an alternative to reddit and HN which I don't find as friendly or interesting as they used to be.

josephwegner commented 9 years ago

Heyo @megamattron!

Cool to see this pop up again. I recently took a position with Keen, as an open source dev - this is even more relevant for me now!

One potential trouble I see here is, if contributors get mod abilities, the barrier to becoming a mod isn't really that high. Historically Pullup has considered any contribution - regardless of how complex - membership worthy. I think this could end up spawning a lot of troll mods, which can quickly kill a community.

What would you think of bringing in a bit of the StackOverflow "rank" model as well? I'm not sure exactly how you count it - # of merged PRs, # of +1s, # of lines changed, etc - but I think there could be moderation levels. People who have just started contributing to Pullup might have the ability to flag posts (or maybe they can downvote... public can only upvote?). The next tier, after maybe 3 merged PRs, can see a list of flagged items and leave notes on them. Next you can edit. And so on.


The biggest trouble here, though, is I feel like we're defining the technology first, and then the product later... That's somewhat OK, because Pullup is mostly interesting due to it's open source structure, but I'm not sure we're thinking hard enough about how that structure will affect the demographic of users...

First off - all of our user base will be in the direct network of someone who contributes to open source. Our content will likely be focused around that demographic. That's fine - I think a reddit model fits there. It might not be the best, I'm not sure - but we should think in that context.

Second, and more importantly, this model makes the assumption that people who contribute to Pullup would make good moderators. This also might be true, but I think this is a big assumption. Open source projects have admittedly had a history of hostile communities. A hostile set of moderators will kill a community before it can ever start. This might be an experiment worth running, because I could be very wrong in this, but we should be aware of that risk going in.

Ok - so that all felt very negative. That's not my intention... I think Pullup is cool, and I agree that I would like to see it come back. My intention here is just to make sure we think it through a bit more, so it doesn't flop again.

I'm still thinking on my end. I will comment more when I have more positive ideas.

qguv commented 9 years ago

@megamattron says:

I suggest we head more in the direction of a reddit model

I agree, but we should be very careful not to duplicate the functionality of Reddit or HN (or anything else). I think a main contributor to Pullup's obscurity was its attempt to fill an already-satisfied niche. Pullup started out as a HN clone, and we got a cool, stable, feature-rich site out of it quickly, but I think the most valuable asset to come out of the site is its assurance of a technically competent community. The invite system suggested above seems to take advantage of this.

Another way to leverage the competent community (and competence of future contributors) might be to encourage open-ended questions (in the Ask HN style) and original content (in the Show HN style) in addition to HN-style news or Reddit-style link discovery. Our technical community is uniquely qualified to provide technical suggestions. Unlike Stack Overflow, whose goal is to answer concrete questions about specific tasks in specific languages/frameworks/domains, we could welcome the sorts of open-ended subjective questions that SO doesn't permit. We could be known as the friendliest site around.

I think that by modifying the Reddit model a bit, we could encourage these sorts of open-ended questions.

So if you contribute some code you get to invite users, moderate/edit posts, and eventually create sub-boards (if we support them).

I love Reddit and think the model would be appropriate for Pullup, but Reddit's subreddit system isn't perfect, and I wouldn't want to clone their site anyway. This is an opportunity for us to create a system that improves on Reddit's subreddit functionality. As long as we're writing a sub-board system, we might as well fix some of Reddit's demonstrated shortcomings while we're at it.

Consider /r/camping, /r/hiking, and /r/campingandhiking for example. Where do I post a link about my sweet Appalachian Trail hammock tie-off method? or a question about trail food?

I would propose that, rather than having sub-boards, we allow users to specify multiple topics that a post applies to.

Topics

Users with sufficient privilege could create (and moderate) a "topic", like #camping or #hiking or #hammocks or #appalachian_trail. Users could subscribe to the topics they're interested in, and a user's "home page" would include any post including a topic they've selected. Each topic would have a page that aggregated posts on that topic (pullup dot io slash hiking). Topics could be moderated (see below). So far we haven't broken from the subreddit model.

The big difference is that posts can apply to multiple topics, which has neat consequences.

Comments

Post comments would be available on a single page, unifying and promoting discussion between different groups of people. Each comment would show which topic (or topics) brought the user to the post. I would expect this to create a more diverse range of opinions and answers, and it might help to prevent communities from becoming isolated. Users of the site would interact with each other whenever they share interests, which might make the community more cohesive and help the entire pullup community grow.

Comments could be rated like HN. Downvoting comments could (and should in my opinion) be an earned privilege.

Post rank

This is another area that Reddit doesn't get quite right. Rank should fall in a bounded range, rather than a number with no upper bound. A post that's ranked well with 100% of a 300-person community is different than a post that's ranked poorly with 99% of a 30k-person community, though Reddit would give each the same numeric rating. It should be easy to judge the quality of posts (to present users with the newest, best material first) regardless of topic.

There's also a difference between poor-quality and irrelevant posts, so these should be indicated differently. Users would be able to mark posts for their overall quality (vote up or down). Users could also indicate that a post is irrelevant to a certain topic (which shouldn't happen often) and perhaps add topics to a post.

Consider this post:


Novel hammock tie method I developed on the AT (82%)

❝ discuss # add topic ☒ mark irrelevant

_from qguv to #hiking, #camping, #hammocks, #appalachian_trail_

You tie the rope around the tree like this. Thoughts?


People seem to like the post for its quality, though subscribers to AT mark it irrelevant to their topic. The post is good, but the AT topic tag doesn't make sense. After a tag reaches an irrelevance threshold (normalized for number of subscribers to a tag), the tag is removed. (The "mark irrelevant" link would allow users to choose which tag/s to flag).

Perhaps a user who also subscribes to (or moderates) #knots might add the #knots topic to share it with their community.

Other thoughts

We could have a "best around" page showing posts in the top 2% or so, regardless of topic.

All the ideas above about earning privileges are good and could extend to moderation. Downvoting as a privilege sounds great.

This was typed out over a few hours based on ideas I had floating around for a while. Apologies for the wall of text and for the inevitable errors. Please please criticize.

@megamattron says:

Or even propagating a percentage of karma back up the tree to parent users - "thanking" them for the quality of user they added to the site.

Entirely unrelated to the other points, but coming from Reddit/HN this particular point feels icky. It feels wrong that earlier users get to sit back and get a cut of other people's karma. I think this would make karma less meaningful for real contributors.

Edited for grammar, links.

treygriffith commented 9 years ago

Wow, I actually just went back to visit Pullup last week because I was missing it too - what timing!

I think @josephwegner makes good points about some flaws in the model of contributor == mod, and I think @qguv has some really interesting ideas about how we can make Pullup different from the existing stuff, which I think is really interesting.

But I think something we should try to keep in mind is having the functionality of Pullup reinforce the open source model, and vice versa. The "join by pull request" was a critical component of the spirit of what Pullup is, but nothing else about the site reinforced that same notion.

I'm not saying that "join by pull request" has to stay, but I do think that whatever direction we go should be closely tied to the concept of an community-built web application/community.

I like the idea (which was brought up last year too) of Pullup being a place for projects to get worked on, since that's what Pullup itself is. One of the problems there is the lack of volume - each of us has only a couple of projects, which makes it tough to seed a community. But I still think there is something there - if we could turn Pullup into a sort of lab for projects, I think that would be pretty cool, pretty different to what's out there, and in keeping with the spirit of Pullup itself.

tl;dr - What about Pullup as an interactive Product Hunt?

swelham commented 9 years ago

Hey guys, it's been a while!

I think what @treygriffith brought back up about having somewhere to find projects would be great. I have seen many projects dry up because they couldn't find someone with the skill set needed. Having a place where people can find your project would be a first step to help eliminate this scenario.

Whilst pullup wasn't a success in terms of user activity, in my opinion it was a big success in terms of collaboration and proving how much can be achieved in such a short space of time.

Regardless of what type of site pullup might become, I think as long as there are clear goals and some minor management over functionality/issues we could make pullup (2.0 :smile:) a success.

megamattron commented 9 years ago

Lots of great ideas here, the tagging idea to automatically create communities is a fun one. Almost like flickr versus the strict hierarchical approaches that came before it. It does seem like there might be more of an ownership feeling over a sub-board that can be organized and styled as the creator felt appropriate vs a tag, but that's definitely something to think about.

My feeling is that the site worked because it had a simple and fun offer: pull request to join. And then it stalled because 1) we didn't have enough features for new members to work on, and 2) we weren't different enough from bigger sites like HN to keep people engaged.

So my guess is the main things to think about are:

Decision 1: Would we want to keep the pull request as a strict criteria for membership? It is pretty fun way to create a tighter-knit community, but perhaps is too limiting?

Decision 2: Based on decision 1, if we keep the PR requirement then we should probably go all-in on the technical community aspect. If we loosen that, then we can consider invites and tagging and sub-boards and stuff like that in order to support a larger community.

I'll keep thinking about it and see if some concrete ideas materialize.

Sort of related, have you guys seen http://tilde.club/ before? It's basically just an old school multi-user unix setup and people make their own homepages however they want. Seems simple but fun. Maybe something similar for custom user pages would be fun.

treygriffith commented 9 years ago

Another neat site along the lines of topics is https://hack.chat/

As for my feelings on the 2 points:

  1. I don't think we should keep PR as a requirement, but I do think we should keep something in the same spirit. (i.e. I think PR had some problems specific to PRs, but I don't think it was a bad concept)
  2. I actually think broadening appeal can be a bad thing, I think the main thing is something that is very engaging for the community that it serves, however small. A community with broad appeal but little activity is much worse than a tiny community, niche appeal, but very active membership.

I like technical communities. I think one of the issues with Reddit, HN, etc is that the appeal is too broad - you get a "lowest common denominator" effect.

dfjones commented 9 years ago

Hey everyone!

Glad to see some activity around pullup again! I have been missing it.

Community building is way outside my skill set, so I'm not sure I have much to contribute here other than to say this: I think the PR for membership requirement was what made pullup interesting. I'd like to see that spirit carried forward in some way. And yet, it's pretty obvious that this created a serious barrier to entry that kept the community small. Especially as more features got added to the system, it became that much more difficult to make a meaningful contribution. Still, I think it was successful in the sense that the community we have here is a good one, just small. Small is not necessarily a bad thing.

I feel like there will be some way to keep the spirit of pullup but allow for growth beyond the current community.

josephwegner commented 9 years ago

Yeah - a lot of these thoughts lingered in the back of my mind when Pullup was still active. The PR membership thing was definitely what made us interesting and attracted the initial surge of members (I do wonder if it was a gimmick effect, or truly valuable). It limited us to always being a small community, but small definitely isn't a bad thing. I actually think a lot of time small can be a great thing. Niche communities are tighter, and often have much deeper and more involved discussions than you would see in a reddit-like community.

The tricky part is there aren't a lot of good examples of small communities living/thriving on the internet. The best example I can think of is Usenet/IRC communities back in the early days of the internet.... unfortunately I'm not sure where/if communities like that exist anymore.

I guess I don't have an answer here, but more am looking for help brainstorming. What would a niche internet community have to be in order for you to consistently engage with it? Is it link sharing? Is it chat? Is it Q/A? AMA? PHPBB? Is it a service like twitter originally intended to be (small community status updates)? Is it a live stream of what we're working on, and sharing feedback on it?

Thoughts?

treygriffith commented 9 years ago

Most strong niche communities are built around a shared interest rather than a format - a niche community might have several different ways to sharing with each other (think Reddit with AskReddit, AMA, news, etc).

I think the key for us is finding what that shared interest is that brought us together in the first place. If we can correctly identify that, I'd guess there are others with a similar interest that would find the community to be a great place.

dfjones commented 9 years ago

I think @treygriffith brought up some good points.

I think an interest in open source software/code is potentially a strong shared interest. I'm not sure exactly how that can manifest itself as a new community, but ideas like literate programming or some sort of community tools on top of github come to mind. I'm imagining a place where people can have meta-conversation around code or open source projects. Something beyond the type of discussion that typically happens in github issues. People typically use issues to talk about bugs or new features, but not so much open ended discussion or commentary on a project. It might be interesting to combine this with code excerpts presented in a literate programming way. CoffeeScript seems to have put this into practice in a useful way, see this example.

qguv commented 9 years ago

Obligatory Literate Haskell mention, with an example.

qguv commented 9 years ago

@treygriffith says:

I think the key for us is finding what that shared interest is that brought us together in the first place. If we can correctly identify that, I'd guess there are others with a similar interest that would find the community to be a great place.

@dfjones says:

I feel like there will be some way to keep the spirit of pullup but allow for growth beyond the current community.

I think the surface ease of contributing to the project was an initial draw for many of us. Pullup is a live site; unlike other open-source projects with challenging bugs that can't be delegated because of their complexity, Pullup is transparent. Feature additions can be easily visualized, programmed, reviewed, and merged.

Pullup duplicates HN's functionality, but inspired rapid, competent contributors to spend their time improving it.

Can we think of a service we can provide as a webapp that can help the community? We could use this site to perpetuate the live open-source webapp experiment beyond Pullup. Membership and contribution can be decoupled, but I could see contribution as a front to moderation.

megamattron commented 9 years ago

Perhaps requests for help on an open source project, tagged with the languages the project is written in? Something like: "Help needed porting database querying UI to postgres [C++]".

Pretty far away from the "join via pull request" idea, which seems still to be at the core of what made everything fun though.

qguv commented 9 years ago

Could the webapp be a suite of post-based tools for the open-source community? There could be:

The whole site would keep the spirit of Pullup in encouraging users to "change this site via PR".

treygriffith commented 9 years ago

I can't believe I forgot this, but I started a project a couple of months ago that I could really use the help of the Pullup community on.

I posted it here: http://pullup.io/news/55c15c8128b28605004a147f

If it proves to be helpful, I can see that (helping others with their projects) being a possible direction for Pullup.

rickhanlonii commented 9 years ago

Hey all, really happy to see this kick up again.

There are a lot of really good ideas in this thread. In particular I really like the proposal @qguv made with topics, and I think that idea has a straight forward path from where we currently are.

At more of a high level, I agree with @josephwegner that the PR for membership requirement was what made Pullup interesting and I would also like to see that spirit carried forward in some way.

I think where we went wrong (and I accept blame for this) is deciding to require non-trivial pull requests in order to be a member. Since we don't have a clearly defined set of changes to make, that requirement made the on-boarding for new members just too difficult.

So I would propose that we keep the requirement to join via pull request, but allow PRs that only add yourself as a member. Then if we want to allow users to "invite" other people, then we could simply allow adding people you want to invite via PR as well.

Also, we can create a "signup" button which would create the PR for you, while still being able to market as "the site you join via pull request".

TL;DR: