Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Features of the MVP #1

Open
madc opened this issue Mar 14, 2018 · 16 comments
Open

Features of the MVP #1

madc opened this issue Mar 14, 2018 · 16 comments

Comments

@madc
Copy link
Contributor

madc commented Mar 14, 2018

This issue is meant to collect all ideas for the first MPV of this project. A backlog can be found here. Please discuss ideas below and I'll try to keep up and summarize here. Let's get crazy.

We want to build a hackernews-like community for creative coding. Over time it shall evolve and include features dedicated to creative coding.

Features (MVP)

  • User registration/authentication
  • User roles (user, moderator)
  • Submitting links
  • Upvoting/Flaging submitted links
  • Ranking algorithm by upvotes and freshness (combined score)

Non-Features

(Maybe) Future-Features

  • taxonomies (open source, installation, ...)
  • 'if this link has been submitted before, just bump the original post'
  • live-preview that plays on mouseover (either original sketch or .gifv)
  • screenshots scraped automatically
  • multiple links per entry (site + supporting stuff, like github repo)
  • grabbing meta tags when appropriate (Github Tags, etc)
  • constant checking of links 404'ing by a bot
  • auto-submit any links to web archive
  • auto-submit any links to ipfs pinning service
@jedahan
Copy link

jedahan commented Mar 14, 2018

Let's get crazy

k

  • live-preview that plays on mouseover (either original sketch or .gifv)
  • screenshots scraped automatically
  • multiple links per entry (site + supporting stuff, like github repo)
  • grabbing meta tags when appropriate
  • constant checking of links 404'ing by a bot
  • auto-submit any links to web archive
  • auto-submit any links to ipfs pinning service

@jedahan
Copy link

jedahan commented Mar 14, 2018

  • different views for people, projects, and homepages
  • linked jazz-like view for people, projects, places https://linkedjazz.org/
  • map view of people

@jedahan
Copy link

jedahan commented Mar 14, 2018

  • some sort of 'if this link has been submitted before, just bump the original post'

@mgottholsen
Copy link

I'd love to see some sort of indicator, badge etc for taxonomies around the project. Is it open source, does it use a certain language, does it use common methods like project mapping, touch, is it a tutorial, installation, etc. This would allow for some pretty quick slicing & filtering of types of submissions.

@jedahan
Copy link

jedahan commented Mar 14, 2018

  • if a project has a github url, we can populate tags with the 'topics' repository info

@floer32
Copy link

floer32 commented Mar 15, 2018

my mvp scope thoughts

Hey all. Exciting energy and ideas here!

For me, an MVP has the emphasis on M, minimal. I am excited about multimedia features as well but I think they come later.

Of course, the smallest scope would be to just create a subreddit, or to throw a Discourse server up somewhere. But from these two threads I gather we all believe there's something more differentiated we could build, and that it could help organize an interesting community.

So let's see if I can articulate some ways this might be differentiated, even in its minimal starting form.

The differences vs. 'just create a subreddit' are:

  • We want to add multimedia features, yes bigger than little thumbnails but also hopefully 🤞 unique things like @jedahan mentioned.
  • Avoid the distraction of other subreddits on the same site

The differences vs. 'a private Facebook group' - worth mentioning because a couple years ago, I was part of some great small communities there, that focused on creative-digital-stuff -

  • Many folks don't have Facebook - I don't anymore - and it drains inspiration from me, does not inspire
  • Not stuck using big corporate Attention Economy giant
  • While FB has multimedia features, we can tailor ours, and we can add features that make sense for the coding part of creative-coding, over time

The difference vs. something like a Discourse server or other forum:

  • Those tend to be more about Q&A and more 'talky.' That's great, but in thinking of something like "HN for creative coding" - which seems to be a touchstone for all of us - that's a different kind of conversation. It's more leaned towards "show and tell" plus, "I think this is worth everyone's attention," and an upvote takes on a certain meaning when you have one front page. (Bit more curational than a forum)
  • In short something like HN can reward shorter both short skims of attention, AND longer sifts through or conversations... while still inspiring a community, and stimulating various conversations

Maybe that helps articulate some of the potential differentiation here, but also how a minimal site with a niche community can have a lot to offer.

Some good references for how this can work out even at a minimal starting point:

So if we agree that a minimal site can be a starting point, and that the HN clone is a good model... then we must ask, what is the minimal set of features for an HN clone? My take:

  • Some users/authentication so it's not open to spam (and so moderators can ban spammers)
  • Submitting things
  • Ranking by upvotes and freshness (combined score)
  • Could be deferred to version n+0.1: Comments/ threaded discussion.

I say the last part is optional just because I could see the front page being shipped, before the comments/threaded discussion part is shipped.

I think the final product will not look like a HN clone. I agree with @terkelg that it would probably be more like dev.to, but of course not just like that either.

So there's some product thoughts.

@floer32
Copy link

floer32 commented Mar 15, 2018

my thoughts about organization & roles

I think we also need to think about organizational roles. Open source is a great model for growing a project, but many projects get started by some core contributors who take on some pretty definite roles. I personally think this is pretty necessary because "design by committee" is wrought with problems.

And with something like this - a web application - we want to have a "big tent" for who's going to join in on discussing, ideating, and prototyping ideas; but we need to have core contributors who are also maintainers, who decide what they want to let into the feature set and support. We'll eventually need moderators too who will need to have a say in what features fit (at the given time), because they'll be impacted too.

