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.