The Open Sourcing of TouchDevelop
I've highlighted TouchDevelop just a few times...
- TouchDevelop to Arduino
- TouchDevelop v3 - WinPhone 8, Speech, NFC, Tiles and much more...
- Reach out and touch the net with TouchDevelop and MaKey MaKey
- Develop for Windows Phone, with Windows Phone... TouchDevelop
- Getting in touch with TouchDevelop (Think "From What to Wow")
- Run, don't walk, to learn TouchDevelop with RoboRun
... so when I saw the announcement that the browser client code was not only released, but released under an MIT license...!
The TouchDevelop project was inspired by the programmability of 8-bit computers of the 80s. This is how many in our team learned about programming and we wanted to bring that magic to modern touch-based devices. In very beginning, with our first Windows Phone 7 app, it was about programming your own device, 80s style.
Soon after, we have moved to the open web as the platform and added the capability to publish and share your programs (scripts) with other users in source form, so others can learn from and even improve upon them. We believe this openness has helped the platform quite a bit, with over 200,000 scripts published over the past 3 years.
Today, we’re taking another step on this path – we’re releasing the TouchDevelop web app under the MIT license. The team at Microsoft Research remains dedicated to leading its further development, but you, our users, fellow researchers, and hackers of the world, are invited to contribute.
Join the party!
TouchDevelop sits in a GitHub repository. You can fork it there, submit pull requests with bug-fixes or new features, submit and comment on issues in the bug-tracker, and check on latest activity. TouchDevelop consists of about 160,000 lines of TypeScript plus some CSS and a tiny bit of HTML. There are instructions about building and running it on our GitHub page.
What’s not there
You’ll notice we’re not releasing the source of our Windows Phone and Android apps, as they will become obsolete very soon, when we switch to Apache Cordova. Also, running a cloud back-end for a major service like TouchDevelop is costly and complicated. We’re thus not expecting you to do that (and we’re not releasing the back-end). Instead, you can run your forked version of the TouchDevelop client web app against our cloud services. This will work as long as you’re running the client on localhost. If you want to run it from a different domain, drop us an email and we can talk about it.
TouchDevelop is a touch-friendly app creation environment for iPad, iPhone, Android, Windows, Mac, Linux developed with <3 at Microsoft Research. Our mobile-friendly editor makes coding fun, even on your phone or tablet!
This repo contains the source code of the TouchDevelop editor. If you are intending to write TouchDevelop scripts, you probably want to go to
If you want to always run the latest build,
The make sure which version you're running, tap the small copyright/legal/version bar in the bottom right, and then the latest changes button. This will give you the changes that went into your current version, and in particular if the fix for your submitted issue is in. If the expected change is not there, try reloading the page. Keep in mind that the build process takes a few minutes.
Other pages of interest:
- landing page: https://www.touchdevelop.com
- blog: https://www.touchdevelop.com/blog
- Hour Of Code tutorials: https://www.touchdevelop.com/hoc
What's in this repo?
The repo is mostly written in Typescript with tiny pieces of HTML gluing.
This repo contains the source code for:
- the browser client
- the compiler
- the editor
- the runtime
- the node.js client
However, you will not find the cloud backend code here. Indeed, https://www.touchdevelop.com takes care of storing and managing the scripts.
There are many ways to contribute to TouchDevelop.
- submit bugs and help us verify fixes as they are checked in.
- review the source code changes
- contribute bug fixes or features.
If you're not a developer but still would like to help, we've got more tasks for you!
- help translate the user inferface: do you use TouchDevelop and speak a foreign language? You can help!
More handy commands ...
The various directories in the tree ...
Structure of the generated website / app ...