Show HN: Stack Parts - a way to find possible parts for your stack

82 points by joshu 14 years ago

http://stackparts.com/

so, when i worked at google there was a great internal webpage that listed all the various parts and systems one could use to build something. i've always wanted something like that for the real world, so here it is.

the idea is basically to index widely used and good stack parts so that people can figure out what they need to build their applications.

this is still very rough. we're still working on figuring out the metadata, how to display it, and how to link it. in addition, some of the metadata is wrong as we evolve how to describe things.

how it works: tornado, yaml, github.

tmcneal 14 years ago

I can see the value in something like this, especially for more novice web developers who may not know the terms to search for in Google or StackOverflow to find what they need.

I understand it's rough, but here are something of the things I was expecting to see while I was browsing around:

- Some "category" pages, like dbm, are missing definitions. It would be great if definitions were present on every category page.

- I really like that some category pages include a curated list of articles that compare the different options within this class of products. This is exactly what I search for when researching new technologies.

- It'd be nice to have links to the Stackoverflow "tag" page on individual technology pages. For example, the MySQL page could link to this: http://stackoverflow.com/questions/tagged/mysql

I could also see this information being shown in a more visual way. It'd be pretty interesting to allow companies to create an account and build a profile of what their web stack looks like. Maybe something similar to how GuitarGeek.com shows the rigs of famous guitarists? I'd be willing to bet that most web stacks would look more like Eddie Van Halen's setup (http://guitargeek.com/rigview/258/) rather than Angus Young's (http://guitargeek.com/rigview/312/) :)

  • joshu 14 years ago

    yeah. although the main issue here is that the set of possible stacks ends up being a graph, so that's harder to represent. so it is difficult.

    i bet the vast majority of stacks are still LAMP... but i agree with everything else.

  • swaroop 14 years ago

    We have added definitions to most of the category pages, please let us know your feedback.

    Thanks for all your suggestions, will follow up on the rest of the suggestions!

tuxella 14 years ago

To me it seems it's a great idea that may save time looking for alternatives to a technology from its name.

Still, I think the most valuable part this site may add is the very notion of stack: what vertical choices work well together. For example would you or could you rather combine C# and MySQL or Python, Django and MySQL for a given context (scalability, criticity, developers profile ...)

senko 14 years ago

Would love to see it as a map/graph, where parts that "go together" (or are often used together) being linked. It'd probably be tricky to find the right threshold, but the result would be really useful (and fun to see).

  • joshu 14 years ago

    gotcha, will add that to the todos.

jamesRaybould 14 years ago

One small point - I found it quite hard to read. When I first saw it I assumed it was just some type of tag cloud until I realised that the link on the left is the category.

Also any plans for having it so that I can start with a language, get a list of data-stores that can talk to my chosen language, then get a list of web-servers and so on until I've chosen my stack. Then building on this it would be great if I could get all the API's for the chosen stack!

Thanks for the great little tool!

revorad 14 years ago

Awesome! I would love to see a "this is my stack" tool: let people choose parts (maybe in an easy click and drag way) to show their complete stack. With a few stack data points, you could have templates, which users can start with and tweak to show their exact stack.

shogunmike 14 years ago

This is a great tool. I can see this being extremely useful.

Have you considered including a set of metrics which measure the maturity and status of each project? How about listing noteworthy uses in production? Also, recency and quantity of commits, bug fixes etc.

If things go wrong (and they invariably do), I can sleep safer at night knowing that there is a thriving community behind the project, which can provide guidance on any issues.

Admittedly what I have suggested presents some UI difficulties, at least on the home page. It would also need to be updated quite frequently. That could be partially automated by pinging public version control servers, for instance.

Still, a great job. Looking forward to seeing how it progresses.

Joakal 14 years ago

It might be a good idea to tag the age of articles because some may be complaints or has missing features that would get resolved.

Also, no Source Control (Git/SVN/etc) or Configuration Control (Chef/Puppet/etc)?

  • swaroop 14 years ago

    Based on your suggestion, we have added source control, configuration control, and deployment tools categories.

runako 14 years ago

Interesting idea. Suggestion: sort the categories at the top by how likely a project is to need/use them. Without getting into religious arguments, I think a fair example would be "language" and "webserver" should sort higher than "graph-store" and "mapreduce".

Also might be a good idea to define the categories for newbies. Most of the categories will need explanation for newbies.

Cool idea, though. I used to use jakarta.apache.org for a similar purpose.

  • joshu 14 years ago

    good idea.

  • swaroop 14 years ago

    We have roughly sorted the categories from bottom to top stack order, let us know your feedback :)

    • runako 14 years ago

      I can see that it's sorted now, but I don't think I explained my intention well before. What I meant was the order should be something like:

      - language

      - sql

      - webserver

      - webframework

      - sourcecontrol

      ...

      - stuff most people don't use on their projects, like mapreduce and graph-store

      Also, the tooltip definitions are helpful but it's not obvious that they are there. I only knew they were there because you said so here. :-)

      Good luck!

