Um ecossistema é uma língua mais o seu registro de pacotes: como o SpikeMe lê seu manifesto e de onde ele puxa os fatos vivos. Cada um é um pequeno adaptador, então a lista cresce por demanda.
Suportados hoje
O SpikeMe suporta três ecossistemas hoje:
- JavaScript/TypeScript via npm, lido do
package.json. - Python via PyPI, lido do
pyproject.tomlou dorequirements.txt. - Go via módulos Go, lido do
go.mod.
Por exemplo, um projeto Python aponta o SpikeMe para o seu pyproject.toml:
[project]
dependencies = [
"fastapi>=0.115",
"sqlalchemy>=2.0",
"pydantic>=2.9",
]
Um projeto Go aponta para o seu go.mod, de onde o SpikeMe lê o módulo, a
versão do Go e as diretivas require (as marcadas // indirect são
dependências transitivas):
module github.com/acme/api
go 1.23
require (
github.com/gin-gonic/gin v1.10.0
gorm.io/gorm v1.25.12
go.uber.org/zap v1.27.0
golang.org/x/sys v0.28.0 // indirect
)
O que o SpikeMe entende
O SpikeMe não lê só uma lista solta de nomes. Ele parseia suas dependências de runtime e de dev e as categoriza:
- npm: cerca de 90 pacotes em categorias como framework, meta-framework, estado, data-fetching, testes, e2e, UI e backend.
- Python: cerca de 55 pacotes em categorias como web framework, async/ASGI, ORM e banco de dados, validação, cliente HTTP, filas e tarefas, dados e ML, CLI, testes e qualidade.
- Go: pacotes curados em categorias como web, banco de dados e ORM, CLI, config, logging e testes.
A partir dessa visão categorizada ele detecta lacunas: categorias para as quais sua stack não tem pacote. Um projeto com web framework mas sem lib de testes tem uma lacuna de testes, e o SpikeMe transforma cada lacuna em um tema de spike sugerido.
O trabalho de verdade por trás disso é a curadoria. Para cada categoria, o SpikeMe acompanha os principais pacotes, então, quando nomeia candidatos, o documento fica específico às opções reais e atuais em vez de conselho genérico.
Fatos vivos por ecossistema
Cada ecossistema sabe onde coletar os fatos vivos que ancoram um spike. As fontes não são simétricas, porque cada registro expõe dados diferentes:
- npm: o npm registry (versão, licença), o npm downloads (downloads/semana) e o bundlephobia (tamanho de bundle em gzip).
- Python: o PyPI (versão, licença) e o pypistats (downloads/semana).
- Go: o deps.dev (versão, licença).
O Python não tem fonte de tamanho de bundle, então um spike de Python se apoia em versão, licença e números de download. O Go não expõe uma contagem pública de downloads semanais nem tamanho de bundle, então um spike de Go se ancora em versão e licença — a ausência de downloads é esperada, não um bug. Veja Gerando spikes para como esses fatos são injetados no documento.
Adicionando ecossistemas
Por baixo dos panos, cada ecossistema é um adaptador (parser de manifesto, fonte de fatos): uma parte que lê o manifesto e categoriza as dependências, outra que
coleta os fatos vivos do registro. Adicionar um ecossistema novo é escrever esse
par e curar os principais pacotes por categoria.
Ecossistemas novos (Rust, Java, PHP, Ruby) são adicionados por demanda. Na página inicial você escolhe um ecossistema para ser avisado quando abrir, e a ordem de construção vem direto dessa waitlist: quanto mais demanda um ecossistema recebe, mais cedo ele chega.