The Sudbury Valley School is a unique school for ages 4 to 19 in the Boston area, that is based on an “unschooling” method where one key tenet is democratic governance by the student population.

The Sudbury Valley School came to Black Antelope to design a new custom CMS / CRM / school management system, to replace an aging system based on Paradox. Black Antelope designed and built the new system incorporating all legacy functionality as well as many new features, and migrated 27 years of legacy database data into the new system. The end result has streamlined school operations and replaced many old paper-based processes.


Everything about this CMS was entirely custom, so we needed to choose a lightweight framework that gave us a lot of flexibility, while at the same time providing a solid foundation as the underlying MVC architecture. We decided to use the PHP framework CodeIgniter, along with MySQL for the database. On the front-end we used jQuery for many interactive elements.

There are all kinds of custom reports in Paradox that the school was used to using that needed to be re-built in the new system. There have also been new reports needed since the launch of the site, which have all been pretty simple to build out due to many of the design and software consistencies that the client has in the new CMS.


All of the design for this custom CMS was done from the ground up to provide for specific functionality. One of the most-used features is the datatable, which has multiple views and custom field inclusion and sorting.

Some other interesting design challenges included a detailed revision history, a judicial system that’s run by students, and dozens of custom reports.

A screenshot of the Sudbury Valley School CMS datatable
A screenshot of the Sudbury Valley School CMS record of a person
Database Design and Content Migration

The previous database system used by the school was Paradox, which is a spreadsheet application similar to Excel. We designed a new MySQL schema to encapsulate all of the content that needed to be migrated, as well as data model support for a lot more functionality.

Migrating 27 years of data was a major part of this project. Since the source data was coming from Paradox (desktop spreadsheet software similar to Excel), there wasn’t an easy way to connect to the data via code. The process was complex, requiring first that all content was exported to CSV files, massaged to ensure PHP-compatibility, and then run through migration scripts that mapped to the new MySQL database. Another complication was that the initial migration was also required to be included in the audit tables (revision history).

Detailed Revision History

Every action made by users of the system is recorded in audit tables, including all of the initial content from the data migration. This gives admins of the system a detailed revision history in case there is ever a situation when content needs to be reverted, or there needs to be investigation into who made a change and when.

A screenshot on a Mac of the CMS' detailed revision history
radial gradient rings

Ready to get started?

Let's set up a Zoom meeting to talk about your project, or better yet, Starbucks and a walk around Green Lake!