
Show HN: Stack Parts - a way to find possible parts for your stack - joshu
http://stackparts.com/<p>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.<p>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.<p>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.<p>how it works: tornado, yaml, github.
======
tmcneal
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/>) :)

~~~
swaroop
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
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
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
gotcha, will add that to the todos.

------
jamesRaybould
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!

------
joshu
clickable: <http://stackparts.com/>

------
revorad
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
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
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
Based on your suggestion, we have added source control, configuration control,
and deployment tools categories.

------
runako
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.

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

~~~
runako
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
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
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
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
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
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
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
yeah. any ideas on how to measure this?

~~~
udfalkso
PageRank of project's HP?

------
kat
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.

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

------
salsakran
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
definitely on the todo list.

------
Kudos
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
You could load it into Neo4j and generate some connectivity visualizations.

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

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

~~~
joshu
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
Add cherokee under webserver. Lovely configuration, fast, flexible.

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

~~~
joshu
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
understood :) just putting it out there in an attempt to avoid dupes.

thanks joshua!

------
sogrady
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
dunno. let's see where it goes?

------
ary
Just submitted Play for Java. Great idea.

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

------
mkramlich
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
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
Speaking as someone whose web development skills are out of date, this is
great.

