Skip to content

diff·log

diff·log is an open source app that uses Claude to summarize dev news based on your tech stack. These docs are for technical users interested in the underlying technology.

difflog.dev (the site) | GitHub (the code)

Overview

  • Local-first — All data stored in browser localStorage; sync is optional
  • End-to-end encrypted — Sync data is encrypted client-side before upload
  • Multi-profile — Track different tech stacks separately
  • BYOK — Bring your own Anthropic API key for AI generation

Technology Stack

Client: Alpine.js with @alpinejs/persist for localStorage. CSS View Transitions for smooth page navigation.

Server: Bun for local dev, Cloudflare Pages for production hosting, Cloudflare D1 for sync storage.

Build: Bun's HTML imports automatically bundle TypeScript and CSS. No webpack or vite needed.

Architecture Overview

graph TB
    subgraph Client ["Client (Browser)"]
        Store[Alpine.js Store]
        Crypto[Web Crypto API]
        Storage[localStorage]
    end

    subgraph Server ["Cloudflare Pages"]
        API["/api/* Functions"]
    end

    subgraph DB ["Cloudflare D1"]
        Profiles[(profiles)]
        Diffs[(diffs)]
        Stars[(stars)]
    end

    Store <--> Crypto
    Store <--> Storage
    Store <--> API
    API <--> Profiles
    API <--> Diffs
    API <--> Stars

Getting Started

bun install          # Install dependencies
bun run dev          # Start dev server at localhost:3000