rohit89 14 years ago

This is great stuff. This could end up like a wikipedia for web developers. I've been wanting to do something like this for myself. With all the options available out there, its much easier to process when everything is organized.

Interesting that google had this as an internal webpage. I wonder what other really useful tools companies use that could benefit us if it were public.

caludio 14 years ago

We could merge our efforts, someway. I provide some projects' metadata (along their history) via http://appdate.it . It's really a rough job to do... mostly web page scraping, because a structured way to present those informations does not exist and if it would exist, well, it should be embraced by each project.

sixtofour 14 years ago

Great.

I'd suggest arranging the categories in a rough data flow, so webserver would be near the "outside" (top?), wsqi inside that, frameworks inside that.

wsgi might become part of a larger cgi-ish category: app container? app connector? You'd include fcgi and the various php equivalents in there; maybe subcategories.

Debatable: firewalls? Virtual environments like virtualenv and whatever the other guys use.

  • swaroop 14 years ago

    We have roughly sorted the categories from bottom to top stack order, let us know your feedback :)

    We have added environment managers as a category (virtualenv, rvm, rbenv, bundler)

mbijon 14 years ago

There aren't many stand-alone ORMs with last-gen frameworks, but they're increasingly important for noSQL. Would you add an ORM category?

Also, you could avoid the spatial UI problems nesting may cause if there's a tooltip with meta data & links on rollover.

tomx 14 years ago

Nice idea.

Could you include an approximation of each components popularity or longevity?

This would allow people to know if they are picking mainstream or more obscure/specialised/enterprise/unstable/etc components.

  • joshu 14 years ago

    yeah. any ideas on how to measure this?

    • udfalkso 14 years ago

      PageRank of project's HP?

    • apu 14 years ago

      google trends/search traffic

kat 14 years ago

Cool idea! Definitely makes research a lot easier! Any reason why CSS isn`t on the list of languages? My web stack in the past has included CSS pre-processers, like LESS and Sass.

  • joshu 14 years ago

    no reason, just need to build it.

  • mmalik 14 years ago

    +1, this site is incredibly helpful for someone like myself

  • swaroop 14 years ago

    Based on your suggestion, we have added the CSS category (lesscss, scss).

salsakran 14 years ago

Awesome! Been wanting to build something like this for a while. One of the things the might be useful is the notion of which components of a stack are the most mature.

  • joshu 14 years ago

    definitely on the todo list.

Kudos 14 years ago

What I would be more interested is interconnectivity between these elements of the stack, which rdbms have an API for the language I have selected for example.

  • espeed 14 years ago

    You could load it into Neo4j and generate some connectivity visualizations.

forestbond 14 years ago

ohloh.net has a "stacks" feature that crowd-sources this kind of information. It would be neat to tie these together.

orthecreedence 14 years ago

I noticed there is no Common Lisp or Scheme. Both are great languages for apps/web.

  • joshu 14 years ago

    no judgements, i just don't know the space very well so i didn't do it yet.

    i should write up the file format so people who are so minded can just send me a file to upload.

heisenmink 14 years ago

Add cherokee under webserver. Lovely configuration, fast, flexible.

  • sparky 14 years ago

    submitted the form. hasn't showed up on the homepage yet.

    • joshu 14 years ago

      doesn't happen automatically. we have a bunch of work to do to make that happen. just goes to google docs for now.

      the implementation is the absolutely simplest we could come up with.

      • sparky 14 years ago

        understood :) just putting it out there in an attempt to avoid dupes.

        thanks joshua!

sogrady 14 years ago

i'm interested. are you going to track the results over time? and/or metrics around usage?

i'd be interested in all of the above.

  • joshu 14 years ago

    dunno. let's see where it goes?

ary 14 years ago

Just submitted Play for Java. Great idea.

  • joshu 14 years ago

    thank you. i'll process submissions at some point.

mkramlich 14 years ago

I maintain something like this personally, in the form of private structured notes, and I know other engineers that do as well. Except we go beyond listing all possible things that can fit into a given category, into instead making quality and suitability judgments about them. What's "best" or the no-brainer/default for a given role, either in the general case or in various special cases. It's a very useful professional technique.

To wit, I generated the following page from my structured notes, and added it to my public website, a few weeks ago:

http://synisma.com/comp_dump/gototech.html

  • 0x12 14 years ago

    I like that page, thank you for setting it up. Now I wonder what the 'rest of us' are using, it would be great to see this same list with a larger number of people and what their reasons for picking one technology over another in the same segment are.

    That could probably ignite the flamewar thread of the century.

georgieporgie 14 years ago

Speaking as someone whose web development skills are out of date, this is great.