<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <link type="image/x-icon" rel="icon" href="../favicon.ico">
    <link type="image/x-icon" rel="shortcut icon" href="../favicon.ico">
    <link rel="stylesheet" href="../pipe.css">
    <link rel="stylesheet" href="../sh_vim-dark.css">
    <link rel="alternate"
          type="application/rss+xml"
          title="node blog"
          href="http://feeds.feedburner.com/nodejs/123123123">
    <title>node.js</title>
  </head>

  <body class="int" id="community">
    <div id="intro" class="interior">
      <a href="/" title="Go back to the home page">
        <img id="logo" src="http://nodejs.org/images/logo.png" alt="node.js">
      </a>
    </div>

    <div id="content" class="clearfix">
      <div id="column2" class="interior">
        <ul>
          <li><a href="/" class="home">Home</a></li>
          <li><a href="/download/" class="download">Download</a></li>
          <li><a href="/about/" class="about">About</a></li>
          <li><a href="http://npmjs.org/" class="npm">npm Registry</a></li>
          <li><a href="http://nodejs.org/api/" class="docs">Docs</a></li>
          <li><a href="http://blog.nodejs.org" class="blog">Blog</a></li>
          <li><a href="/community/" class="community current">Community</a></li>
          <li><a href="/logos/" class="logos">Logos</a></li>
          <li><a href="http://jobs.nodejs.org/" class="jobs">Jobs</a></li>
        </ul>
        <p class="twitter"><a href="http://twitter.com/nodejs">@nodejs</a></p>
      </div>

      <div id="column1" class="interior">
        <p>
          Node's most valuable feature is the friendly and colorful
          community of developers. There are many places where this group
          congregates on the internet. This page attempts to highlight the
          best forums.
        </p>

        <div class="row clearfix">
          <div class="block">
            <h2 class="documentation">Documentation</h2>
            <p>
              <a href="http://nodejs.org/api">Official API docs</a> detail the
              Node API.
            </p>
            <p>
              <a href="http://nodeschool.io">NodeSchool.io</a> will teach you
              Node.js concepts via interactive command-line games.
            </p>
            <p>
              <a href=
              "http://stackoverflow.com/questions/tagged/node.js">Stack
              Overflow node.js tag</a> collects new information every day.
            </p>
            <p>
              <a href="http://docs.nodejitsu.com/">docs.nodejitsu.com</a>
              answers many of the common problems people come across.
            </p>
            <p>
              <a href="http://howtonode.org/">How To Node</a> has a growing
              number of useful tutorials.
            </p>
          </div>

          <div class="block">
            <h2 class="github">GitHub</h2>
            <p>
              All development takes place at
              <a href="http://github.com/joyent/node"
              >github.com/joyent/node</a>. This is where discussion
              regarding core development occurs.
            </p>
            <p>If you are interested in contributing to Node.js, please
              first read the <a
              href="https://github.com/joyent/node/blob/master/CONTRIBUTING.md#readme">contribution
              guide</a>.
            </p>
          </div>
        </div>

        <div class="row clearfix">
          <div class="block">
            <h2 class="mailing">Discussion</h2>
            <p>
              The <a href="http://groups.google.com/group/nodejs">mailing
              list</a> is used for announcements and discussion about Node.
            </p>
            <p>
              The <a href="https://github.com/joyent/node/issues">github
              issues list</a> is the place for discussion of Node.js core
              features
            </p>
            <p>
              Many <a href="https://github.com/joyent/node/wiki/Node-Users">Node
              users</a> are active on <a href="https://twitter.com/">Twitter</a>
              as well.
            </p>
          </div>

          <div class="block">
            <h2 class="periodicals">Periodicals</h2>
            <p>
              <a href="http://nodeweekly.com/">Node.js Weekly</a> is an email
              list that gathers up the latest events and news from around the
              Node.js community.
            </p>
            <p>
              <a href="http://planetnodejs.com">Planet Node</a> is an
              aggregator of Node developer blogs.
            </p>
            <p>
              <a href="http://nodeup.com/">NodeUp</a> is a podcast covering
              the latest Node news in the community.
            </p>

            <p>
              <a href="http://nodejsreactions.tumblr.com">NodeJS Reactions</a>
              captures the Node.js experience in the form of animated GIFs.
            </p>
          </div>
        </div>

        <div class="row clearfix">
          <div class="block">
            <h2 class="conferences">Real Life Events</h2>
            <p>
              <a href="http://nodemeatspace.com/">Node Meatspace</a> is a
              webpage listing upcoming meetups and events in different
              places.
            </p>

            <p>
              <a href="http://www.nodeconf.com/">NodeConf</a> conferences are
              the main event in the United States; they are organized by
              <a href="http://www.mikealrogers.com/">Mikeal Rogers</a>.
            </p>

            <p>
              <a href="http://nodeconfeu.com/">NodeConf EU</a> is a Node
              conference in Europe, organized by Cian O'Maiden.
            </p>

            <p>
              <a href="http://nodefest.jp/">NodeFest (東京Node学園祭)</a> is
              organized by the <a href="http://nodejs.jp">Node.js Japan user
              group</a>.
            </p>

            <p>
              <a href="http://nodecamp.de/">NodeCamp.de</a> in Cologne,
              Germany is organized by <a href="railslove.de">Rails Love</a>.
            </p>

            <p>
              An <a href="http://nodejsconf.it/">Italian Node.js
              Conference</a> exists as well.
            </p>

            <p>
              <a href="http://nodesummit.com/">Node Summit</a> is a conference
              in San Francisco focusing on the adoption of Node in larger
              companies.
            </p>

            <p>
              <a href="http://jsconf.com/">JSConf</a> organizes the main
              JavaScript conferences.
            </p>
          </div>

          <div class="block">
            <h2 class="localized">Localized Sites</h2>
            <p>
              <code>nodejs.org</code> does not maintain any translations into
              other languages. However there are community websites in various
              languages with mailing lists and translations of the website.
            </p>
            <p>
              <a class="australia" href="http://nodejs.org.au/">nodejs.org.au</a> Australian Node.js blog &amp; developers listing<br>
              <a class="brasil" href="http://www.nodebr.com/">NodeBR.com</a> Brazilian community of Node.js<br>
              <a class="china" href="http://cnodejs.org">CNodeJS.org</a> Chinese community<br>
              <a class="france" href="https://plus.google.com/communities/113346206415381691435">FR . Node.js</a> Google+ Community of Node.js French users<br>
              <a class="hong-kong" href="http://nodejs.hk">HKNoJ</a> Hong Kong community<br>
              <a class="iran" href="http://nodejs.ir">nodejs.ir</a> Iran group in Persian<br>
              <a class="israel" href="http://nodejs.co.il">nodejs.co.il</a> Israeli wiki<br>
              <a class="japan" href="http://nodejs.jp/">nodejs.jp</a> Japan user group<br>
              <a class="korea" href="http://nodejskr.org">OctoberSkyJs</a> Korea Node.js community<br>
              <a class="new-zealand" href="http://nodejs.geek.nz/">nodejs.geek.nz</a> Node.js site for Kiwis<br>
              <a class="russia" href="http://nodejs.ru/">nodejs.ru</a> Russian blog.<br>
              <a class="serbia" href="http://nodejs.rs/">nodejs.rs</a> Serbian Node.js community website
              <a class="spain" href="http://nodehispano.com">Node Hispano</a> Spanish language community<br>
              <a class="spain" href="http://www.nodejs.es">Node.js Español</a> Node.js in Spanish<br>
              <a class="taiwain" href="http://nodejs.tw">nodejs.tw</a> Taiwan community<br>
              <a class="turkey" href="http://www.nodejstr.com/">Node.js Türkiye</a> Node.js in Turkish<br>
              <a class="vietnam" href="http://nodejs.vn/">Node.js Viet Nam</a> Node.js in Vietnamese<br>
            </p>
          </div>
        </div>

        <div class="row clearfix">
          <div class="block">
            <h2 class="irc">IRC</h2>
            <p>
              For real-time chat about Node development go to
              <code>irc.freenode.net</code> in the <code>#node.js</code>
              channel with an <a href="http://www.mirc.com">IRC</a>
              <a href="http://colloquy.info/">client</a> or connect in your web
              browser to the channel using
              <a href="http://webchat.freenode.net/?channels=node.js">
              freenode's WebChat</a>.
            </p>
          </div>
        </div>

        <p>
          <a href="http://notinventedhe.re/on/2011-7-26">
            <img src="http://nodejs.org/images/not-invented-here.png" width="100%">
          </a>
        </p>
      </div>
    </div>

    <div id="footer">
      <a href="http://joyent.com" class="joyent-logo">Joyent</a>
      <ul class="clearfix">
        <li><a href="/">Node.js</a></li>
        <li><a href="/download/">Download</a></li>
        <li><a href="/about/">About</a></li>
        <li><a href="http://npmjs.org/">npm Registry</a></li>
        <li><a href="http://nodejs.org/api/">Docs</a></li>
        <li><a href="http://blog.nodejs.org">Blog</a></li>
        <li><a href="/community/">Community</a></li>
        <li><a href="/logos/">Logos</a></li>
        <li><a href="http://jobs.nodejs.org/">Jobs</a></li>
        <li><a href="http://twitter.com/nodejs" class="twitter">@nodejs</a></li>
      </ul>

      <p>
        Copyright <a href="http://joyent.com/">Joyent, Inc</a>, Node.js is a
        <a href="/trademark-policy.pdf">trademark</a> of Joyent, Inc. View
        <a href="https://raw.github.com/joyent/node/__VERSION__/LICENSE">license</a>.
      </p>
    </div>

    <script type="text/javascript">
      window._gaq = [['_setAccount', 'UA-10874194-2'], ['_trackPageview']];
      (function(d, t) {
        var g = d.createElement(t),
            s = d.getElementsByTagName(t)[0];
        g.src = '//www.google-analytics.com/ga.js';
        s.parentNode.insertBefore(g, s);
      }(document, 'script'));
    </script>
  </body>
</html>
