Encodo's new web site

1/26/2018

As you can see, Encodo finally has a new web site!

Motive

We'd had the same design for many years and it was time for a refresh..

What did we want to change?

  • Improve the design and navigation
  • Make it mobile-friendly
  • Make it easier for Encodo employees to add/update content
  • Improved integration of comments
  • Move to a platform more familiar for more developers at Encodo
  • Make our site representative of our work

Design

We didn't do the design ourselves (because we're not really designers). Instead, we contracted our partners at Ergosign to come up with a design for us and we think they did a great job (as usual).

Requirements

The previous web site[^1] had the following features:

  • A full-featured album and picture manager
  • A full-featured blog with comments/email-publication/RSS
  • A full-featured text-formatting language for all text
  • Attachments for blogs/external content
  • Security features to restrict access
  • Integration with a separate ASP.NET site for collecting job applications.

On top of that, we wanted:

  • LDAP/AD integration
  • All content editable/managed by the same back-end
  • Improved search

Candidates

On the server side, we evaluated a bunch of approaches:

  • Stick with the existing PHP web site but move static content into the back-end
  • Build the entire site from scratch with Quino
  • Use another blogging framework. Candidates:
    • Umbraco
    • WordPress
    • MovableType, Nucleus, GreyMatter, etc.
    • Static Site Generators (e.g. Jekyll)

Our Approach

After much deliberation and some POCs, we went with Umbraco, a framework written in and for .NET C#.

This approach entailed:

  • Customizing the Umbraco look-and-feel to use the new design
  • Integrating a job-application web API server (written with Quino)
  • Writing an exporter in PHP that exposes a JSON API to return blogs, articles, journals, pictures and albums as Markdown content with Base64-encoded attachments and pictures.
  • Writing an importer in C# that marshals the data returned by the PHP JSON API to Umbraco objects and data

What's Next?

We've come a long way toward our goal, but a web site is an ongoing project.

We've incurred a bit of technical debt on our way to release, so a first step will be to convert some inline JavaScript and CSS to shared TypeScript and LESS. We're also improving our support for mobile devices as we test more.


[^1] We were using the earthli WebCore, a PHP CMS written by Marco.