Skip to content

priyanshusaini105/glaze

Repository files navigation

Glaze - The Agentic Spreadsheet

✨ Glaze

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.

FeaturesArchitectureQuick StartTech StackDocumentation

License Node Version Bun Version PNPM Version


🎯 What is Glaze?

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.

The Problem

  • 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

The Glaze Solution

  • 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

✨ Features

🤖 Agentic Enrichment

AI agents autonomously enrich your data using multiple providers with intelligent fallback strategies.

📊 Real-time Streaming

Watch your data come alive with streaming updates - no more waiting for batch jobs.

🔄 Multi-Provider Intelligence

Automatically sources data from LinkedIn, websites, search APIs, and AI with confidence scoring.

💾 Smart Caching

Redis-backed 7-day cache eliminates redundant API calls and reduces costs.

🎯 High Confidence Data

Every field includes confidence scores and source attribution.

⚡ Blazing Fast

Built on Bun and Elysia for maximum performance with minimal overhead.


🏗️ Architecture

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      │
         └─────────────────────┘                              └───────────────────────────┘

Data Flow

┌────────────────────────────────────────────────────────────────────────────────┐
│                          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  │
                   └─────────────────────────────────────────────────────────┘

📁 Project Structure

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

🚀 Quick Start

Prerequisites

Requirement Version
Node.js ≥ 18
Bun ≥ 1.0
PostgreSQL ≥ 14
Redis ≥ 6

Installation

# 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 URLs

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

🛠️ Tech Stack

Backend

  • Runtime: Bun + Node.js
  • API: Elysia (TypeScript)
  • Database: PostgreSQL + Prisma
  • Cache: Redis + ioredis
  • Queue: Trigger.dev v3

Frontend

  • Framework: Next.js 14
  • Styling: Tailwind CSS
  • UI Libraries: Shadcn/ui, AG Grid
  • State: React Query

Enrichment

  • Orchestration: Trigger.dev
  • AI/LLM: Anthropic Claude
  • Scraping: Cheerio
  • Search: Serper API

📊 Pipeline Performance

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%

🔧 Development Commands

# 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 formatting

🔐 Environment Variables

Create 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

📚 Documentation

Document Description
Architecture Guide System design & data flow
Contributors Guide Development setup & guidelines
API Documentation REST endpoints reference
Workflows Guide Trigger.dev task definitions

🐛 Troubleshooting

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:dev
Redis connection issues
# Test Redis connection
redis-cli PING

# Verify REDIS_URL in .env
Type errors
# Rebuild types
pnpm check-types

# Clear cache
rm -rf node_modules/.vite

🤝 Contributing

We welcome contributions! Please read our Contributors Guide for:

  • Development environment setup
  • Code organization guidelines
  • Adding new provider adapters
  • Testing procedures

📄 License

MIT License - see LICENSE for details.


Status: Active Development  |  Last Updated: January 2026

Built with ❤️ by @priyanshusaini105

GitHub  |  LinkedIn  |  X

About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages