Over the last few months or so I was working on an open-source project for aspiring developers that helps them start working on a project or try a programming language in less than a second with no overhead in setup and deployment. It is something like Google Docs, but for coding.
My hypothesis is that to do anything interesting with programming these days, one needs to learn at least a dozen disjointed tools and platforms (Git/Github, VS Code, AWS/DigitalOcean, Nginx, GoDaddy to begin with). As a beginner one doesn’t need source control, automatically provision infrastructure, or build a CI/CD pipeline. Furthermore, she may not fully control her machine due to security policies (e.g. chromebooks provided by schools) to setup essential developer tools.
It is frustrating for people who are learning to code.
On top of that, I found that course completion rates across the online/distance education industry is at 12%. It is astoundingly small. There are lots of variables in this equation, but a part of the problem is initial barriers.
With Diggy, users can learn, create and run applications anywhere the web goes, no matter whether it is on desktop, chromebook or mobile. All in one place.
Also, it is open-source, and it could be integrated into existing platforms to provide cohesive educational experience. One doesn’t need to watch lectures in one window and switch to another tab to complete an assignment.
While Diggy is still very young, I believe that it creates a beginners-friendly environment that runs in a browser on any major platform and solves some of these needs. Applications that users make are instantly live. They are always up to date with the latest changes because changes are deployed as they type them.
To get a real, fully-functional application running a user:
- doesn’t need to install an operating system, Python, LAMP, Node or anything else,
- doesn’t need to sign up with a host and wait for name servers to update,
- doesn’t need to commit, push, build, or deploy code.
While it sounds like a pitch, everything is open-source and could be self-hosted.
There are a few limitations if anyone is interested:
- time limit: 6 seconds
- memory limit: 50MB
- process count limit: two threads max
- no networking
- restricted filesystem: /userland is the only r/w volume
- as of writing this post, only Python and Ruby languages are supported; I opened another PR for ANSI C, and it works, but there are a few things that I need to streamline before I merge it into master
Or Diggy: https://diggy.sh