A história de como o projeto do We.js se transformou em um framework javascript.

O inícioLink to this heading

Em 2013 eu, Thiago Petra, Antônio Cordeiro e Rodrigo Vieira realizamos uma roda de conversa online no sábado para trocar algumas idéias sobre redes sociais na internet.

Em um certo momento da conversa o Antônio fez a brincadeira:

Temos que inverter o M, mudar o Me (meu) pelo We (nosso) …

A ideia inicial era criar sistemas com um fluxo de informações descentralizado onde o usuário poderia ser o dono dos seus dados.

Após essa conversa eu iniciei uma pesquisa em busca de tecnologias para criar projetos com essa lógica e algumas tecnologias que testei são: Elgg, Buddypress, Drupal Commons, Django, Synfony e Node.js.

Ainda em 2013 eu fui no evento FISL e vi que o node.js era uma tecnologia promissora selecionando ela para ser a base para o We.js.

Depois do FISL realizei alguns testes com compound.js, Meam e sails.js escolhendo o Sails.js como framework base para a v0.1.0.

Versão 0.1.xLink to this heading

A v0.1.0 do We.js era focada em redes sociais, com formato de Single Page Application (SPA) e com um grande uso do pub/sub do Sails.js para permitir a atualização em tempo real dos conteúdos do sistema mas na prática o pub/sub foi um recurso pouco utilizado nos projetos

Um pouco depois o We.js foi selecionado para ser a tecnologia usada nos novos projetos da Comunidade de Práticas os sistemas de oauth e banco social de relatos com uma estrutura de serviços interligados

Versão 0.2.xLink to this heading

Para melhorar a parte de cliente ( Ember.js ) do sistema realizamos a primeira grande atualização do We.js reorganizando o sistema e adicionando um modulo de plugins, o we-plugin como hook do Sails.js que permitia “plugar” outros modulos e recursos salvos em outros projetos npm.

Cada plugin possuía a sua parte do servidor e cliente usando o grunt para montar e preparar os arquivos de cliente.

Versão 0.3.xLink to this heading

Após mais 1 ano de uso dos sistemas com a v0.2.x e algumas análises percebi que o faltava mais suporte de recursos para bancos de dados relacionais e que o sistema poderia tem um processo de request mais dividido com etapas de carregamento do contexto, verificação de acesso, processamento dos dados e tipos de respostas customizadas.

Implementamos o recurso de tipos de respostas customizadas permitindo enviar a mesma informação com muitos formatos diferentes e para ter uma maior acessibilidade adicionei o tipo de resposta em HTML como o padrão do sistema.

O tipo de resposta em HTML funcionou tão bem que adicionei os recursos de layout, regiões e widgets (blocos) e também foi possível criar um plugin de formulários que gera formulários usando JSON ou os atributos dos models

Entre muitos recursos novos o grande avanço foi que o We.js deixou de ser focado em apenas redes sociais para ser uma ferramenta completa funcional para qualquer projeto.

Versão 1.x +Link to this heading

Hoje temos o gerador de projetos pre desenvolvidos ( distribuições ) de blog/sites, portais de conferências e redes sociais permitindo a criação desses projetos com poucos comandos reutilizando módulos e reduzindo muito o custo de sistemas com Node.js.

Com o recurso de tipos de respostas customizadas podemos reusar os dados do sistema criando novas visualizações ou SPAs

E hoje o We.js framework atende aos meus projetos de sistemas dinâmicos com uma eficiência muito grande.

E um agradecimento especial para todas as pessoas que já ajudaram o projeto, Obrigado!