FreakJS is a minimal frontend framework built on Bun, designed to simplify web development with zero runtime npm dependencies. It leverages file-based routing for intuitive navigation and supports Server-Side Rendering (SSR) along with Edge Functions for efficient performance.
Key Features:
Zero Runtime Dependencies: Built without npm runtime dependencies, ensuring enhanced security and reduced supply-chain risks.
File-Based Routing: Automatically maps files in the src/pages directory to routes, simplifying navigation and reducing configuration overhead.
SSR + Edge Functions: Combines Server-Side Rendering for SEO-friendly pages with Edge Functions for fast, dynamic content delivery.
Free Deployment: Outputs natively compatible builds for platforms like Vercel, Netlify, and Cloudflare Pages, enabling free deployment without backend costs.
TypeScript Support: Ships with TypeScript out of the box, ensuring robust code quality and developer productivity.
Audience & Benefit:
Ideal for developers seeking a minimalistic framework without npm dependency risks. FreakJS provides secure, performant web development with built-in support for modern tools like Vercel and Netlify, enabling cost-effective scaling and seamless integration into existing workflows.
FreakJS can be installed via winget, making it easy to integrate into your development environment.
README
FreakJS
Bun-native frontend framework. Zero runtime dependencies. Edge-ready. Free to deploy.
FreakJS é um framework frontend minimalista e seguro, construído sobre Bun e W3C Web APIs. Sem risco de supply-chain do npm. Sem arquivos de configuração complexos. Deploy gratuito na Vercel, Netlify e Cloudflare Pages — sem backend.
Por que FreakJS?
O benchmark de tokens
Um teste real mediu quantos tokens do Claude Sonnet um modelo consome para montar um frontend completo a partir de um único prompt:
Framework
Tokens consumidos
Precisa de servidor
NestJS
~1.100.000
Sim
Next.js / Vite
~900.000
Não
Rails
~300.000
Sim
FreakJS
< Rails
Não
Rails ganhou em tokens por ter convenções rígidas e superfície de API previsível. O FreakJS usa a mesma filosofia — mas roda inteiramente no edge, sem servidor, sem custo de backend e com zero dependências npm em runtime.
O problema de segurança do npm
Todo npm install puxa um grafo de dependências que executa scripts postinstall arbitrários com suas credenciais. Ataques de supply-chain exploram exatamente isso. O FreakJS tem zero dependências npm em runtime — os únicos pacotes em devDependencies são as definições de tipos do Bun e o TypeScript, que nunca chegam à produção.
Hospedagem gratuita
O output do build segue nativamente a Vercel Build Output API v3. Páginas estáticas vão para o CDN. Páginas dinâmicas e rotas de API viram Edge Functions isoladas. Custo zero na escala hobby da Vercel e Netlify.
Depois de instalado, em qualquer pasta do seu computador:
freakjs create meu-projeto
cd meu-projeto
bun run dev
Acesse http://localhost:3000 — a tela de boas-vindas do FreakJS abre automaticamente.
bun run build # gera .vercel/output/ pronto para deploy
O que é gerado pelo freakjs create
O comando cria uma estrutura completa e pronta para rodar:
meu-projeto/
├── src/
│ ├── pages/
│ │ ├── index.tsx # Tela de boas-vindas com logo FreakJS → /
│ │ └── api/
│ │ └── hello.ts # API route de exemplo → /api/hello
│ └── components/ # Pasta para seus componentes
├── public/
│ └── icon.png # Logo do FreakJS (favicon incluso)
├── package.json
├── tsconfig.json
└── .gitignore
Ao rodar bun run dev, o localhost:3000 abre com a tela de boas-vindas do FreakJS — fundo escuro, logo e nome do projeto — pronta para você substituir pelo seu conteúdo.
Roteamento
Cada arquivo em src/pages/ vira automaticamente uma rota — sem configuração:
HMR — mudanças nos arquivos recarregam o browser via WebSocket
SSR em dev — idêntico à produção
API routes funcionam localmente — sem mock, sem processo separado
Segurança
Vetor de ataque
Como o FreakJS lida
Supply-chain npm
Zero dependências runtime — nada para envenenar
Scripts postinstall
Sem dependências runtime com lifecycle scripts
XSS
Todo texto HTML-escapado por padrão no renderToString
Injeção via event handlers
Atributos on* removidos do SSR; reattached só no cliente
Isolamento edge
Cada função roda em isolate V8 próprio (Vercel/Cloudflare)
CLI
freakjs <comando>
Comandos:
create <nome> Cria um novo projeto FreakJS com tela de boas-vindas
dev Inicia o servidor de desenvolvimento (porta 3000)
build Build de produção (Vercel Build Output API v3)
API pública
"freakjs"
Export
Descrição
h, jsx, jsxs, jsxDEV
JSX factory (usado pelo compilador TypeScript)
Fragment
Suporte a <>...</>
renderToString(vnode)
Renderiza VNode para string HTML
hydrate(vnode, container)
Attaches event listeners no DOM existente
PageProps, PageMetadata, PageModule, ApiModule
Types
VNode, VNodeChild, FunctionComponent
Types do JSX
Roadmap
Adapter Netlify Edge Functions
Adapter Cloudflare Pages
Estado reativo (signals, sem VDOM)
Otimização nativa de imagens
CSS modules
Criadores
FreakJS foi criado e é mantido por:
João Gabriel do Vale Souza e Lucas Silva dos Santos
O copyright está registrado no arquivo LICENSE e no cabeçalho de todos os arquivos de código-fonte. Qualquer uso, cópia ou distribuição deve manter os créditos originais conforme a licença MIT.