Over the past few months, our team has been building more and more slidedecks using web frontend technologies with coding harnesses like Claude Code, but a common complaint is to make even small edits we need to edit the code either manually or via the harness.
To avoid this loop, I ended up creating Bento, a single HTML file with everything you need in a slide tool including animations and shared editing. There's no install or cloud login, everything works offline. The default deck is around 560 KB and it doesn't need to fetch anything once you got it.
Open it in a browser and then you can edit, present, print and save. Share it via email or via Airdrop and all they need is a browser to edit, present and also do live collab on the slides. Drop it in to Claude or ChatGPT to transform existing pptx files into Bento slides. There is no cloud involved, only an encrypted blind relay to allow for shared editing. The relay doesn't see any of the data.
Check it out at https://bento.page/slides/ which takes you straight to the editor.
Go to https://bento.page/guestbook/ to try out the live guestbook to experience share editing / collab.
There is also a gallery with some sample decks on the website - https://bento.page/
All the code is MIT licensed and you can find it here - https://github.com/nyblnet/bento . I used reveal.js with several other libraries (including some homegrown ones), and Claude Code.
Comments URL: https://news.ycombinator.com/item?id=49008211
Points: 588
# Comments: 141
Hacker News 讨论
590 points · 141 comments · 查看原帖
- starfallg
Hi, I'm the creator of Bento. Just wanted to share a bit more about how I created it beyond what's in Github. The file contains more or less two sections. There is a plain block of JSON near the top of the file which is the slide data. You can read, grep, or point a harness at it. The app itself is in a base64 blob that loads through a small shim which deflates in the browser with DecompressionStream, which keeps the package small and so that we don't need to fetch any external files at runtime. File System Access API is used for JSON writeback into the same file, which falls back to a plian download and all updates are ECDSA signed. I started with reveal.js which served as a base, and incorporated GSAP/Flip to handle the animation. Then I added charting with echarts, but due to a number of issues with size and how the worked, I ended up re-implementing both. What I'm most pleased about
- praveer13
This is amazing. I also think this will become more common. I feel there is a lot of software that can just be served locally via html/typescript/react etc and even have local state. There's just not been an economic incentive till now. I am personally using kimi k3 to create a mobile friendly set of games, starting from math like linear algebra to quantum physics - neurodivergent friendly, completely local state, served from github pages - to get someone interested in the field. This needs an economic incentive to exist without LLMs, because of so much different expertise needed, and time. if anyone's interested in the games let me know - i plan to play it myself, improve it, remove bugs etc before publishing on HN.
- purple-leafy
Client side only and base64 compression tricks are a clever thread, and shameless self promotion but one I’ve been pulling with my dead but novel browser game [0] snibble.gg (tutorial sucks but once you get past it it’s fun to watch the bots play) Basically everything is client side generated from a seed - entire games and their replays get stored in a tiny url - pretty much every possible game ever fits in a version 40 QR code It’s snake X scrabble X PvP [0] https://snibble.gg
- Willamin
I recently made a very similar tool but focused on making small React apps instead of presentations. A basic starter html file with an example app: https://glider-app.netlify.app/glider.html Docs: https://glider-app.netlify.app/docs.html The docs aren't very polished yet but it's quite usable! It bundles a JSX transpiler, a code editor, and supports saving to a file or localstorage. It supports "ejecting" to separate the shell (handling saving files, transpiling, editing, etc) from the JSX and the JSON data. I also threw together an iOS app in which you can save these mini apps, allowing for longer term saving of data and code edits without relying on localstorage alone, making the save/refresh loop seamless. It includes a sandbox, preventing any saved mini apps from making network calls, but allows the user to enable network usage on a per-app basis. I'd like to include more QoL feature
- notpushkin
> Go to https://bento.page/guestbook/ to try out the live guestbook to experience share editing / collab. My M1 Mac froze in the end (had to hard-reboot), but that was so much fun! I guess there’s a reason Figma uses WASM and a custom renderer, though I guess your implementation should work fine for most cases (i.e. not when all of HN are trying to edit everything simultaneously :^) Two notes: 1. It would be nice if another person changing something unrelated to what I’m doing didn’t reset the focus for me. 2. WAY too llm-y copy both on the landing page and the example deck. Your HN submission text is way easier and more pleasant to read. And huge kudos for releasing this as FOSS!
- calebm
Awesome. I've been trying to promote this kind of Single-File Web Apps as a concept - feel free to add this to the proposed Wikipedia page: https://en.wikipedia.org/wiki/Draft:Single_File_Web_Apps
- d4rkp4ttern
Love it. Like some others here, I've been making html presentations with code-agents and they come out really nice. Other alternatives for that suit different purposes are these: - slidev markdown-based slides, I often have a code-agent make these. https://github.com/slidevjs/slidev - typst slides are great looking too, especially with math etc. Again easy for agents to do One minor nit: Based on the title, I thought this was literally a tool that had something to do with PowerPoint, but "PowerPoint" is used here as a synonym for "Presentation", which is ironic/unfortunate given how many dislike PowerPoint.
- aag
What an ambitious and impressive project! I'm going to try it. One note: The home page says "Nothing phones home," but the Bento files I've examined include a cloudflareinsights.com beacon.