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

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Hacker News: Front Page
S
Security Affairs
Google Online Security Blog
Google Online Security Blog
Attack and Defense Labs
Attack and Defense Labs
H
Heimdal Security Blog
S
Securelist
S
Secure Thoughts
N
News and Events Feed by Topic
T
The Exploit Database - CXSecurity.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Last Week in AI
Last Week in AI
The Last Watchdog
The Last Watchdog
N
News | PayPal Newsroom
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
O
OpenAI News
V
Vulnerabilities – Threatpost
S
Schneier on Security
Cyberwarzone
Cyberwarzone
雷峰网
雷峰网
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
美团技术团队
人人都是产品经理
人人都是产品经理
T
The Blog of Author Tim Ferriss
T
Tor Project blog
P
Privacy International News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
S
Security @ Cisco Blogs
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
Schneier on Security
Schneier on Security
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
K
Kaspersky official blog
P
Privacy & Cybersecurity Law Blog
aimingoo的专栏
aimingoo的专栏
L
LINUX DO - 热门话题
V
V2EX
Blog — PlanetScale
Blog — PlanetScale
www.infosecurity-magazine.com
www.infosecurity-magazine.com
U
Unit 42

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 Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python) The Hidden Cost of AI Systems Nobody Talks About. undefined vs undeclared, and how typeof behaves Switching from file-based jobs to NATS/Kafka in Rust without changing code io_uring Adventures: Rust Servers That Love Syscalls Why Agentic AI is Killing the Traditional Database The POUR principles of web accessibility for developers and designers Quantum Neural Network 3D — A Deep Dive into Interactive WebGL Visualization How To Install Caveman In Codex On macOS And Windows Automation Pipeline Reliability: Why Your Workflow Breaks When Nobody Is Watching I Built an 'Open World' AI Coding Agent — It Works From ANY Folder From Freelancing to Product: A Tech Service Company's SaaS Transformation China's AI Giants: Adding Tencent Hunyuan & ByteDance Doubao to AI University (74 Providers) On the Vibe Coders and Their Lies clerk: Auto-Summarize Your Claude Code Sessions AI Weekly — 2026/04/10–04/17 | The Model Lockdown Is Here, but the Toolchain Is the Real Battleground AI 週報 — 2026/04/10–2026/04/17 模型封鎖潮來了,但工具鏈才是真戰場 Maybe this is how Open-Source apps are born... 🚀 Fine-Tune LLMs with LoRA and QLoRA: 2026 Guide tRPC v11 + Next.js App Router: End-to-End Type Safety Without the Boilerplate ShadCN UI in 2026: Why I Stopped Installing Component Libraries and Started Owning My Components SaaS Billing in React Server Components: Stripe + Supabase Without a Single `useEffect` Join our DEV Weekend Challenge — $1,000 in Prizes Across TEN winners! Submissions Due April 20 at 6:59 AM UTC. Implementing FSRS Spaced Repetition in Flutter + Supabase — Adding Memory Science to an AI Learning App "I Texted My Localhost From the Train — Claude Code Fixed the Bug Before I Got Home" I Built a Sales Prep AI and It Went Deeper Than Expected Design to Code #2: One JSON, Eleven Outputs Solving the 100M-Row Problem: A Summary Table Pattern for High-Volume Push Notification Logs Flutter Web With Wasm: What Actually Changes For Developers I Built 50 Royalty-Free Soundtracks for My Side Project in a Weekend Using AI Music Generation The Vibe Coding Security Checklist: 7 Things to Check Before You Ship Stop Letting Googlebot Guess Fix Your React App's SEO Right Desconstruindo o Streaming do LinkedIn: Como Criar um Engine de Extração de Vídeo de Alta Performance com HLS e FFmpeg (EDA Part-1) EDA (Exploratory Data Analysis) Explained With Real Life — Why Looking at Your Data Is the Most Important Step in Machine Learning Brand Relationship Management at Scale: Our 4-Touch Outreach System for 200+ Brands Why String.fromEnvironment() Might Return an Empty String in Dart JGuardrails 1.0.0 — Hardening Java LLM Apps Against Jailbreaks, Toxicity, and Prompt Injection Plan and Schedule a Full Week of Threads Content From One Claude Conversation Coding Cat Oran Ep3, Five Tables Changed Everything Updated: BFF Pattern I'm done watching freelancers get buried by 200 proposals. So I'm building the alternative. This is my first post BFS Algorithm in Java Step by Step Tutorial with Examples Tracking LLM Pricing Monthly: An Open Dataset for 22 AI Models How We Measure Content ROI on a Comparison Site: Revenue Attribution Without Perfect Data Introducing Nova AI Ops: The AI-Native Operating System for SRE Teams I built a free desktop video downloader for Windows — Grabbit How Talkie OCR Helps Vision-Impaired & Dyslexic Users Read the World Around Them VRCFaceTracking安装和iPhone面捕配置教程,有bug Even CrowdStrike Can't See Your Agents The Automation Gold Rush: What n8n Workflows and Claude Are Opening Up for Developers Right Now
ManageMe -The OpenClaw Powered Productivity Product
Arya Pratap · 2026-04-26 · via DEV Community

