惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
量子位
D
DataBreaches.Net
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
B
Blog
The Cloudflare Blog
D
Docker
I
InfoQ
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
有赞技术团队
有赞技术团队

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
How I Won Most Creative at the Backboard Spring 2026 Hack...
Timothy Chimbiv · 2026-06-22 · via DEV Community

I Built an AI That Reads Your Face Against Your Own Words and Won Most Creative at the Backboard Hackathon

ORACLE. The AI agent that lives your day before you live it. Your mental crack into tomorrow.

Most wellness apps ask how you're feeling. ORACLE doesn't ask. It intercepts.

I built ORACLE for the Backboard.io Spring Challenge 2026 and won the Most Creative prize. Here's the full story of what I built, why I built it, and exactly how Backboard's API made it possible.

The Idea

I wanted to build something that solved a real problem I noticed in myself and people around me: the gap between how we say we're doing and how we're actually doing.

Every morning, people open wellness apps and tap "I'm fine" or "energy level: 7/10." But that self-report is often wrong, not because people lie, but because we don't notice what our bodies are already showing.

ORACLE closes that gap. It cross-references what you say against what your face reveals.

What ORACLE Does

ORACLE runs a daily three-part mental performance loop.

1. Morning Scan
Five sharp questions covering your schedule, sleep quality, main uncertainty for the day, energy reading, and physical state. Not generic wellness questions. Five data points that together surface the hidden risk in your day.

2. Face Reading
After the five questions, ORACLE asks for a selfie. It runs that photo through GPT-4o vision and cross-references it against your answers. If you said "energy: high" but your face shows dark circles and tension, ORACLE names that gap directly.

3. Mid-Day Check-In and Evening Debrief
Three hours after the morning scan, ORACLE checks in with one sharp question about how the day is going relative to the morning prediction. At the end of the day, the evening debrief closes the loop and asks whether the morning prediction came true.

The Technical Stack

ORACLE is built entirely on Backboard's API. Here's exactly what I used and why.

Thread Memory, Persistent Context Across Three Sessions

The morning scan, mid-day check-in, and evening debrief are three separate user sessions. Normally that means three separate conversations with no memory.

Backboard's thread management solved this natively. I assign the same thread_id across all three sessions and Backboard holds the full context automatically.

const response = await fetch('https://api.backboard.io/thread/message', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${BACKBOARD_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    thread_id: userThreadId,
    message: userMessage,
    system_prompt: ORACLE_SYSTEM_PROMPT
  })
});

No database. No custom memory system. One thread ID, and ORACLE remembers the user's full day across all three sessions.

Model Routing, Vision Only When Needed

The morning scan uses GPT-4o-mini routed through Backboard. The face reading requires vision capability, so it routes to GPT-4o with the image attached. Backboard handles the routing.

const faceResponse = await fetch('https://api.backboard.io/thread/message', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${BACKBOARD_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    thread_id: userThreadId,
    message: analysisPrompt,
    image_base64: base64Image,
    model: 'gpt-4o'
  })
});

TTS Voice, Professional Speech Synthesis

The morning briefing is read aloud by ORACLE using Backboard's TTS API routed through OpenAI's onyx voice model. Deep, authoritative, deliberate. Browser synthesis is the fallback only if the API call fails.

const ttsResponse = await fetch('https://api.backboard.io/tts', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${BACKBOARD_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    text: briefingText,
    voice: 'onyx'
  })
});

One API key. Thread memory, model routing, multimodal vision, and professional voice. Backboard handles all of it.

What I Learned

Ship the weird idea. The face reading feature was the one I almost cut because it felt too ambitious. It ended up being the most talked about part of ORACLE.

Thread memory is underrated. Most people building on LLM APIs spend hours building custom memory systems. Backboard's thread management eliminated that entirely and let me focus on the product.

Voice changes the experience completely. Switching from browser synthesis to Backboard's TTS API transformed ORACLE from a chat interface into something that felt like a real product.

Try It

ORACLE is live at oracle-six-snowy.vercel.app

Code is on GitHub at github.com/Terese678/ORACLE

What's Next

Backboard just released audio input (STT) and expanded voice models including ElevenLabs. The next version of ORACLE will let you speak your morning scan answers out loud instead of typing. Full voice-in, voice-out loop with no screen required at 6 AM.

If you're building on AI APIs and haven't tried Backboard's thread memory, I'd strongly recommend it. It removed an entire layer of complexity from ORACLE and let me focus on what actually matters, the product.

Built in Nigeria. Shipped under deadline. Won Most Creative.

Follow me here on DEV for what comes next.