The Agentic Spreadsheet That Feels Alive
AI agents work directly inside your grid, enriching your data with transparent, streaming AI workflows. Stop waiting for spinners.
Features • Architecture • Quick Start • Tech Stack • Documentation
Glaze is a high-performance data enrichment platform that transforms static spreadsheets into dynamic, AI-powered workflows. Unlike traditional data tools that make you wait for batch processing, Glaze's agentic architecture provides real-time, streaming enrichment directly in your grid.
- Traditional enrichment tools require manual data export/import cycles
- Batch processing means waiting minutes or hours for results
- No visibility into what's happening during processing
- Fragmented data from multiple providers requires manual merging
- Live enrichment happens directly in your spreadsheet cells
- Streaming results show progress in real-time
- Multi-provider intelligence automatically sources the best data
- AI-powered gap filling when providers can't find data
|
AI agents autonomously enrich your data using multiple providers with intelligent fallback strategies. Watch your data come alive with streaming updates - no more waiting for batch jobs. Automatically sources data from LinkedIn, websites, search APIs, and AI with confidence scoring. |
Redis-backed 7-day cache eliminates redundant API calls and reduces costs. Every field includes confidence scores and source attribution. Built on Bun and Elysia for maximum performance with minimal overhead. |
Glaze uses a waterfall architecture with distinct layers that enable scalable, maintainable data enrichment:
┌─────────────────────────────────────────┐
│ 🌐 WEB APPLICATION │
│ (Next.js + React) │
│ • Interactive spreadsheet UI │
│ • Real-time streaming updates │
│ • Data visualization dashboard │
└──────────────────┬──────────────────────┘
│
HTTP/REST API
│
┌──────────────────▼──────────────────────┐
│ ⚡ API SERVER │
│ (Elysia + Bun) │
│ • REST endpoints & authentication │
│ • Request validation & routing │
│ • WebSocket connections │
│ • Swagger documentation │
└──────────────────┬──────────────────────┘
│
┌──────────────────▼──────────────────────┐
│ 📋 TASK ORCHESTRATOR │
│ (Trigger.dev v3) │
│ • Job queuing & scheduling │
│ • Retry logic & error handling │
│ • Concurrent task management │
│ • Background job processing │
└──────────────────┬──────────────────────┘
│
┌──────────────────▼──────────────────────┐
│ 🔧 ENRICHMENT PIPELINE │
│ │
│ ┌─────────────────────────────────┐ │
│ │ PROVIDER LAYER │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────────┐ │ │
│ │ │LinkedIn │ │ Website │ │ │
│ │ │Provider │ │ Scraper │ │ │
│ │ │ (95%) │ │ (80%) │ │ │
│ │ └─────────┘ └─────────────┘ │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────────┐ │ │
│ │ │ Search │ │ LLM │ │ │
│ │ │ APIs │ │ Fallback │ │ │
│ │ │ (70%) │ │ (60%) │ │ │
│ │ └─────────┘ └─────────────┘ │ │
│ └─────────────────────────────────┘ │
└──────────────────┬──────────────────────┘
│
┌────────────────────────────┴────────────────────────────┐
│ │
┌──────────▼──────────┐ ┌───────────────▼───────────┐
│ 🗃️ PostgreSQL │ │ 🚀 Redis Cache │
│ (Persistent) │ │ (Fast Access) │
│ • Table storage │ │ • 7-day TTL cache │
│ • User data │ │ • Response caching │
│ • Job history │ │ • Real-time pub/sub │
└─────────────────────┘ └───────────────────────────┘
┌────────────────────────────────────────────────────────────────────────────────┐
│ ENRICHMENT PIPELINE STAGES │
└────────────────────────────────────────────────────────────────────────────────┘
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
│ 1.Cache │────▶│2.LinkedIn────▶│3.Website│────▶│4.Search │────▶│ 5.Gap │
│ Check │ │ Provider│ │ Scraper │ │ Service │ │Analysis │
└─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘
│ │
│ HIT │
▼ ▼
┌─────────┐ ┌─────────┐
│ Return │ │ 6. LLM │
│ Cached │ │Fallback │
└─────────┘ └─────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ 7. MERGE & VALIDATE ──▶ 8. STORE & CACHE ──▶ DONE │
└─────────────────────────────────────────────────────────┘
This is a pnpm workspaces monorepo organized as follows:
glaze/
├── 📱 apps/
│ ├── api/ # Elysia HTTP server + REST endpoints
│ ├── web/ # Next.js frontend + spreadsheet UI
│ ├── workflows/ # Trigger.dev task definitions
│ └── worker/ # (Deprecated) Legacy BullMQ worker
│
├── 📦 packages/
│ ├── types/ # Shared TypeScript definitions
│ ├── ui/ # Shared React components
│ └── trigger/ # Legacy trigger config
│
├── 📜 scripts/ # Development & deployment helpers
├── 📚 docs/ # Architecture & API documentation
└── ⚙️ config # Root configuration files
| Requirement | Version |
|---|---|
| Node.js | ≥ 18 |
| Bun | ≥ 1.0 |
| PostgreSQL | ≥ 14 |
| Redis | ≥ 6 |
# Clone the repository
git clone https://github.com/priyanshusaini105/glaze.git
cd glaze
# Install dependencies
pnpm install
# Copy environment template
cp .env.example .env
# Edit .env with your credentials
# Set up database
cd apps/api && pnpm run prisma:migrate:dev && cd ../..
# Start all services
./scripts/dev-all.sh| Service | URL | Description |
|---|---|---|
| Web UI | http://localhost:3000 | Spreadsheet interface |
| API | http://localhost:3001 | REST API server |
| API Docs | http://localhost:3001/docs | Swagger documentation |
|
|
|
| Stage | Duration | Cost/Request | Confidence |
|---|---|---|---|
| Cache Hit | <10ms | $0 | 95% |
| LinkedIn Provider | 500ms-2s | $0.01-0.05 | 95% |
| Website Scraper | 2-5s | $0 | 70-80% |
| Search Service | 1-2s | $0.02 | 70% |
| LLM Fallback | 1-3s | $0.02-0.05 | 60% |
| Total (uncached) | 2-10s | $0.05-0.15 | 90% |
# Start all services
pnpm dev
# Start individual services
pnpm dev:api # API server only
pnpm dev:web # Web frontend only
pnpm dev:workflows # Trigger.dev workflows
# Database operations
cd apps/api
pnpm run prisma:studio # Open database UI
pnpm run prisma:migrate:dev # Run migrations
# Code quality
pnpm check-types # TypeScript validation
pnpm lint # ESLint checks
pnpm format # Prettier formattingCreate a .env file in the project root:
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/glaze
# Redis
REDIS_URL=redis://localhost:6379
# API Server
PORT=3001
API_URL=http://localhost:3001
# LLM Provider
LLM_PROVIDER=anthropic
LLM_API_KEY=your_api_key
LLM_MODEL=claude-3-sonnet-20240229
# Trigger.dev
TRIGGER_API_KEY=your_trigger_key
# Search API
SERPER_API_KEY=your_serper_key| Document | Description |
|---|---|
| Architecture Guide | System design & data flow |
| Contributors Guide | Development setup & guidelines |
| API Documentation | REST endpoints reference |
| Workflows Guide | Trigger.dev task definitions |
Database connection errors
# Verify PostgreSQL is running
psql -h localhost -U postgres
# Check DATABASE_URL in .env
# Run migrations
cd apps/api && pnpm run prisma:migrate:devRedis connection issues
# Test Redis connection
redis-cli PING
# Verify REDIS_URL in .envType errors
# Rebuild types
pnpm check-types
# Clear cache
rm -rf node_modules/.viteWe welcome contributions! Please read our Contributors Guide for:
- Development environment setup
- Code organization guidelines
- Adding new provider adapters
- Testing procedures
MIT License - see LICENSE for details.
Status: Active Development | Last Updated: January 2026
Built with ❤️ by @priyanshusaini105