This is a submission for the OpenClaw Challenge.


What I Built

There's a particular kind of friction that's hard to name but easy to feel. Someone drops a message in Discord — "hey, can someone track this bug?" — and you know exactly what happens next. You open a new tab, navigate to your project board, create the task, copy the link, paste it back into the chat. By the time you're done, the conversation has moved two topics ahead and the context is already gone.

I built ManageMe because I kept losing that context.

ManageMe is a workspace and task management system where your chat app is the interface. No slash commands to memorize. No rigid syntax. You talk to it the way you'd talk to a teammate — and it figures out what you mean.

Say "remind me to fix the login bug tomorrow" and a task gets created with a due date. Say "that payment issue is done" and the status updates. Say "who's working on the API refactor?" and it tells you. The web dashboard exists and stays in sync, but you can go days without opening it.

OpenClaw is what makes all of this possible, and it's the part of this project I'm most excited to talk about.


Demo

Watch the full demo on YouTube

The demo covers: creating tasks through natural conversation, uploading a file attachment, updating task status, and watching the web dashboard sync in real time — without ever leaving Discord.

What Actual Interactions Look Like

The best natural language interfaces feel boring to describe, because the interaction is just... talking.

"can someone track the auth bug from earlier"
→ Task created: "Auth bug from earlier" — added to active workspace

"mark the auth bug as in progress, I'm picking it up"
→ Status updated: Auth bug → In Progress, assignee set

"attach this screenshot to it"
→ File uploaded and linked to the task

"what's still open from this sprint?"
→ Lists open tasks with statuses and assignees

Enter fullscreen mode Exit fullscreen mode

No command to remember. No manual trip to Jira. The conversation that created the work is also the interface for tracking it.


How OpenClaw Makes This Work

This is worth spending real time on, because OpenClaw changes the design conversation in a way that isn't obvious until you've built with it.

The conventional approach to chat integrations: write a Discord bot. That bot has its own webhook handler, its own command parser, its own auth flow. It speaks Discord. If you want Telegram too, you write another bot that speaks Telegram. Two codebases, same logic, permanent synchronization debt.

OpenClaw inverts this. You write a skill — a self-contained module that handles a specific domain of intent — and the gateway takes care of routing it from and to whatever channels are configured. The skill doesn't know or care whether the message came from Discord or Telegram. It just receives structured intent and returns a response.

For ManageMe, the skill handles everything task-related: creation, updates, queries, file attachments, workspace switching. OpenClaw validates the incoming request (HMAC signature, rate limits, channel permissions), routes it to the skill, and forwards the response back to wherever the message originated.

What this means in practice: I added Telegram support in about fifteen minutes. Changed the config, restarted the gateway, done. The skill didn't change at all.

{
  "skills": {
    "entries": {
      "manageme": {
        "env": {
          "MANAGEME_API_URL": "http://localhost:3000",
          "MANAGEME_OPENCLAW_SECRET": "your-secret",
          "MANAGEME_WORKSPACE_ID": "your-workspace-id"
        },

      }
    }
  }
}

Enter fullscreen mode Exit fullscreen mode