I'd like to volunteer for a first stab at an MVP of the backend. I have a lot of research/planning done already, based on the line of thinking in my comment just above. If anybody else is interested on backend we should have 1:1 convos on Gitter for now probably? To keep momentum until we get Something Working.

I'm comfortable with full stack, but I'm not a front end champion. I know @terkelg is comfortable on the front end, albeit really busy with work. We were thinking React is a good general idea, possibly preferring Preact. I have a friend who is interested in helping on the front end too, and has a lot of time on his hands as he is just out of coding bootcamp and looking for portfolio projects before he gets full time somewhere. React/Preact is his preference as well for what it's worth

Anybody else interested in helping on front end?


I'm taking it for granted, by the way, that backend and frontend will be decoupled and talk over a REST API. Hopefully we can all agree about that 😀


Another front end thought. I was going to spin up https://hnpwa.com/ locally then change it to talk to my backend's API, as a rough "test driven" / "behavior driven development" way to proceed: make the failing front end, then fill out features. It will keep me on track. But incidentally yeah https://hnpwa.com/ has a bunch HN-clone implementations using various front end tools... Among them there are 1+ React ones, and a Preact one. Could be used as reference implementations, or could be forked as a way to get things going quickly.

@terkelg
Copy link

terkelg commented Mar 16, 2018

I love open source! This reminds me of how ProductHunt started.
I agree with @hangtwenty when it come to organisation and roles. I think that's the way to go to speed things up. I'm currently super busy myself and not able to contribute with a leading role right at the moment.

@madc
Copy link
Contributor Author

madc commented Mar 16, 2018

Thank you for going that much into detail, @hangtwenty. I think you have done a great job in outlining what the project should be and much more important, what functionality the MVP should contain. I tried to filter your comment into separate items and added them to the feature list. (I'll go through the future-feature requests later today.)


Here is my take on the subject

I've been suggesting a HN-like list because I think, they are doing a really good job at keeping the thing simple. Sure, there are lots of hidden features and mechanisms. As a user the possibilities are quite limited and the UI is simple (yes, and ugly). It started out very basic and involved into what is is today and that's the part I want to copy.

The idea of having something like this in the creative coding community has been in my head for quite some time. What I see is not another clone, it is a project solving a similar problem for a completely different audience. Saying that, I think we all can agree, that the feature set of our list will differ very quickly.

About the open source approach: There are different reasons to open source a project. In our case, I see that this list is build to serve a very specific purpose, I do not see us building a generic product, that then can be used by i.e. architects to collect their stuff. The reason for us to open source it must be, so many people can participate in building the creative coding list. No focus on reuseabillity (is this a word?).


I agree on @hangtwenty initial feature. Even tough I'd loved to have the discussions in an initial release, it makes sense to publish a first alpha as soon as possible.

Splitting the project into backend (API) and frontend (Client) is definitely the right way to go. Part of my job involves building React (&-Native) apps, so I might be useful on the client. I'd suggest a meetup on the gitter-chat to sort stuff out. My experience in organizing meetings over multiple timezones (me=UTC +1) is limited, so open for suggestions.

Proposed agenda for this meetup:

  • Finalize initial features
  • Backend (API) dev stack
  • Frontend (Client) dev stack
  • Dev team roles
  • Hosting & domain

xoxo

@floer32
Copy link

floer32 commented Mar 16, 2018

🍻🎉


regarding the comments/discussion feature

btw @madc Only reason I said discussion might be n+1 release... is that Disqus - as an off the shelf option - has ad tracking... And cool options like https://utteranc.es don't exactly fit. So we are probably doing our own feature in our own DB

It's not a terribly hard feature! But I'd like to get it mostly-right the first time, so we don't have a tricky DB migration if we have to really change it (also don't accidentally lose comments or discussion)

@floer32
Copy link

floer32 commented Mar 16, 2018

update sorry I guess meetingbird doesn't work how I thought it was trying to set up 1:1 meetings. let me find another tool

OK I guess Doodle actually has what I was looking for it was just a counterintuitive UI. Make sure you use the "Calendar" view. https://doodle.com/poll/e2qessw3twudeiks#calendar

update we are all just meeting on gitter now and communicating async

@madc
Copy link
Contributor Author

madc commented Mar 16, 2018

I wouldn't want to rely on a third party service for an important part such as comments. It it allows us to launch earlier and gives us more time to figure out what we want in the comments-feature I'm all for it.

I added my times to the doodle poll.

@floer32
Copy link

floer32 commented Mar 16, 2018

Just realized Doodle isn't very timezone friendly, was hoping it would display in your timezone too. Sorry about that @madc, maybe we'll try whenisgood.net next time, it seemed clunky but I'm realizing ALL of these are clunky haha

update we are all just meeting on gitter now and communicating async

@floer32
Copy link

floer32 commented Mar 16, 2018

Have times for @madc and @terkelg and we have 1 overlapping time so far, 11PM-12AM PST. (And my friend @Colortear will join whatever slot works for PST time.)

Unfortunately that's 2AM EST! So probably not good for @jedahan or @mgottholsen . Hmm

Maybe we should keep discussing asynchronously on GitHub and Gitter

@madc
Copy link
Contributor Author

madc commented Mar 17, 2018

Times are shown in my timezone, so that works great. I Added an additional slot on Tuesday, maybe we try and have a kickoff meeting then?

@floer32
Copy link

floer32 commented Mar 17, 2018

BTW madc really well put:

[HN] started out very basic and [e]volved into what is is today and that's the part I want to copy.

spot on!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants