diff --git a/docs/overview.txt b/docs/overview.txt
new file mode 100644
index 0000000000..2220c505c4
--- /dev/null
+++ b/docs/overview.txt
@@ -0,0 +1,308 @@
+===============
+Django overview
+===============
+
+Because Django was developed in a fast-paced newsroom environment, it was
+designed to make common Web-development tasks fast and easy. Here's an informal
+overview of how to write a database-driven Web app with Django.
+
+The goal of this document is to give you enough technical specifics to
+understand how Django works, but this isn't intended to be a tutorial or
+reference. Please see our more-detailed Django documentation_ when you're ready
+to start a project.
+
+.. _documentation: http://www.djangoproject.com/documentation/
+
+Design your model
+=================
+
+Start by describing your database layout in Python code. Django's data-model API
+offers many rich ways of representing your models — so far, it's been
+solving two years' worth of database-schema problems. Here's a quick example::
+
+ class Reporter(meta.Model):
+ fields = (
+ meta.CharField('full_name', "reporter's full name", maxlength=70),
+ )
+
+ def __repr__(self):
+ return self.full_name
+
+ class Article(meta.Model):
+ fields = (
+ meta.DateTimeField('pub_date', 'publication date'),
+ meta.CharField('headline', 'headline', maxlength=200),
+ meta.TextField('article', 'article'),
+ meta.ForeignKey(Reporter),
+ )
+
+ def __repr__(self):
+ return self.headline
+
+Install it
+==========
+
+Next, run the Django command-line utility. It'll create the database tables for
+you automatically, in the database specified in your Django settings. Django
+works with PostgreSQL and MySQL, although other database adapters are on the
+way::
+
+ django-admin.py install news
+
+Enjoy the free API
+==================
+
+With that, you've got a free, and rich, Python API to access your data. The API
+is created on the fly: No code generation necessary::
+
+ # Modules are dynamically created within django.models.
+ # Their names are plural versions of the model class names.
+ >>> from django.models.news import reporters, articles
+
+ # No reporters are in the system yet.
+ >>> reporters.get_list()
+ []
+
+ # Create a new Reporter.
+ >>> r = reporters.Reporter(id=None, full_name='John Smith')
+
+ # Save the object into the database. You have to call save() explicitly.
+ >>> r.save()
+
+ # Now it has an ID.
+ >>> r.id
+ 1
+
+ # Now the new reporter is in the database.
+ >>> reporters.get_list()
+ [John Smith]
+
+ # Fields are represented as attributes on the Python object.
+ >>> r.full_name
+ 'John Smith'
+
+ # Django provides a rich database lookup API that's entirely driven by keyword arguments.
+ >>> reporters.get_object(id__exact=1)
+ John Smith
+ >>> reporters.get_object(full_name__startswith='John')
+ John Smith
+ >>> reporters.get_object(full_name__contains='mith')
+ John Smith
+ >>> reporters.get_object(id__exact=2)
+ Traceback (most recent call last):
+ ...
+ django.models.polls.ReporterDoesNotExist: Reporter does not exist for {'id__exact': 2}
+
+ # Create an article.
+ >>> from datetime import datetime
+ >>> a = articles.Article(id=None, pub_date=datetime.now(), headline='Django is cool', article='Yeah.', reporter_id=1)
+ >>> a.save()
+
+ # Now the article is in the database.
+ >>> articles.get_list()
+ [Django is cool]
+
+ # Article objects get API access to related Reporter objects.
+ >>> r = a.get_reporter()
+ >>> r.full_name
+ 'John Smith'
+
+ # And vice versa: Reporter objects get API access to Article objects.
+ >>> r.get_article_list()
+ [Django is cool]
+
+ # The API follows relationships as far as you need.
+ # Find all articles by a reporter whose name starts with "John".
+ >>> articles.get_list(reporter__full_name__startswith="John")
+ [Django is cool]
+
+ # Change an object by altering its attributes and calling save().
+ >>> r.full_name = 'Billy Goat'
+ >>> r.save()
+
+ # Delete an object with delete().
+ >>> r.delete()
+
+A dynamic admin interface: It's not just scaffolding -- it's the whole house
+============================================================================
+
+Once your models are defined, Django can automatically create an administrative
+interface — a Web site that lets authenticated users add, change and
+delete objects. It's as easy as adding an extra admin attribute to your model
+classes::
+
+ class Article(meta.Model):
+ fields = (
+ meta.DateTimeField('pub_date', 'publication date'),
+ meta.CharField('headline', 'headline', maxlength=200),
+ meta.TextField('article', 'article'),
+ meta.ForeignKey(Reporter),
+ )
+ admin = meta.Admin(
+ fields = (
+ (None, {'fields': ('headline', 'article')}),
+ ('Extra stuff', {'fields': ('pub_date', 'reporter_id')}),
+ ),
+ )
+
+The ``admin.fields`` defines the layout of your admin form. Each element in the
+fields tuple corresponds to a ``