OpenClaw's routing layer handles distinguishing messages addressed to ManageMe from general chat noise. The intent parsing lives inside the skill and uses context from the conversation to figure out what action, if any, is being requested.

The other thing worth noting: the gateway runs locally. No managed service sitting between your team's messages and your API. Every request is inspectable, failures are debuggable, and there's no pricing model that changes as usage grows. For infrastructure that every conversation about work flows through, owning it is worth the setup cost.


Architecture

Three layers: OpenClaw handling multi-channel routing and intent delivery, a Hono/Next.js backend managing business logic, and a React dashboard that stays in sync via Appwrite's real-time subscriptions.

Discord / Telegram / Slack
         │  natural language messages
         ▼
┌──────────────────────────────────┐
│        OpenClaw Gateway          │  HMAC validation, rate limiting,
│                                  │  channel routing, noise filtering
│   ┌──────────────────────────┐   │
│   │     ManageMe Skill       │   │  Intent parsing, entity extraction,
│   │   (natural language NLU) │   │  action dispatch
│   └──────────────────────────┘   │
└──────────────┬───────────────────┘
               │  structured API calls
               ▼
┌──────────────────────────────────┐
│      Hono API (Next.js 14)       │  Type-safe routes, Zod validation,
│                                  │  task / file / workspace services
└──────────────┬───────────────────┘
               │
               ▼
┌──────────────────────────────────┐
│           Appwrite               │  Database, file storage,
│                                  │  real-time subscriptions
└──────────────┬───────────────────┘
               │  real-time events
               ▼
┌──────────────────────────────────┐
│       React Dashboard            │  TanStack Query, Radix UI,
│                                  │  optimistic updates
└──────────────────────────────────┘

Enter fullscreen mode Exit fullscreen mode

From Message to Task — the Full Pipeline

When someone says "can you add a task for fixing the checkout flow":

  1. Discord sends the message to the OpenClaw gateway
  2. Gateway checks the HMAC signature and rate limit (5 req/min per channel)
  3. Gateway routes to the ManageMe skill
  4. Skill runs intent recognition — action: create, entity: task, title: "Fix checkout flow"
  5. Zod validates the extracted parameters against the task creation schema
  6. Hono handler calls the task service, writes to Appwrite
  7. Appwrite fires a real-time event to all subscribed clients
  8. React dashboard updates via React Query cache invalidation
  9. Gateway sends the formatted confirmation embed back to Discord

End to end: 150–300ms. The user sees a response before they've looked back up at the screen.


Technical Stack

Backend

  • Next.js 14 (App Router)
  • Hono — type-safe API routes with automatic TypeScript inference
  • Zod — runtime validation at every API boundary
  • Appwrite — database, file storage, real-time subscriptions
  • OpenClaw — multi-channel gateway, natural language routing, skill architecture

Frontend

  • React 18
  • Tailwind CSS
  • Radix UI — accessible component primitives
  • TanStack Query — optimistic updates, cache management, background sync

What makes the stack coherent: Hono plus Zod gives you end-to-end type safety without generated code. Define the schema once, get full TypeScript inference from the API handler down to the React component calling it. Three bugs that would have been production incidents — a mismatched field name, a missing required parameter, a date serialization error — were caught at compile time instead.


Code Highlights

Type-Safe API Route

const createTaskSchema = z.object({
  title:       z.string().min(1),
  dueDate:     z.coerce.date().optional(),
  assignee:    z.string().optional(),
  workspaceId: z.string(),
});

app.post("/tasks", zValidator("json", createTaskSchema), async (c) => {
  const data = c.req.valid("json"); // fully typed — no casting needed
  const task = await taskService.create(data);
  return c.json({ success: true, task });
});

Enter fullscreen mode Exit fullscreen mode

Real-Time Sync with Optimistic Updates

const { mutate } = useCreateTask();

mutate(
  { title: extractedTitle, workspaceId: workspace.id },
  {
    onSuccess: () => {
      queryClient.invalidateQueries(["tasks", workspace.id]);
    },
    onError: () => {
      queryClient.cancelQueries(["tasks"]);
      // optimistic update rolls back automatically
    },
  }
);

Enter fullscreen mode Exit fullscreen mode


