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 is how seamless the CRDT works. The blind relay is a small file that runs on Cloudflare Durable Objects, and all it sees are the encrypted data from the clients. Collab is off until we turn it on in the app (by starting a session by sharing by invite file), and then some sets of keys are generated. Access is handled by user key, and you can have read-only users, and also revoke live collab access by user as well.
show comments
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.
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!
show comments
georgeburdell
Hey just wanted to say I think this fills an extremely common niche in the corporate world. There are a couple of teams at my company who switched to some variant of fancy html/javascript and away from either cloud or desktop copies of off-the-shelf presentation or visualization software because they were tired of bugs not being fixed or custom features not getting added
Internal IT fiefdoms everywhere should be very afraid
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:
- 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.
mguerville
As someone who makes a living in PowerPoint but loves tech and FOSS, congrats. I'm not sure I fully follow how collaborating works, you may want to write an explainer that assumes nearly zero engineering knowledge. Looking forward to the docx and xlsx version, I'll follow on gh to stay up to date
Shorel
I really loved when this was a feature of the Opera browser, before they went chromium.
fh67
I'm thinking of installing a blank bento for users as a pwa (using browser install site as app), script the author name etc and then make the file read only so they are forced to save as, for users to use as a standalone powerpoint tool.
Maybe you can implement this into the project, a blank default read only (except author details) that installs as a pwa.
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.
show comments
syhol
Looks very good and I'm excited to try it out properly. It's a shame about the name considering a lot of self-hosters will be using BentoPDF. But thats one of two hard things in Computer Science.
show comments
seu
This looks like a great idea, thanks for sharing it!
dptrsa
I've been reading HN much longer than I've had an account, and I have never once left a comment or interacted with any post. Had to break the seal to say great job with this. Really fantastic out of the box, and timely thinking. I'll be using this for sure.
show comments
trentor
I like it. I used Claude and Qwen to build single file HTML decks in the last few months. The nicest thing with HTML decks is that you can not only ship the decks but integrate your prototype/demos in the same file integrated into the flow of your deck. Would love to see a feature like that.
show comments
mklarmann
I recently did something similar with just asking claude to create me a presentation with GSAP animations. With a some nice features to embed apps, switch the language while presenting, etc. - it works like a charm: https://eos-lci.gitlab.io/eos-lci-presentations/klimabuendni... (all open source)
TeeWEE
Was using Reveal.js which worked well because it can use any HTML or any plugin.
Bento works with a predefined schema, so you cant use any HTML library (Such as Mermaid.js) if you need it in your presentation.
But then again, often you dont need it.
Just created a presentation with Bento... I do think Reveal.js gives you more raw power. But I like bentos single html page design, and you can easily edit it manually. You cant do that with Reveal.js
show comments
jmuguy
This might just be a Firefox thing but the animations are really struggling on my system here - very slow and choppy.
dushan01
I really like it, you are a genius
momojo
This blew my socks off. Theres something so satisfying about knowing everything I need is in a single file. I know the caveat is *1. Have a modern browser*, but this is my go to format when trying out random ideas. I even have a macro called `try` that sends me directly to a new folder called `scratch/YYYYMMDD_<try_bento>`.
Great work! I hope to see more and more apps like this in the spirit of "Toss it all into context"
show comments
ozhero
This is excellent work!
Thanks for sharing and deserves a lot of Github stars!
ethin
This is so cool! When I initially saw the title I was wondering how this is different from SlideJS or similar, but this is really cool and now I'm wondering if this could (at least in theory) be integrated into something like Pandoc as an output option?
show comments
thecombjelly
Very cool project! It looks nice and the technical aspect of how sharing/CRDT is implemented is a really great idea! I would definitely be interested in the ability to change the relay; ideally to something self-hosted.
show comments
luanmuniz
This is awesome! I do love this software is one file thing. A breath of fresh air on these you-rent-everything-owns-nothing days
show comments
BIGFOOT_EXISTS
Absolutely love seeing products like this. Starred, saved link, will definitely use soon.
show comments
skybrian
This is very neat!
For people clicking on a link to some slides that someone shared, it seems like starting out in viewing mode with a prominent edit button might be better than starting out in edit mode?
show comments
vonnieda
This is really clever and is taking a direction I hope to see more software taking! Totally self contained is awesome. Well done!
show comments
shaism
Awesome. Perfect for editing with agents and sharing with coworkers.
- Even works well on mobile.
- Embedding images and videos also works flawlessly.
show comments
francozanardi
Love that it's just one HTML file, really easy way to share software. Great work!
OMG coming from bigtime consulting this is...AMAZING. Thank you!
show comments
ninjahawk1
I’ve honestly been kind of surprised that large companies software hasn’t been recreated for free en masse from the use of AI in a weekend. I’ve definitely seen some cases but it’s not as common as I had personally expected.
stackghost
>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.
This is the best feature.
truetraveller
Great job! How long did this project take total? How much percent is AI generated?
show comments
bflesch
Looks nice, but I'd love to have a setting where all animations can be switched off.
show comments
schainks
This is awesome!
luckydata
this project is a monument to the HUGE failure of the Workspace team at Google to enable agent editing in a way that makes sense.
Google is really shitting the bed in all the way that matters on GenAI and being an ex employee of Cloud I am not in the least surprised about it, just really sad.
show comments
hathym
impressive, bravo!
latexr
Why does the homepage mention AI over 20 times? Why does it mention AI at all? Why is most of it absurdly long and obfuscated base 64, which looks be binary data?
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 is how seamless the CRDT works. The blind relay is a small file that runs on Cloudflare Durable Objects, and all it sees are the encrypted data from the clients. Collab is off until we turn it on in the app (by starting a session by sharing by invite file), and then some sets of keys are generated. Access is handled by user key, and you can have read-only users, and also revoke live collab access by user as well.
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.
> 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!
Hey just wanted to say I think this fills an extremely common niche in the corporate world. There are a couple of teams at my company who switched to some variant of fancy html/javascript and away from either cloud or desktop copies of off-the-shelf presentation or visualization software because they were tired of bugs not being fixed or custom features not getting added
Internal IT fiefdoms everywhere should be very afraid
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
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.
As someone who makes a living in PowerPoint but loves tech and FOSS, congrats. I'm not sure I fully follow how collaborating works, you may want to write an explainer that assumes nearly zero engineering knowledge. Looking forward to the docx and xlsx version, I'll follow on gh to stay up to date
I really loved when this was a feature of the Opera browser, before they went chromium.
I'm thinking of installing a blank bento for users as a pwa (using browser install site as app), script the author name etc and then make the file read only so they are forced to save as, for users to use as a standalone powerpoint tool.
Maybe you can implement this into the project, a blank default read only (except author details) that installs as a pwa.
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.
Looks very good and I'm excited to try it out properly. It's a shame about the name considering a lot of self-hosters will be using BentoPDF. But thats one of two hard things in Computer Science.
This looks like a great idea, thanks for sharing it!
I've been reading HN much longer than I've had an account, and I have never once left a comment or interacted with any post. Had to break the seal to say great job with this. Really fantastic out of the box, and timely thinking. I'll be using this for sure.
I like it. I used Claude and Qwen to build single file HTML decks in the last few months. The nicest thing with HTML decks is that you can not only ship the decks but integrate your prototype/demos in the same file integrated into the flow of your deck. Would love to see a feature like that.
I recently did something similar with just asking claude to create me a presentation with GSAP animations. With a some nice features to embed apps, switch the language while presenting, etc. - it works like a charm: https://eos-lci.gitlab.io/eos-lci-presentations/klimabuendni... (all open source)
Was using Reveal.js which worked well because it can use any HTML or any plugin.
Bento works with a predefined schema, so you cant use any HTML library (Such as Mermaid.js) if you need it in your presentation.
But then again, often you dont need it.
Just created a presentation with Bento... I do think Reveal.js gives you more raw power. But I like bentos single html page design, and you can easily edit it manually. You cant do that with Reveal.js
This might just be a Firefox thing but the animations are really struggling on my system here - very slow and choppy.
I really like it, you are a genius
This blew my socks off. Theres something so satisfying about knowing everything I need is in a single file. I know the caveat is *1. Have a modern browser*, but this is my go to format when trying out random ideas. I even have a macro called `try` that sends me directly to a new folder called `scratch/YYYYMMDD_<try_bento>`.
Great work! I hope to see more and more apps like this in the spirit of "Toss it all into context"
This is excellent work!
Thanks for sharing and deserves a lot of Github stars!
This is so cool! When I initially saw the title I was wondering how this is different from SlideJS or similar, but this is really cool and now I'm wondering if this could (at least in theory) be integrated into something like Pandoc as an output option?
Very cool project! It looks nice and the technical aspect of how sharing/CRDT is implemented is a really great idea! I would definitely be interested in the ability to change the relay; ideally to something self-hosted.
This is awesome! I do love this software is one file thing. A breath of fresh air on these you-rent-everything-owns-nothing days
Absolutely love seeing products like this. Starred, saved link, will definitely use soon.
This is very neat!
For people clicking on a link to some slides that someone shared, it seems like starting out in viewing mode with a prominent edit button might be better than starting out in edit mode?
This is really clever and is taking a direction I hope to see more software taking! Totally self contained is awesome. Well done!
Awesome. Perfect for editing with agents and sharing with coworkers.
- Even works well on mobile.
- Embedding images and videos also works flawlessly.
Love that it's just one HTML file, really easy way to share software. Great work!
Great project. But please check the name:
https://en.wikipedia.org/wiki/Bento_(database)
if you extract ppt it is a xml file !! fyi !
OMG coming from bigtime consulting this is...AMAZING. Thank you!
I’ve honestly been kind of surprised that large companies software hasn’t been recreated for free en masse from the use of AI in a weekend. I’ve definitely seen some cases but it’s not as common as I had personally expected.
>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.
This is the best feature.
Great job! How long did this project take total? How much percent is AI generated?
Looks nice, but I'd love to have a setting where all animations can be switched off.
This is awesome!
this project is a monument to the HUGE failure of the Workspace team at Google to enable agent editing in a way that makes sense.
Google is really shitting the bed in all the way that matters on GenAI and being an ex employee of Cloud I am not in the least surprised about it, just really sad.
impressive, bravo!
Why does the homepage mention AI over 20 times? Why does it mention AI at all? Why is most of it absurdly long and obfuscated base 64, which looks be binary data?
Um, that's amazing... and it's free?
Also, bento: https://github.com/chef/bento. No relation.