Everything. THE OVERHAUL: Where is the data? (mongodb, postgresql, flat files, lisp data persisted with cl-store or similar, etc) What views are supported? (tag-based, reverse-chronological, single-post, etc) How is the data edited? (web-admin-interface-p) Who serves the data? (S3, Lisp server (hunchentoot/etc), System HTTPD (lighttpd/apache/etc) How are comments handled? (Cloud service (disqus/etc), Stored and generated locally, disabled) Old Coleslaw: Allow choices. New Coleslaw: Screw choices! "You can have it in any color as long as its black." What views are supported? tag-based, reverse-chronological, single-post Where is the data? git How is the data edited? git status/inotify Post generation? Static What is the post format? (markdown, plaintext, rst, etc, anything with a parser plugin!) How are comments handled? They're not supported. If they are, its by a friggin plugin. What about themes? Templates are themes. DUH. Plugins? Injection support for HEAD and BODY. What about predicate-based injection? How is it served? Hunchentoot, Lighttpd, S3, whomever! Historical Shifts It's interesting to note two things. 1) Blogs went from static->dynamic->static being hip. -- Some of this was motivated by technological fashion. 2) Comments went from being inessential->essential->inessential. -- This latter point is largely related to shifts in social networks. -- No more livejournal, RSS feeds don't promote communities. -- Blogs are platforms designed for content syndication/publishing, not intelligent discourse. Ideas: -- Replace cl-markdown with 3bmd down the line? -- Use cl-inotify or similar for notifications instead of timers? TODO: ;;;; STATIC ;;;; implement start-coleslaw, stop-coleslaw! ;;;; implement cl-store use+init, once every 24 hours? ;;;; implement update-site, parse-file support. ;;;; how many globals can we move into *storage* as keywords? ALL OF THEM! ;;;; --what about accessing them? ;;;; write a proper version of escape considering wild pathnames and valid URL issues ;;;; implement atom feed. RSS too? ;;;; implement non-disqus comment support? ;;;; What do post update semantics look like? i.e. edit file to change tags. what about post-removal? ;;;; PLUGINS ;;;; add activate-plugin, deactivate-plugin, :active-plugins? ;;;; implement: analytics, crossposting, disqus, mathjax, pygments, recaptcha ;;;; support input or output dirs being git repos + have git hooks? ;;; import ;; add comment handling ... (when comments ...) ;; support old URLs via use of post-aliases? ;;;; DYNAMIC ;;;; Scrap that shit!