I’ve been thinking about creating a video course to teach how to code / create a desktop app using Xojo as the development environment for a few years. Recently I’ve started to actually write down what the course might look like.
I want to monetise this so YouTube is off the table (since you only make money there if you get 100,000s or millions of views which is unrealistic for this subject matter). There are several companies that will host an online course / help you build one (e.g. Udemy, Teachable, Thinkific, etc). Whilst perusing their websites I started to think about just building my own website to sell my course, host my videos and teaching materials, etc.
Yes I know this would be a lot of work but I’m the kind of guy who enjoys the journey more than the destination.
Full disclosure, I’ve never built anything with Xojo Web other than running the example projects a few times but I’m very experienced with Xojo in general and have built extremely complex projects with the tool before.
I have a few questions to those people who are familiar with Xojo Web. Please keep this on topic - I know Xojo Web has it’s limitations but I want to explore what they are:
Could a Xojo web app stream video content. Is there a decent video player bundled / available from a third party?
Can a Xojo web app content protect assets? For example, I know you can implement user logins but how would I ensure my videos are just all bulk-downloaded by a bot, etc
Any idea of how many concurrent users a web app could serve if all the server was doing was providing video or text?
I wouldn’t do that. The CPU requirements on the server side would make it fail almost immediately. You could save yourself a lot of trouble by just getting yourself a CDN and using private URLs to serve one-off video requests. You’ll need to charge enough to cover your bandwidth costs though.
Is there a decent video player bundled / available from a third party?
This won’t protect you from a crafty someone purchasing your course(s), downloading and distributing them however. The protected URLs will help with that, but it would be helpful to find a CDN that only allows streaming.
Interesting. Many of these build your own course platforms realistically expect $60 - $120 per month to host your content so as long as I can control bandwidth and VPN costs to that ball park that should be OK.
OK. Suppose I take your private URL approach, are we talking 10, 100 or 1000 users simultaneously viewing an embedded media player or reading some course material?
Regarding data storage, could I use SQLite for an app like this or am I better off using something like MySQL (although that adds complexity).
The tests I did say that Xojo web apps can serve simultaneous requests for 50-100 users. However, that has nothing to do with how many can be online at the same time. The trick is, it all has to do with how much memory & cpu time each session requires at any given time and there’s no way to easily calculate that beforehand.
If you’re determined to use Xojo and trying to start off small and grow, you’ll need to use a server that uses a reverse proxy and a load balancer to run multiple copies of your app. That way, if you outgrow the server resources, you just upgrade the server and have the load balancer start up more instances.
This isn’t for the faint of heart. if you haven’t managed a server before (or just don’t want to), I suggest using a service like Xojo Cloud so you don’t have to think about all that stuff.
Well, I did all this with my training videos using Web 1. I used Xojo cloud. I had a CDN that did streaming only for the videos and project files. The subscription was the truly PITA thing I did as there were no good options at the time to integrate into the web app so I’d sell a subscription, get the email, and then manually set it up. The only complaints were from the folks that wanted instant access but did it during non-normal North America business hours.
Honestly, for the amount of work you’re going to do I think having an Udemy (or similar) host would be better. Better exposure, better handling of subscriptions, video, tech support, etc., etc. Not to mention people discovering Xojo on those training sites. If was to do it all again that’s the route I would go.
No, xojo web apps are not capable of stream video nor serve files (unless you have a whole instance for each user)
No. The video player bundled is just a thin wrapper for the <video> tag but it has a nasty bug that causes many round trips per second for the Video Events (even if you didnt implement the event in your app)
NO. but this is not a xojo issue, any web content can be pirated from any platform. You can download many Udemy (or similar) courses from torrent sites, telegram groups or “free courses” web sites.
On the positive site, Xojo courses will not have that much demand so, propably no one will bother to repost your videos.
Providing the video stream, one or two concurrent users. Video via the player with the video provided by propper video server maybe 10 (xojo bug). Text and images, maybe 15-30.
After several hours of monkeying around with the Web platform that’s my conclusion too. There do seem to be quite a few limitations to it, not to mention that I’m terrible at re-inventing the wheel when I should just be focusing on driving the car.
I’m leaning towards hosting my own course rather than Udemy however since I really think the overwhelming majority of creators earn an absolute pittance from that platform. There are several WordPress plugins which give more control and flexibility than Udemy and the other platforms.
I think it depends on how you frame the course. I’m not planning on selling it as a Xojo course. Rather a programming course that happens to use Xojo. I’d like to think that newcomers don’t really care about the language so long as it’s capable of achieving their goal.
Youtube has its own sharing features. Basically you just need to insert their iframe to contain your private YouTube video somewhere in your page. They will present you the code when you press “Share” and and choose “Embed”.