GhostMVC IDE
The IDE has a few components designed to build a site through a web browser and maintain it.
The IDE will be called MarleyIDE (after Jacob Marley).
Editor
This is the big question. The base editor needs to cover all default text behavior (select, cut, copy, move, type, display cursor) but have hooks so I can do syntax highlighting and text manipulation. It also needs to be mono-spaced and show spaces and tabs accurately.
It seems the best way to do this is through an iframe in designMode: document.getElementById("marleyEditor").contentDocument.designMode = "On";
Once I have that, I want to follow a sort of unixy model of having a number of small utilities that can be chained together.
Database
The database tool will allow all the database manipulation one would expect. Any command that alters the schema is saved to version control and can be added to a publish (or discarded).
Version Control
Not quite the typically check-in check out model, a site is a branch so everything is checked out all the time. But you can 'mark' a change set so that you can roll-back to that point or view it in history.
To achieve this, I'm going to go with a really simple system. One folder contains everything. Any time a file is saved to version control it's given a unique name. A single log holds all the information and maps that unique name to what file it really is as well as change set and version.
Publish
Allows you to push change sets over FTP to a site. It would be nice if that site could automatically check-in the change set. Configs will exist on a stack so that the bottom most layer can edit configs for each site.