What I Learned Building This

Natural language is a UX decision, not just a technical one. The temptation when building a chat integration is to make the syntax strict — /create task [title] --due [date] — because it's easier to parse. But strict syntax puts the cognitive load on the user. They have to remember the format every time. Natural language flips the load: the system does the work of figuring out what you mean, and the user just talks. Getting the intent parsing reliable enough to trust took iteration. The payoff is that the interface disappears. That's what you want from a tool.

OpenClaw's architecture changes how you think about integrations. I went in expecting to write a Discord bot and bolt on OpenClaw as a routing layer. What actually happened was that I stopped thinking about platforms entirely. The skill is the product. Discord, Telegram, Slack — those are delivery mechanisms. Once that mental model clicked, the whole architecture got simpler. Adding a new channel became a config change, not a development project.

Type safety compounds. Three production bugs were caught at compile time because types flowed end-to-end through Hono and Zod. That's not a coincidence — it's what happens when you eliminate the gap between "what the API expects" and "what the frontend sends." The confidence to make changes without a full manual test pass is a genuinely different feeling.

Real-time sync has a timing problem nobody talks about. Getting live updates working is the easy part. The hard part is what happens when a Discord message creates a task while the web dashboard is open and the user is also creating something from the UI. Competing invalidations, race conditions in the cache, subtle flickers if query cancellation isn't handled correctly. Appwrite subscriptions are clean; the React Query coordination around them took several passes to get right.

Self-hosted infrastructure is a feature. Running OpenClaw locally adds a setup step and removes a whole category of problems: no third-party rate limits, no outage pages to monitor, no pricing surprises as the team grows. For a tool that every conversation about work flows through, ownership matters more than convenience.


Getting Started

git clone https://github.com/ARYPROGRAMMER/ManageMe.git
cd ManageMe
npm install

# Add your Appwrite credentials
cp .env.example .env.local

# Install OpenClaw
curl -fsSL https://openclaw.dev/install | sh

# Configure the skill
cat > ~/.openclaw/openclaw.json << 'EOF'
{
  "skills": {
    "entries": {
      "manageme": {
        "env": {
          "MANAGEME_API_URL": "http://localhost:3000",
          "MANAGEME_OPENCLAW_SECRET": "your-secret-here",
          "MANAGEME_WORKSPACE_ID": "your-workspace-id"
        },
        "channels": {
          "discord":  { "enabled": true, "prefix": null },
          "telegram": { "enabled": true, "prefix": null }
        }
      }
    }
  }
}
EOF

openclaw start
npm run dev

Enter fullscreen mode Exit fullscreen mode

From clone to first natural language task: about ten minutes, most of which is setting up the Appwrite project.


What's Next

Better intent confidence. The current NLU layer handles clear task intent reliably, but gets uncertain in noisy channels. Adding a lightweight confirmation step — "did you mean to create a task for this?" — would extend it to messier environments without slowing down the clear-intent case.

Webhook triggers. Task events driving outbound webhooks — task completed posts to Slack, PR merged auto-closes the linked task. OpenClaw's skill chaining makes this a composition problem rather than a new integration.

AI-assisted extraction from threads. Summarize a long Discord discussion, extract the action items, surface them for quick review before creating. The LLM handles extraction; the human confirms. That handoff is the right place for AI in a workflow tool.

Bidirectional GitHub sync. Link tasks to pull requests, auto-close on merge, surface PR status in the task view. The interesting engineering problem is conflict resolution when both sides update simultaneously.


On the Problem Worth Solving

The reason context-switching between chat and project management feels so bad is that work doesn't happen in project management tools. It happens in conversations. The task board is a record of decisions already made. The conversation is where decisions happen.

ManageMe is a small attempt to close that gap — to make the place where decisions happen also the place where they get tracked. OpenClaw made it possible to build this without picking a platform and being stuck with it. The flexibility to meet teams where they already are, without committing to any one channel, is the whole point.

The project is open source. Contributions welcome at github.com/ARYPROGRAMMER/ManageMe. The live version is at manage-me-openclaw.vercel.app.

Reach out to me at arya.2023ug1104@iiitranchi.ac.in