CommonJS é um projeto com o objetivo de especificar um ecossistema para JavaScript do outro lado do navegador (no lado do servidor, por exemplo um server-side ou então para aplicações desktop nativas). O projeto foi iniciado por Kevin Dangoor em Janeiro de 2009 e foi inicialmente chamado de ServerJS.[1]
“ | O que eu estou descrevendo aqui não é um problema técnico. Isso é uma proposta para que as pessoas iniciem e façam uma decisão para evoluirmos juntos e começarmos a construir algo maior e mais fácil. | ” |
— Kevin Dangoor[1] |
Em agosto de 2009, o projeto foi renomeado para CommonJS para demonstrar a ampla aplicabilidade da especificação proposta, uma API.[2] A especificação foi criada com uma proposta Open Source e foi votada em um processo de mailinglist. A especificação é somente considerada finalizada depois de ter sido implementada por diversas implementações da CommonsJS.[3] O projeto CommonJS não está afiliado com o grupo TC39 Ecma International, que vem trabalhando na especificação do ECMAScript, mas alguns membros do TC39 participam deste projeto.[4]
Document Object Model (DOM): um web browser client-side application programming interface (API) normalmente disponível em JavaScript