MiniWiki is a very simple wiki designed for mobile access. It is a demonstration project I developed to
learn a bit more about the technologies involved.
Unlike a traditional web application where html pages are dynamically assembled server side, MiniWiki uses a client/server architecture where the client side does all the heavy lifting, and the server just serves up either static files, or acts as a simple json database.
MiniWiki architecture includes:
- HTML Local Storage
- coffeescript for client side code
- Pure Javascript view generation (all pages are plain html, with all interaction done via Javascript/AJAX)
- JSON-only RESTful server (implemented in Python on Google App Engine)
- Offline operation and synchronization
This architecture, where the server serves up only static content (HTML, JavaScript, CSS) and simple REST-based
database calls, is, I think, where the future of web development is. As Javascript engines get faster, it no
longer makes sense to laboriously build up pages on the server. For one thing, if a javascript client is
handling things, you basically don’t have to build a separate API for your application, since the API is
what you are using. Also, it should be easier to create mobile apps, either native (using the API) or web-based (customizing the existing Javascript client or css as needed).
The app itself implements two basic models, a Wiki, identified by a URL, and Articles within the Wiki.
You can try the app here
To create a new Wiki, send an http PUT request to http://nimbusly-miniwiki.appspot.com//article
If you then GET http://nimbusly-miniwiki.appspot.com/, you will see the wiki
Nimbusly MiniWiki Copywrite 2011 Andrew Semprebon
Nimbusly Dice Roller is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Nimbusly Dice Roller is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Nimbusly Dice Roller. If not, see <http://www.gnu.org/licenses/>.