DOBY 🤖
"Looking for master."
Your Personal AI Agent Platform
Create intelligent agents that work while you don't — using just plain English.
Problem • Solution • Why Serverpod • Getting Started • Architecture
🎯 The Problem
We're Drowning in Digital Chaos
The modern knowledge worker is overwhelmed:
| The Pain | The Numbers |
|---|---|
| 📧 Email Overload | 121 emails/day average, 28% of workweek spent in inbox |
| 📅 Meeting Fatigue | 25+ meetings/week with zero prep time |
| 🔔 Notification Hell | 96 phone checks/day, constant interruptions |
| 🔄 Context Switching | 23 minutes to refocus after each distraction |
| ⏰ Repetitive Tasks | 2+ hours/day on tasks that could be automated |
Current Solutions Fail
Email Filters? Too rigid. Important emails slip through or get buried.
Calendar Apps? They tell you WHAT's coming, not HOW to prepare.
Task Managers? You still do all the work manually.
Zapier/IFTTT? Requires technical setup. Limited to simple "if this then that."
Siri/Alexa? Good for timers and weather. Useless for real work automation.
The Real Problem
"I just want to say: 'When my boss emails me, tell me immediately and draft a reply.' Why does that require a computer science degree?"
There's no tool that lets normal people create intelligent, personalized automation using natural language.
Until now.
💡 The Solution
Meet DOBY
DOBY is your personal AI agent platform. Create intelligent automation by simply describing what you want.
"When I get an email from my boss, notify me immediately and draft a professional response"
↓ DOBY understands and creates an agent ↓
✅ Agent Created: "Boss Email Alert"
Trigger: Email received from boss@company.com
Actions:
1. Send push notification
2. Draft response using AI
3. Add to high-priority tasks
Key Features
| Feature | Description |
|---|---|
| 🗣️ Natural Language | Describe what you want in plain English |
| 🤖 Personal Agents | Build an army of AI workers (we call them "Dobies") |
| ⚡ Real-time Execution | Watch your agents work with live progress |
| 💬 Chat Interface | Talk to DOBY like a colleague |
| 📊 Activity Dashboard | See everything your agents accomplish |
| 🔗 Integrations | Gmail, Calendar, Notion, Slack (coming soon) |
Example Agents You Can Create
"Every morning at 7am, summarize my calendar and unread emails"
→ ☀️ Morning Briefing agent
"Before any meeting, prepare a briefing with attendee LinkedIn profiles"
→ 📅 Meeting Prep agent
"When my spending exceeds $500 in a day, alert me"
→ 💰 Budget Watcher agent
"When someone mentions 'urgent' in Slack, notify me immediately"
→ 🚨 Urgent Alert agent
🏗️ Why Serverpod?
We built DOBY's backend with Serverpod — and here's why it was the perfect choice:
What is Serverpod?
Serverpod is an open-source, next-generation backend framework built specifically for Flutter. It's written entirely in Dart, which means:
One Language. Everywhere.
// Same Dart code on server...
class Agent {
String name;
String triggerType;
bool isActive;
}
// ...and on Flutter client
final agent = await client.doby.createAgent(name: "Email Bot");
print(agent.name); // Full type safety!
Serverpod vs The Competition
| Feature | Serverpod | Firebase | Supabase | Node.js |
|---|---|---|---|---|
| Same language as Flutter | ✅ Dart | ❌ JS | ❌ JS | ❌ JS |
| End-to-end type safety | ✅ | ❌ | ❌ | ❌ |
| Auto-generated API client | ✅ | ❌ | ⚠️ | ❌ |
| Self-hostable | ✅ | ❌ | ✅ | ✅ |
| No vendor lock-in | ✅ | ❌ | ⚠️ | ✅ |
| Built-in ORM | ✅ | ❌ | ✅ | ❌ |
| WebSocket support | ✅ | ✅ | ✅ | ⚠️ |
| Learning curve for Flutter devs | Low | Medium | Medium | High |
How Serverpod Powers DOBY
1. Define Once, Use Everywhere
# doby_server/lib/src/doby/agent.spy.yaml
class: Agent
table: agents
fields:
userId: int
name: String
description: String
triggerType: String
isActive: bool
runCount: int
Run serverpod generate and you get:
- ✅ Dart model class
- ✅ Database table migration
- ✅ Serialization/deserialization
- ✅ Client-side model (same class!)
2. Type-Safe Database Queries
// Find all active agents for a user
final agents = await Agent.db.find(
session,
where: (t) => t.userId.equals(userId) & t.isActive.equals(true),
orderBy: (t) => t.createdAt,
orderDescending: true,
);
// Full autocomplete, compile-time checks!
3. Seamless Client Integration
// In Flutter - calling server is this simple
final agent = await client.doby.createAgentFromNaturalLanguage(
"When I get an email from my boss, notify me"
);
// agent is fully typed - no JSON parsing!
print(agent.name); // "Boss Email Alert"
print(agent.triggerType); // "email"
4. Real-time Updates
// Server pushes execution progress to client
await session.messages.postMessage(
'agent-execution-$agentId',
ExecutionUpdate(step: 2, message: 'Drafting response...'),
);
5. Built-in Scheduling
// Schedule agent to run every morning at 7am
await session.serverpod.futureCallAtTime(
'morningBriefing',
DateTime.now().add(Duration(hours: calculateTimeUntil7am())),
userId,
);
The Bottom Line
With Serverpod, we built a complete backend in days, not weeks. No API contract mismatches. No serialization bugs. No "works on my machine." Just Dart, everywhere.
🚀 Getting Started
Prerequisites
# Install Flutter
# https://flutter.dev/docs/get-started/install
# Install Serverpod CLI
dart pub global activate serverpod_cli
# Install Docker
# https://docs.docker.com/get-docker/
Quick Start
Terminal 1 - Start Database & Server:
cd doby/doby_server
docker compose up -d # Start PostgreSQL + Redis
dart bin/main.dart --apply-migrations # First time only
dart bin/main.dart # Start server
Terminal 2 - Start Flutter App:
cd doby/doby_flutter
flutter pub get
flutter run -d chrome
Verify It Works
- Server running: Open
http://localhost:8080→ Should see "OK" - App running: Chrome opens with DOBY dashboard
- Create an agent: Try "When I get an email from my boss, notify me"
🏛️ Architecture
┌─────────────────────────────────────────────────────────────┐
│ DOBY SYSTEM │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────┐ ┌───────────────────────┐ │
│ │ FLUTTER APP │ │ SERVERPOD SERVER │ │
│ │ │ │ │ │
│ │ ┌─────────────┐ │ HTTP │ ┌─────────────────┐ │ │
│ │ │ Dashboard │ │◄─────►│ │ DobyEndpoint │ │ │
│ │ │ Agent List │ │ │ │ │ │ │
│ │ │ Chat Screen │ │ │ │ • createAgent() │ │ │
│ │ │ Settings │ │ │ │ • executeAgent()│ │ │
│ │ └─────────────┘ │ │ │ • sendChat() │ │ │
│ │ │ │ └─────────────────┘ │ │
│ │ ┌─────────────┐ │ │ │ │ │
│ │ │ Doby Theme │ │ │ ▼ │ │
│ │ │ (Cyberpunk) │ │ │ ┌─────────────────┐ │ │
│ │ └─────────────┘ │ │ │ PostgreSQL │ │ │
│ │ │ │ │ │ │ │
│ │ ┌─────────────┐ │ │ │ • agents │ │ │
│ │ │ Doby Mascot │ │ │ │ • executions │ │ │
│ │ │ (Animated) │ │ │ │ • chat_messages │ │ │
│ │ └─────────────┘ │ │ │ • activity_logs │ │ │
│ │ │ │ └─────────────────┘ │ │
│ └───────────────────┘ └───────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
Data Models
| Model | Purpose |
|---|---|
Agent |
AI agent configuration (trigger, actions, status) |
AgentAction |
Individual steps an agent performs |
TaskExecution |
Execution history with status/progress |
ActivityLog |
User-facing activity feed |
ChatMessage |
Conversation history with DOBY |
UserIntegration |
OAuth tokens for Gmail, Calendar, etc. |
Project Structure
doby/
├── doby_server/ # Serverpod backend
│ ├── lib/src/doby/ # Models (.spy.yaml) & Endpoints
│ ├── docker-compose.yaml
│ └── config/
│
├── doby_client/ # Generated API client
│ └── lib/src/protocol/ # Auto-generated from server
│
├── doby_flutter/ # Flutter app
│ ├── lib/
│ │ ├── core/theme/ # Cyberpunk dark theme
│ │ ├── features/ # Screens (dashboard, chat, etc.)
│ │ └── shared/ # Widgets (mascot, nav, etc.)
│ └── pubspec.yaml
│
Built With
- dart
- flutter
- serverpod
Log in or sign up for Devpost to join the conversation.