Building a product is slow, but steady going. I jotted down this list of the various hurdles and went through to get a useable product today:
- Design the UI: most of this was done for version 1.0 five years ago
- Understand the basics of Javascript (with 1990s Pascal to start from)
- Understand post 1990s programming concepts: objects, methods
- Get an environment up and running so that I actually could run a simple piece of code
- Find a way to get access to the data (presentations) version 1.0 was producing.
- Setup an environment that turns a program that says “Hello world” and turns it into a desktop app
- Figure out a way to scale text in a browser environment, preserving the exact proportions of design elements (resize your web page, this is not what most web pages need).
- Get github and multiple versions to work
- Build the first rendering engine that actually displays a chart: text boxes are easy, scaling images a bit trickier, data charts get nastier even
- Find a way to register clicks and make things editable: shapes, menus, in different context.
- Copy the rendering engine to a generic format (for thumb nails in story mode for example)
- Duplicate the app engine to enable multi-screen presenter mode (running 2 processes and a master process that talk to each other)
- Enabling on-screen editing of text, graphs, image dragging, image cropping, flipping
- Building the grid editing system (implementing my patent)
- Build the PowerPoint conversion
- Build the PDF conversion
- Build the image export
- Build the printing functionality
- Add automatic 16:9 to 4:3 and back conversion
- Add automatic dark/white background conversion (beyond simply changing the background color)
- Enable multiple windows (each window is a full copy of the render process) and coordinate settings between them
- Build user authentication: pro users get features others don’t have access to via a web server, involving password hashing and building a user database
- Build the first version of the online template database: search slide layouts inside the app, but pull data from the central server
- Hook up unsplash image search
- Hook up noun project icon search
- Create an auto-update mechanism that updates the desktop app in the background when new versions are released
- Get the mac app to run on windows as well
- Get certified with Microsoft and Apple so that people don’t receive scary warnings when installing the software
- Build the full-scale slide template server, integrating the PowerPoint-only content from the old one
- Get payments working
- Build the front end of the marketing web site and the template store
- Get PowerPoint conversion to work on the server as well
- Build the management console to manage slides, users, and the search algorithms
We are going into the next phase now with a live product, direct user feedback is exciting, but it also means I cannot pull off some of the dramatic overnight feature and architecture changes I did over the past year. To be continued.
Photo by Thomas Galler on Unsplash