✓ เสร็จแล้ว
DevLog Bot
บอท Discord สำหรับบันทึก dev log อัตโนมัติ ช่วยติดตามความก้าวหน้าของโปรเจคต่างๆ โดยไม่ต้องออกจาก workspace
สารบัญ
ปัญหาที่แก้
ทำงานใน Discord อยู่แล้ว แต่การบันทึก “ทำอะไรไปบ้างวันนี้” ยังต้องสลับไปเปิด Notion หรือเขียนใน sticky note ทุกครั้ง — DevLog Bot แก้ปัญหานี้ด้วยการให้บันทึกได้เลยจากที่ที่ทำงานอยู่
การใช้งาน
# บันทึก log สั้นๆ
/log ปรับ layout ให้ responsive สำหรับ mobile
# บันทึกพร้อมระบุโปรเจค
/log --project creative-space แก้ bug การ sort content ตาม date
# ดูสรุปวันนี้
/summary today
# ดูสรุปรายสัปดาห์
/summary week --project creative-space
ฟีเจอร์หลัก
- slash commands — บันทึก log ด้วยคำสั่งง่ายๆ ผ่าน
/log - project tagging — จัดหมวดหมู่ log ตามโปรเจค ค้นหาย้อนหลังได้
- auto summary — สรุปสิ่งที่ทำรายวันและรายสัปดาห์ ส่งเข้า channel อัตโนมัติตอนเช้า
- export — ส่งออกเป็น Markdown หรือ CSV เพื่อนำไปใช้ต่อ
Tech Stack
- TypeScript + Discord.js — type-safe bot development
- SQLite (better-sqlite3) — เก็บ log ในเครื่อง ไม่พึ่ง cloud database
- node-cron — ตั้งเวลาส่ง summary อัตโนมัติ
Architecture
DevLog Bot
├── src/
│ ├── commands/ — slash command handlers (log, summary, export)
│ ├── db/ — SQLite schema + query functions
│ ├── scheduler/ — cron jobs สำหรับ auto summary
│ └── utils/ — formatters, parsers
├── data/
│ └── devlog.db — SQLite database (gitignore)
└── bot.ts — entry point, event registration
การ Deploy
Bot รันบน VPS ส่วนตัว ด้วย PM2 สำหรับ auto-restart:
# start bot
pm2 start dist/bot.js --name devlog-bot
# ดู log
pm2 logs devlog-bot
# restart อัตโนมัติเมื่อ server รีบูต
pm2 startup && pm2 save
ตัวอย่าง Auto Summary Output
📋 DevLog Summary — 14 มิ.ย. 2025
🔨 creative-space (5 entries)
• แก้ dark mode FOUC โดยใส่ inline script ก่อน CSS
• เพิ่ม TOC component ด้วย IntersectionObserver
• ปรับ Card hover animation
• build ผ่าน 49 หน้า
Total: 5 log entries | 3 projects tracked
สิ่งที่เรียนรู้
Discord API ซับซ้อนกว่าที่คิด — Slash commands ต้องลงทะเบียนกับ Discord API แยกต่างหาก และมี rate limit ที่ต้องจัดการ
SQLite เพียงพอสำหรับ personal tool — ไม่จำเป็นต้องมี database server ขนาดใหญ่สำหรับ bot ที่ใช้คนเดียว SQLite เร็วและง่ายกว่ามาก
Conversational UX ต่างจาก Web UX — การออกแบบคำสั่ง bot ต้องคิดจากมุมมอง “พิมพ์” ไม่ใช่ “คลิก” — ต้องสั้น จำง่าย และ error message ต้องชัดเจนมาก
Type safety ใน Discord.js — Discord.js v14 + TypeScript strict mode ช่วย catch ข้อผิดพลาด interaction options ก่อน runtime ทำให้ debug ง่ายขึ้นมาก