Marek Vymazal
Funnix

Funnix

Funnix is an online service that teaches reading and math, originally distributed via disc. I converted it into an online subscription service, which remains active today.

Funnix 2: Lesson 2

Converting a Legacy Program

The original Funnix program was developed in Adobe Director, a platform that Adobe officially discontinued on March 14, 2017. Originally distributed via disc, the Funnix required installation on users' machines. As technology advanced, Funnix became incompatible with modern systems, and I was tasked with converting the program into a format that would function on current platforms.

Adobe Director allowed for scripting, which I used to automate the process of extracting the program's content. By writing a script that iterated through every frame of the timeline, I exported an image for each frame, along with critical control flow data—such as when lessons should pause or audio should trigger.

Once the assets and data were extracted, the next challenge was reassembling everything to work on the web. Using Python scripts in Blender, I converted the frames and audio clips into videos, incorporating the lesson and trigger data. I then created a CLI command to automate this process across all lessons.

Funnix: Lesson 1

With the assets now compatible with modern web browsers, the final piece needed was a lesson player. I enhanced the original program's functionality by designing a side panel that allowed users to easily visualize their progress within each lesson and navigate between lessons more efficiently.

Creating a Subscription Service

Funnix: Login Screen

With the program now functioning in the browser, the next step was to create a subscription service. This involved developing several key components, such as user account creation, login screens, subscription payment processing, account management features, and an intuitive program navigation UI. Each element had to integrate seamlessly with the lesson player to offer a smooth user experience.

During this phase, I developed both the front end and back end simultaneously. The front end was built around the existing lesson player, ensuring consistency in design and functionality. To accelerate development and ensure scalability, we leveraged services like AWS for hosting and database management, Stripe for secure payment processing, and Node.js with Express for the back-end infrastructure. This allowed for quick deployment and efficient management of the subscription platform.

Once all the components were in place, the subscription service successfully launched. This marked a significant milestone in my career as I had developed my first fully functional subscription-based service from the ground up.

Funnix: Main Menu

Expanding the Service

With the service live and customers successfully using the program, the next step was to set up a system for schools. This required adding support for purchase orders, administrator logins, and instructor account management features, allowing school administrators to manage multiple users efficiently.

Later in the project, we introduced features like promo code support and an affiliate program to drive user engagement and expand our reach. This project has been an incredible challenge, offering me numerous opportunities to grow and deepen my expertise in live services, front- and back-end development, database management, and scalability.

Final Thoughts

This project involved converting an outdated desktop program into a fully functional, browser-based subscription service. As the sole developer, I tackled everything from front and back-end development to integrating payment systems and setting up features for school accounts. Along the way, I faced significant challenges, from reassembling legacy data for the web to implementing scalability for a growing user base. The experience allowed me to learn and grow in live service management, full-stack development, and cloud infrastructure, all while driving the project from concept to launch.

Copyright 2024 Marek Vymazal