+We will reject any feature which advocates or contributes to any
+particular instance of a public-inbox becoming a single point of failure.
+Things we've considered but rejected include:
+
+* exposing article serial numbers outside of NNTP
+* allowing readers to inject metadata (e.g. votes)
+
+We care about being accessible to folks with vision problems and/or
+lack the computing resources to view so-called "modern" websites.
+This includes folks on slow connections and ancient browsers which
+may be too difficult to upgrade due to resource demands.
+
+Only depend on Free Software packages which exist in the "main"
+section of Debian "stable" distribution. That is Debian 9.x
+("stretch") as of this writing, but "oldstable" (8.x, "jessie")
+remains supported for v1 inboxes.
+
+In general, we favor mature and well-tested old things rather than
+the shiny new.
+
+Avoid relying on compiled modules too much. Even if it is Free,
+compiled code makes packages more expensive to audit, build,
+distribute and verify. public-inbox itself will only be implemented
+in scripting languages (currently Perl 5) and optional JIT-compiled C
+(via Inline::C)
+
+Do not recurse on user-supplied data. Neither Perl or C handle
+deep recursion gracefully. See lib/PublicInbox/SearchThread.pm
+and lib/PublicInbox/MsgIter.pm for examples of non-recursive
+alternatives to previously-recursive algorithms.
+
+Performance should be reasonably good for server administrators, too,
+and we will sacrifice features to achieve predictable performance.
+Encouraging folks to self-host will be easier with lower hardware
+requirements.
+
+See design_www.txt and design_notes.txt in the Documentation/
+directory for design decisions made during development.
+
+Perl notes
+----------
+
+* \w, \s, \d character classes all match Unicode characters;
+ so write out class ranges (e.g "[0-9]") if you only intend to
+ match ASCII. Do not use the "/a" (ASCII) modifier, that requires
+ Perl 5.14 and we're only depending on 5.10.1 at the moment.