AI-powered content summarization platform built with React, Express.js, MongoDB, and a hybrid LLM architecture.
LayerZero allows users to summarize PDFs, DOCX files, and web content using cloud-based or locally hosted language models. The platform focuses on simplicity, speed, and flexibility while providing a secure authentication layer and a clean content-processing pipeline.
Most content summarization tools force users into a single AI provider.
LayerZero takes a different approach.
Users can choose between:
- Gemini 2.5 Flash for powerful cloud-based inference
- GPT OSS 120B via Cerebras for fast, open-source cloud inference
- Gemma 4 via Ollama for local inference and privacy-focused workflows*
- Sarvam 30B for Hinglish and multilingual conversational workflows*
Whether you're summarizing a research paper, technical documentation, blog post, or an article you definitely intended to read later, LayerZero extracts the content and generates concise summaries within seconds.
Homepage
|
About
|
Login
|
Register
|
URL Summarizer
|
Response
|
- PDF document uploads
- DOCX document uploads
- Website URL summarization
- Automatic text extraction
- Article content parsing using Mozilla Readability
- Unified document processing pipeline with mimetype-based routing
- Gemini 2.5 Flash integration
- GPT OSS 120B integration via Cerebras
- Gemma 4 integration via Ollama
- Sarvam 30B integration
- Four user-selectable AI models
- Hybrid cloud/local architecture
- Flexible inference workflows
- Hinglish-friendly and multilingual support via Sarvam
- JWT Authentication via httpOnly cookies
- Protected API routes
- Secure password hashing with bcrypt
- Middleware-based authorization
- Rate limiting on auth and LLM routes via express-rate-limit
- Docker Compose setup for client, server, and Redis
- Separate Dockerfiles for frontend and backend
- Redis-ready architecture for caching
- Local Ollama support via
host.docker.internal
- PDF export of generated summaries via jsPDF
- Markdown-to-plain-text conversion before export for clean output
LayerZero includes Sarvam 30B support for Hinglish and multilingual interactions.
This enables more natural summarization and conversational workflows for users who frequently switch between English and Indian languages, while maintaining the same unified processing pipeline used across all supported models.
┌─────────────────┐
│ React Client │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Express Server │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Content Parsing │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Model Selection │
└────────┬────────┘
│
┌─────┼─────┬──────┐
▼ ▼ ▼ ▼
Gemini GPT Gemma Sarvam
Cloud OSS Local Cloud
│ │ │ │
└─────┴──────┴─────┘
▼
Summary
URL
│
▼
Axios
│
▼
JSDOM
│
▼
Mozilla Readability
│
▼
Article Extraction
│
▼
Selected Model
│
▼
Summary
- Axios
- JSDOM
- Mozilla Readability
- Gemini API
- Cerebras API
- Gemma 4
PDF / DOCX Upload
│
▼
Multer
│
▼
extractText()
(mimetype routing)
│
┌───┴───┐
▼ ▼
pdf-parse mammoth
│ │
└───┬───┘
▼
Text Extraction
│
▼
Selected Model
│
▼
Summary
- Multer
- pdf-parse
- mammoth
- Gemini API
- Cerebras API
- Gemma 4
- React
- TypeScript
- Tailwind CSS
- shadcn/ui
- jsPDF
- Node.js
- Express.js
- MongoDB
- JWT
- bcrypt
- Axios
- JSDOM
- Mozilla Readability
- Multer
- pdf-parse
- mammoth
- Docker
- Docker Compose
- Redis
- express-rate-limit
- Gemini 2.5 Flash
- GPT OSS 120B (via Cerebras)
- Gemma 4 (via Ollama)
- Sarvam 30B
POST /api/auth/user/registerPOST /api/auth/user/loginPOST /api/auth/user/logoutGET /api/auth/user/checkAuthentication required.
POST /api/scrape/webRequest Body
{
"url": "https://example.com/article",
"client": "gemini"
}client accepts:
geminicerebrasgemmasarvam
POST /api/scrape/docContent-Type
multipart/form-data
Fields
document: file.pdf or file.docx
client: gemini or cerebras or gemma or sarvam
LayerZero/
│
├── docker-compose.yml
│
├── client/
│ ├── Dockerfile
│ └── src/
│ ├── components/
│ ├── pages/
│ ├── context/
│ ├── layouts/
│ └── lib/
│
├── server/
│ ├── Dockerfile
│ ├── app.js
│ ├── controllers/
│ ├── middlewares/
│ ├── routes/
│ ├── models/
│ ├── services/
│ └── config/
│
└── README.mddocker-compose up --buildThis starts the client, server, and Redis containers together.
To use Gemma locally inside Docker, ensure Ollama is running on your host machine and set
OLLAMA_BASE_URL=http://host.docker.internal:11434in your server.env.
git clone https://github.com/render-TheVoid/layerzero.git
cd layerzerocd server
npm installcd client
npm installPORT=3000
MONGODB_URI=
JWT_SECRET=
GEMINI_API_KEY=
CEREBRAS_API_KEY=
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=
NODE_ENV=developmentBackend
npm run devFrontend
npm run devMost summarization platforms rely entirely on cloud-hosted AI.
LayerZero combines cloud and local inference, giving users more control over privacy, performance, and operational costs.
Benefits include:
- Reduced API dependency
- Local AI execution
- Three selectable AI models
- Improved privacy via local inference
- Hybrid cloud/local architecture
Because sometimes you want the power of a cloud model, and sometimes you want your laptop to suffer instead.
- No document history
- No persistent summary storage
- Single-document processing
- Redis caching for repeated requests
- Streaming responses
- Summary history and persistence
- Multi-document summarization
MIT License
Built with React, Express, MongoDB, and a stubborn refusal to choose between cloud AI and local AI.





