Introducing DeckDeckGo: the web open source editor for presentations

David Dal Busco on September 24, 2019

We are very happy and excited to share with you today our web open source editor for presentations: DeckDeckGo I still almost not believe that we ... [Read Full]
markdown guide

Awesome project. I use Google drive for everything and now I'm giving a try to latex presentations just for code highlighting. I copied, pasted and highlighted manually code in Google slides. If you feature code blocks in DDG you'll buy me 😍


Yeah, code blocks would be a great feature for programming presentations!

I just checked the demo, and it seems it is already there:


Yes it is already there. We have built a Web Components around Prism therefore a lot of different type of codes are already recognized.

Moreover, if you want, you could display line numbers, highlight specific lines and style the content (color and basic font size).

You could also duplicate and move slides, so once you have styled one piece of code you could clone it and replace it with your other piece of codes (if you have many to display).

In the future we would like to improve the styling by supporting some "themes", specially for the colors, like palette of colors.


Awesome, a few tech questions just curious: why StencilJS and not litElement? While I'm building my presentation, you are saving and deploying the project constantly to AWS? How is that happening, and what platform on AWS allows for that?


I went with Stencil probably because I already had a small experience with it and with Ionic. And well, I love it: Typescript, its tooling, prerendering, polyfill etc. it has plenty of nice add-ons on the top of the Web Components themselves which makes the developer experience just super cool. Also how Prop() and State() are "working" in Stencil are a really good match with our editor (as we are saving HTML in the DB).

That being said, I never tried litElement but it does look super cool too.

While you are editing your presentation, we are saving it constantly in Firestore. To do so, we are deboucing some events and if changes are noticed, then saves are performed. If you are interested about this, you could for example have a look at this helper class.

On demand, when you decide to publish or update your publication, the data are send to AWS, notably to a S3. During that process we generate or update a Progressive Web App for your presentation.

We have listed the services we are using in a specific page of our tool (list of services), it gives a bit, I hope, of transparency about it for the users.

Let me know if you've got more questions!


P.S.: About "debouncing", I published last week a blog entry about it, just in case


Noice :)

Hey, it looks like the duck's beak in the logo got mixed up with the background color or it could be me just being weird ;) No offense to David and team. Great Job with the app.


It was actually the choice of Anita which designed and offered the logo πŸ˜‰


Great work! Gave it a try and it seems like you have a CORS error when trying to publish a presentation:

CORS error on deckdeckgo


I just tried out and it worked out πŸ€”

Was that a new presentation or a previous one you would have had created with the (closed) beta version?

If new one, could you try to refresh your browser/the app, double check that you are login in and try again?

Thx a lot for the help!


I created the presentation today right after I was done reading this post.
Clearing the cache and reloading the page did it, now it is published. Thanks for the help :)

And what a cool presentation 🀩

Happy to hear that and thx for trying out DeckDeckGo πŸ™

P.S: We will keep the issue under the radar!


Not so long time ago I needed to make a presentation. That time I found that I'm tired to use PowerPoint and then save it to flash card and after show it in another pc. I think DeckDeckGo is really cool tool for presenting any Idea. Thank you and team. I β™₯️ it)


I'm with you on the portability. I like the idea of being able to edit and review my presentations anywhere, on any devices, any time. Like being at home, editing my slides, then taking the tram to go to the event and reviewing it quickly on my phone to finally showcasing it on a projector.

Happy to hear you like the idea, thx for the feedback πŸ™


Well done, very useful and well designed app - congrats on the launch!


I was reading your article with interest until I got to the animated gif for β€˜Use an app to share other apps’. I find the way the gif turns a real living obese baby of colour into a comic spectacle very disturbing and exploitative. I am sure you intended no harm or offence but imagine how that child might feel as they grow older if they saw that image of themselves being used as a joke.


Looks amazing.. something to move away from google slides. A question, how well is it's offline tolerance. Only benefit of google slides is that it's extremely functional even when it's offline.


The published presentations should work offline (PWA and service worker).

The editor itself is not yet offline ready but it's of course on our agenda/mind.


Nice to know that editor's offline capabilities are on your agenda. Then it would be truly google slides replacement. Thanks for open sourcing this. Nice to see you using Haskell. I learned it in college days as a hobby, but never got around actually using it. Everyone just want to use JS these days.

Thanks for the warm feedback! I think it's cool to try to mix technologies and Nicolas is, at least in my eyes, a true Haskell wizard πŸ˜‰


That remote app looks really, really useful -- a request though: I'd really like to use the annotations feature, but I think it would be a lot easier to use if the slide content was shown on the app too -- otherwise one has to kind of guess where the annotation will end up.

All-in-all, this looks like a serious competitor to Google Slides, and, tbh, I find the editing experience in Google Slides to be rather πŸ’©, so I'm looking forward to taking this for a good spin the next time I have to do a presentation!


Thx Davyd for the cool feedback πŸ‘

Agree with you. I've got the idea since a while now to be able to synchronize the content in the remote too ( I never went too far forward with that idea, mostly because we developed many other features, the editor and also because I didn't had the inspiration on how to present the content in a correct way (in terms of format, projector is probably landscape, remote is portrait). But this could be solved soon in the future as we are currently discussing a rework of the UX and design of the remote to make it more user and presenter friendly (


Lol, wanted to implement this project since 2010 and never got the chance to do it, very cool, thank you for posting it!


Bravo les gars. Γ‡a Γ  l'air d'Γͺtre le future!


Haha excellent! C'est le premier message de la journΓ©e que je lis, elle commence de bonne humeur du coup, merci πŸ˜ƒ


This looks really nice and promising. I've always chosen Google Slides to create my presentations but I'm giving DDG a try for one in October 😁✌🏽


Yeah awesome πŸ‘ Ping me for any feedbacks, questions or support, I'm happy to help!


why duck toy for logo?
is it because duckduckgo ? :)))

cool project. but need more design for UI.


Is it some sort of coincidence or do you have some DuckDuckGo background history to tell us?


Currently, you are right, assets and presentations you would publish are made public on the internet.

In the other hand, presentations you are editing and you would not share are private.

But we aware that this concern might be a need for some, we should think about it for the future.


Now it sounds interesting but I will surely want a HTML or PDF export


The export of the source is for sure somewhere in our mind πŸ˜‰

code of conduct - report abuse