- รวมเอกสาร/ตัวแก้ไข/ตัวดู/เครื่องมือนำเสนอไว้ในไฟล์
.bento.htmlไฟล์เดียว เป็นทางเลือกแทน PowerPoint ที่เปิด แก้ไข และนำเสนอได้ถ้ามีแค่เบราว์เซอร์ - ไฟล์เดียวขนาดประมาณ 570KB ทำงานเป็นแอปพลิเคชันเต็มรูปแบบ สามารถบันทึกและส่งต่อทางอีเมลหรือ AirDrop ได้โดยไม่ต้องมีบัญชี/คลาวด์/โปรแกรมติดตั้ง
- ข้อมูลสไลด์ถูกเก็บเป็น JSON แบบอ่านได้ภายในไฟล์ ทำให้ AI agent อย่าง Claude Code/Codex/Gemini/ChatGPT แก้ไขไฟล์ได้โดยตรง
- หากส่งไฟล์
.pptxเดิมให้ AI ไปพร้อมกัน ก็สามารถ เขียนใหม่ ให้เป็นสไลด์ที่ใช้ความสามารถของ Bento เช่น Morph และกราฟแบบเรียลไทม์ได้ แทนการแปลงแบบตรง ๆ - รองรับทรานซิชัน Morph/กราฟ/วิดีโอ/เสียง/การทำงานร่วมกันแบบเข้ารหัสเรียลไทม์ และมีแผนจะออก Docs กับ Sheets ในรูปแบบไฟล์เดี่ยวแบบเดียวกันต่อจาก Slides
ไฟล์เดียวที่เป็นทั้งเอกสารและแอป
- ภายใน
.bento.htmlมีทั้งสไลด์และโปรแกรมแก้ไขทั้งหมดรวมอยู่ด้วย - เมื่อเปิดไฟล์ในเบราว์เซอร์ ตัวแก้ไขจะเริ่มทำงานทันที และเมื่อบันทึก ข้อมูลเอกสารจะถูกเขียนกลับลงในตัวไฟล์เอง
- ฟอนต์/รูปภาพ/กราฟก็ถูกรวมไว้ด้วย จึงเปิดและนำเสนอได้อย่างอิสระด้วยแค่สำเนาไฟล์
- ในโหมด Offline จะปิดกั้นการอัปเดตและการทำงานร่วมกัน เพื่อให้ ทุกอย่างประมวลผลอยู่ในเครื่อง
- สามารถรันได้ทันทีบนเบราว์เซอร์ที่ Bento/Slides หรือดาวน์โหลด ไฟล์แอปพลิเคชันเดี่ยว ได้
รูปแบบเอกสารสำหรับ AI agent
- ข้อมูลเอกสารถูกเก็บเป็น JSON แบบข้อความล้วน ในบล็อก
<script type="application/bento+json" id="bento-doc">ด้านบนของไฟล์ - สามารถอ่านเอกสารปัจจุบันได้ด้วย
window.bento.docและโหลดเอกสารที่แก้ไขแล้วได้ด้วยwindow.bento.loadDoc(json) - AI agent สามารถเพิ่มสไลด์/กราฟ/โน้ตผู้บรรยาย ฯลฯ ได้ด้วยการแก้เฉพาะ JSON โดยไม่ต้องแตะโค้ดแอปพลิเคชัน
- ใช้ได้ทั้งกับ coding agent อย่าง Claude Code/Cursor/Aider และแชตบอตทั่วไปที่รองรับการแนบไฟล์
- สำหรับแชตบอตที่ไม่รองรับไฟล์ สามารถคัดลอก JSON ไปแก้ไขแล้ววางกลับเข้าไปใหม่ได้
- หากใช้ Ollama/llama.cpp/LM Studio ก็สามารถรันการแก้ไขด้วย AI แบบโลคัลได้ทั้งหมด
- มี agents.md เพื่อแนะนำให้ AI agent ใช้งาน Bento ได้อย่างถูกต้อง
ความสามารถด้านการนำเสนอที่ใกล้เว็บมากกว่า PowerPoint
- รองรับ ทรานซิชัน Morph ที่ทำให้องค์ประกอบที่มี
idเดียวกันเคลื่อนที่อย่างเป็นธรรมชาติระหว่างสไลด์- เพียงคัดลอกสไลด์เดิมแล้วขยับองค์ประกอบหรือเปลี่ยนสไตล์ ก็จัดทรานซิชันได้โดยไม่ต้องสร้างไทม์ไลน์แยก
- มีเอนจินกราฟในตัวที่ไม่มี dependency สำหรับวาดกราฟแท่ง/เส้น/วงกลม/กระจาย
- กราฟแท่ง/เส้น/วงกลม/กระจายยังคงใช้งาน tooltip/การซูม/การสลับข้อมูลได้แม้ระหว่างการนำเสนอ
- สามารถฝังวิดีโอและเสียงไว้ในสไลด์ หรือเชื่อมกับไฟล์ภายนอกได้
- ไฟล์ PowerPoint เดิมไม่ได้ถูกนำเข้าแบบตรง ๆ แต่ให้ AI จัดองค์ประกอบใหม่เป็นเอกสาร Bento
- รองรับหน้าจอผู้บรรยาย/คอมเมนต์/เลย์เอาต์/ส่งออก PDF/หลายขนาดหน้า/ภาษา UI 8 ภาษา
- การแก้ไขเน้นเดสก์ท็อป แต่ ยังดูและนำเสนอได้บนสมาร์ตโฟน
การทำงานร่วมกันแบบ local-first
- เมื่อเริ่ม live session จากไฟล์ ผู้ใช้ที่เปิดสำเนาของไฟล์เดียวกันจะเข้าร่วมพื้นที่ทำงานร่วมกันได้
- ข้อมูลการทำงานร่วมกันถูกเข้ารหัสแบบ end-to-end ด้วย AES-GCM และเซิร์ฟเวอร์ตัวกลางจะจัดการเฉพาะข้อความเข้ารหัส
- CRDT ที่พัฒนาขึ้นเองทำหน้าที่ดูแลการแก้ไขแบบเรียลไทม์และการรวมการเปลี่ยนแปลงจากออฟไลน์
- ตัวไฟล์เองมีคีย์สำหรับการทำงานร่วมกันอยู่แล้ว ดังนั้นการส่งไฟล์จึงทำหน้าที่เป็นวิธีเชิญไปด้วย
- แม้เนื้อหาที่แก้ไขจะแยกกันไปตอนออฟไลน์ เมื่อกลับมาเชื่อมต่ออีกครั้งก็จะถูกรวมแบบสองทาง
โรดแมปและไลเซนส์ของ Bento/Suite
- Bento/Slides ที่กำลังแจกจ่ายอยู่ในตอนนี้คือแอปตัวแรกของ Bento/Suite
- มีแผนจะออก Bento/Docs และ Bento/Sheets เป็นไฟล์
.bento.htmlแบบ self-contained แยกอิสระของตัวเอง - ซอฟต์แวร์ Bento เองเผยแพร่ภายใต้ MIT License
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผมเป็นผู้สร้าง Bento เอง ด้านบนของไฟล์จะมี บล็อก JSON ธรรมดา ซึ่งเป็นข้อมูลสไลด์ ทำให้อ่าน, grep หรือประมวลผลด้วยเครื่องมืออัตโนมัติได้ แอปเป็น blob แบบ base64 ที่โหลดผ่าน loader ขนาดเล็ก และแตกไฟล์ด้วย
DecompressionStreamของเบราว์เซอร์เพื่อให้แพ็กเกจมีขนาดเล็ก และไม่ดึงไฟล์ภายนอกตอนรันใช้ File System Access API เพื่อเขียน JSON กลับไปยังไฟล์เดิม และถ้าไม่รองรับก็ fallback เป็นการดาวน์โหลดตามปกติ โดยทุกอัปเดตมีการเซ็นด้วย ECDSA เดิมทีใช้ reveal.js เป็นฐาน แล้วเพิ่ม GSAP/Flip กับ echarts เข้าไป แต่เพราะปัญหาเรื่องขนาดและพฤติกรรม จึงเขียนฟีเจอร์แอนิเมชันและแผนภูมิใหม่เองทั้งหมด
โดยเฉพาะอย่างยิ่งผมพอใจที่ การทำงานร่วมกันด้วย CRDT ทำงานได้ลื่นไหล relay แบบ blind ขนาดเล็กที่รันบน Cloudflare Durable Objects จะเห็นเฉพาะข้อมูลที่เข้ารหัสแล้วของไคลเอนต์ และการทำงานร่วมกันจะถูกปิดไว้จนกว่าจะเริ่มเซสชันด้วยการแชร์ไฟล์เชิญ ใช้คีย์ของผู้ใช้จัดการสิทธิ์เข้าถึง จึงมีผู้ใช้แบบอ่านอย่างเดียวได้ และยังเพิกถอนสิทธิ์การทำงานร่วมกันแบบเรียลไทม์เป็นรายผู้ใช้ได้ด้วย
ถ้าฟีเจอร์การทำงานร่วมกันเปิดให้ผู้ใช้ทุกคนโดยค่าเริ่มต้น ก็สงสัยว่าจะมีความเสี่ยงที่ทราฟฟิกจะไหลไปถล่มบัญชี Cloudflare หรือไม่
ดูเหมือนว่าคุณตัดฟีเจอร์นี้ออกเพื่อให้เหมือน PowerPoint แต่ผมชอบฟีเจอร์นี้ที่สุดใน Reveal.js เลยหวังว่าจะไม่ลืมมัน
ผมเคยทำเครื่องมือคล้ายกันที่เน้นการสร้างแอป React ขนาดเล็กแทนพรีเซนเทชัน HTML พื้นฐานที่มีแอปตัวอย่างอยู่ ที่นี่ และเอกสารอยู่ ที่นี่ แม้ยังไม่ได้ขัดเกลา แต่ก็ใช้งานได้ดีพอ
มี ตัวแปลง JSX และตัวแก้ไขโค้ด ในตัว รองรับการบันทึกลงไฟล์หรือ
localStorageและยังสามารถส่งออกโดยแยก JSX กับข้อมูล JSON ออกจาก shell ที่ทำหน้าที่บันทึกไฟล์ แปลง และแก้ไขได้ด้วยผมยังทำ แอป iOS สำหรับเก็บมินิแอปด้วย ไม่ได้พึ่งแค่
localStorageแต่บันทึกการเปลี่ยนแปลงของข้อมูลและโค้ดในระยะยาว ทำให้ flow การบันทึกและรีเฟรชลื่นไหล sandbox จะบล็อก network call ของแอปที่บันทึกไว้ แต่สามารถอนุญาตเป็นรายแอปได้ และในอนาคตอยากเพิ่มฟีเจอร์อำนวยความสะดวกอย่าง editor แบบ native ด้วยคิดว่ารูปแบบแบบนี้จะพบได้บ่อยขึ้น ซอฟต์แวร์จำนวนมากสามารถ ให้บริการแบบ local ล้วน ๆ ด้วย HTML, TypeScript, React ฯลฯ และเก็บ state ไว้ในเครื่องได้ แต่จนถึงตอนนี้ยังขาดแรงจูงใจทางเศรษฐกิจ
ส่วนตัวผมกำลังใช้ Kimi K3 สร้างเกมที่เป็นมิตรกับมือถือ ครอบคลุมตั้งแต่พีชคณิตเชิงเส้นไปจนถึงฟิสิกส์ควอนตัม โดยคำนึงถึงผู้ใช้ที่มีความหลากหลายทางระบบประสาท เก็บ state ทั้งหมดไว้ในเครื่อง และให้บริการผ่าน GitHub Pages เพื่อชวนให้คนสนใจสาขานั้น เป็นโปรเจกต์ที่ต้องใช้ความเชี่ยวชาญหลากหลายและเวลา จึงคงไม่คุ้มทางเศรษฐกิจถ้าไม่มี LLM ผมตั้งใจจะเล่นเอง ปรับปรุง กำจัดบั๊ก แล้วค่อยเผยแพร่บน HN
ผมสนุกกับการใช้ สมุดเยี่ยมชมแบบเรียลไทม์ แต่สุดท้าย M1 Mac ของผมค้างจนต้องบังคับรีบูต ถ้าไม่ใช่สถานการณ์ที่ทั้ง HN แก้ไขพร้อมกัน ก็น่าจะทำงานได้ดีเป็นส่วนใหญ่ แต่ดูเหมือนมีเหตุผลที่ Figma ใช้ WASM และ renderer แบบกำหนดเอง
เมื่อผู้ใช้คนอื่นแก้ไขเนื้อหาที่ไม่เกี่ยวข้อง ไม่ควรทำให้ input focus ปัจจุบันถูกรีเซ็ต อีกอย่าง ข้อความบน landing page และ deck ตัวอย่างดูเป็นสำนวน LLM มากเกินไป ส่วนข้อความที่ส่งขึ้น HN อ่านง่ายกว่ามาก การเผยแพร่เป็นซอฟต์แวร์โอเพนซอร์สเสรีเป็นเรื่องยอดเยี่ยม
เห็นด้วยเรื่องข้อความเช่นกัน แต่ผมไม่ค่อยมั่นใจในการเขียน และมีเวลาน้อยระหว่างงานกับการเลี้ยงลูก เลยตั้งใจจะค่อย ๆ ปรับแก้ไป
ผมกำลังเผยแพร่แนวคิด เว็บแอปไฟล์เดียว แบบนี้ และน่าจะเพิ่ม Bento ลงใน ร่างบทความ Wikipedia ที่กำลังเสนออยู่ได้
.htmlเพียงไฟล์เดียวที่รวมรูปภาพ ไอคอน และสไตล์ทั้งหมดแบบ inline และทำงานออฟไลน์ได้ ตอนนั้นพูดเล่น ๆ ว่ามันคือ single page app ที่แท้จริงตัวแรกyouWikipedia ควรเป็นแหล่งข้อมูลระดับตติยภูมิ ไม่ใช่ที่โปรโมตแนวคิดที่อยากทำให้เป็นที่ยอมรับ จึงดูไม่ใช่สถานที่ที่เหมาะนักเจ๋งดีที่แค่บอก Claude เกี่ยวกับ เทคโนโลยี Bento ก็ใช้งานได้
หลังจากใช้ draw.io ทำไดอะแกรมมานาน ผมรู้สึกว่าวิธีเก็บเอกสารแบบเป็น iframe blob ที่มีทั้งตัวแก้ไขและไฟล์อยู่ด้วยกันนั้นฉลาดดี แต่ draw.io ไม่ได้รวมตัวแก้ไขไว้ในไฟล์เอง จึงต้องโหลดโค้ดผ่านการเชื่อมต่อเว็บ
เคยหวังว่าจะนำแนวทางนี้มาเป็นกรณีใช้งานหลักได้ และ Bento ก็แทบจะตรงกับภาพที่จินตนาการไว้
ตอบโจทย์ที่พบบ่อยมากในสภาพแวดล้อมองค์กร บางทีมในบริษัทเลิกใช้ผลิตภัณฑ์คลาวด์หรือเดสก์ท็อป แล้วหันไปใช้ เครื่องมือบน HTML·JavaScript เพราะบั๊กของซอฟต์แวร์นำเสนอ/แสดงผลข้อมูลเดิมไม่ได้รับการแก้ไข และไม่มีการเพิ่มฟีเจอร์เฉพาะตามต้องการ
ดูเหมือนพวกผู้มีอำนาจเล็ก ๆ ในฝ่าย IT ภายในองค์กรควรเริ่มกังวลได้แล้ว
กำลังคิดทำเครื่องมือนำเสนอแบบสแตนด์อโลน โดยติดตั้ง Bento เปล่าเป็น PWA ผ่านฟีเจอร์ ‘ติดตั้งไซต์เป็นแอป’ ของเบราว์เซอร์ แล้วกรอกชื่อผู้เขียน ฯลฯ อัตโนมัติ จากนั้นทำให้เป็นแบบอ่านอย่างเดียวเพื่อให้ผู้ใช้ ‘บันทึกเป็น’
ถ้าโปรเจกต์มีฟีเจอร์ติดตั้งเอกสารพื้นฐานเปล่าเป็น PWA ซึ่งเป็นแบบอ่านอย่างเดียวยกเว้นข้อมูลผู้เขียน ก็น่าจะดี
จะลองดูเพิ่มเติมว่าจะรักษาฟีเจอร์ที่ผู้ใช้ต้องการในเวอร์ชันโฮสต์ พร้อมกับหลักการพิเศษของ Bento ได้อย่างไร
ถ้าใช้ code agent ทำพรีเซนเทชัน HTML ผลลัพธ์ออกมาค่อนข้างดี อาจใช้ Slidev ที่อิง Markdown ตามวัตถุประสงค์ หรือให้ agent ทำ สไลด์ Typst ซึ่งสวยเป็นพิเศษสำหรับนิพจน์คณิตศาสตร์ ฯลฯ ก็ได้
อย่างไรก็ตาม ตอนเห็นชื่อเรื่องนึกว่าเป็นเครื่องมือที่เกี่ยวข้องโดยตรงกับ PowerPoint แต่จริง ๆ แล้วเป็นการใช้ PowerPoint ในความหมายพ้องกับ ‘พรีเซนเทชัน’ มากกว่า ซึ่งก็ออกจะย้อนแย้งอยู่บ้างเมื่อคิดว่ามีคนจำนวนมากไม่ชอบ PowerPoint