Go To Top

This site uses a custom publishing system built in PHP and Javascript.

Here's a sampling of some of the technology that we use:

PHP & Zend Framework For Back End
For our PHP development framework, we use the full Zend Framework, with heavy use of Zend Cache and Zend Form (for the latter, we made an extension to make the library work smoothly with the Bootstrap CSS framework).
Javascript & Mootools For Front End
We use the Mootools library for all our Javascript development. Our entire admin system is built in Mootools/Javascript. We've built custom components for windowing, and a "module" system which allows us to easily make self-contained multilingual widgets. We also use the MooTools "Behavior" class.
Ngnix For Server
For our web server, we use Ngnix, with PHP-FPM for handling PHP requests (which aside from images, javascript and css files is pretty much everything on our site).
Solr for Searching and Indexing
For our searching and indexing, we use Solr 4 (which is in alpha, but hasn't given us any problems). We use some currently-in-development (this means it currently sucks) ranking schemes to determine content order when the user doesn't explicitly select chronological or by-release-date.
MySQL and CouchDB for Data Store
We use MySQL for most of our data storage, to store session data, and also as our slow cache. We're currently switching more toward a document-based database through CouchDB (probably) since most of our MySQL entries are really just documents.
Memecached, MySQL and Zend Cache for Caching
We use a two-level cache through Zend Cache. The backend for our fast level cache is Memcached. The backend for our "slow" level cache is MySQL.
Node.js, Socket.IO, and CouchDB For Realtime Monitoring and Logging
To monitor PHP errors and custom logging messages, and as a technology test, we created a custom logging tool. Our logging class, Couchlog, adds logging messages and PHP error messages to a CouchDB database. We have a tiny Node.js monitoring app listening for insert alerts from the CouchDB database and piping those alerts in real time via Socket IO to any admins who happen to have their monitor window open (the node app uses our Zend Auth data for user authorization). Third party libraries we use include Settee, Socket IO and Nano.
Bootstrap
We use Twitter Bootstrap as our CSS framework.

Here are some of the features and tools our site provides:

Custom Messaging system
Users can send and browse private messages using a custom messaging tool that's meant to resemble Facebook's messenger. This module uses the History object to allow for messages to be hotlinked.
Inline Search
Highlight terms in the body of stories to search the site's content database without leaving the current page. Rather than paging, this widget uses a Facebook/Twitter like "load more" feature which automatically loads additional results when you reach the bottom of the window.
No Administration Page
Rather than having a separate administration page, administrators simply have access to some extra options in the user menu accessible from the top nav bar. New content, images and objects can be added without leaving the current page. The current content or object can be quickly edited also without leaving the page.
Custom Live Blogging Tool
For live coverage of events, we have a simple custom-made live blogging tool which makes use of some MooTools More libraries to reduce unnecessary data transfers.
Custom Commenting System
Rather than use one of the many excellent commenting systems out there, we decided to make our own, which allows us to fully integrate user comments into our content hierarchy (a comment is the same as an article, but listed as a reply to an article or to another comment)
User Follow and Alert System
Users can click to "follow" stories using a quick interface similar to "Liking" a story. When someone posts a comment in a story that you're following, you'll receive alerts via the top navigator.
Multilingual Support
The entire site is built around support for multiple languages -- currently just Japanese and English, but with easy extension to other languages too. There isn't a single stray text string anywhere in our code (well, maybe just a few...)
Social Network Integration
Users can log in through Facbeook and Twitter, and synch up their user page with their social stream to show Tweets and Tumblr posts alongside their comments. This feature uses a "Newsfeed" PHP class that we made.

Icons by Glyphicons. Used under CC-BY license.