It’s been awhile since the last blog post and I have made a lot of progress with the project. Now you can actually download your presentation in a nice .zip archive, all packed with the css and js you need for your viewing pleasure. Nodejitsu entered public beta and being on the waiting list for pretty much 6 months I got an account right away, now the app is also online at here it’s very much up to date, I deploy a new version every time I push updates to the github repo.
A roundup of new features
- Settings, allowing you to customize background color and default font size
- Download button
- Presentation mode in fullscreen (preview for the presentation)
- Updated the code to the latest reveal.js version
- Now with nodejs backend goodies
- A lot of bug fixes
An issue I am currently having is with the user images. The server does not store any content from the slides, it just receives the content adds it to the archive and sends it back your way and I would like to keep it that way for images too. It would be a scalability problem if many images get added at once or even privacy issues. One solution might be to upload the images to imgur when the user adds them to the slides and embed the url or use imgur as temporary storage given that the API provides you with a delete url.
User settings are not available in the downloaded presentation, but they will be soon enough I plan to add a custom css file where all the options will be saved. This file will be created from scratch when the user requests to download his presentation. I need to find a CSS parser of some sort that converts JSON to CSS rules.
Templates would be a nice feature but I’m not sure if I will keep them since you can customly move elements around and position them wherever you like, making it a much for flexible option.
Custom fonts are still on the list. Google Webfonts exposes an API so it is just a matter of making the UX easy for the user to understand.
The backend uses NodeJS, I use 0.8 on my localhost and 0.6 on the server. ExpressJS for routing and templating (ejs module for parsing html, quick and dirty, I will rewrite the template in jade but that is not a priority), requestjs for fetching the different files that go into the archive, node async to make sure those request happen in the correct order and node-native-zip to create the archive.
That’s about it, hope I will manage to accomplish the things I discussed here until my next blog post <3