endpoints:
	/dash - GET
		convenient links
	/jrnl - GET, POST
		the full text of the jrnl. POSTing text will lead to
		the entries in it being created.
	/ntry/ - GET, POST
		list of entry slugs, hyperlinks in html
	/ntry/{slug}/ - GET, PATCH
		entry info. list of versions, text of the most recent
		one. allows one to rename an entry or post a new ver.
	/ntry/{slug}/{ver}/ - GET
		text of a given version
	/edit - GET
		log of edits. each edit has an ID, so polling this will
		allow js code to edit the <textarea> in realtime

	HTTP basic auth

	serve a js API and an HTML page from the same set of endpoints,
	use Accept:

	DB is just JSON files on disk.

frontend:
	static mode and js mode. js mode does clever things to allow
	multiple client


db:
	/users.json
		user list, assumed to be immutable
	/{username}/{year}/{month}/{day}
		/latest
			latest entry version, just a base 10 number
		/{n}
			entry text for version n
