Layout Engine 04 November 2017
This is a summary of a presentation I put together on what would be required to build out my Layout Engine concept that I put together a PoC for earlier in the year.
Layout Engine
- Minimal product is a headless application that only provides APIs to define, create, edit and retrieve content
- To provide practical utility, a management application is needed to give business users control over the layout and content of an application
Serverless Application
This would be a serverless application providing an API to store and access the content.
API driven Content
- Third party content is accessed via APIs provided by those parties
- Doesn’t store any actual content (e.g. images, catalog data) only metadata; when content is retrieved via API calls to third party systems, only references to these third party assets are persisted
- Developers can define new types of content using JSON and publish using the Content Management API to make available to business users
- Management applications use the Content Management APIs to create and edit content
- A read only Content API is provided so that frontend applications can access this content
Workflow
Management Applications
- Document Editor: business friendly application for creating new pages of content
- Content Schema Editor: developer application for creating new JSON Schemas to define new content sources
- URL Manager: allows business users to manage the URLs that are used to access content, both third party and documents generated by the layout engine
- Template Management: allows business users to configure documents as templates for displaying third party content
- Form Management: allows business users to create and edit forms
- Reporting: a combination of our own and third party analytics should allow us to generate insightful reports for documents and content in place
Analytics
- We should be able to record a large amount of information based on the requests made to the Content API
- Third party analytics (or potentially our own) should be able to provide us with information on how that content is actually used on the frontend
- A combination of these should allow us to provide insightful reports for this content in place
- This data should also allow us to develop smart content services that use ML to select the content to display
Smart Content
- Both our own and third party analytics should provide us with a rich set of data that we can train ML models with to automate selection of the content to display
- This service would ideally plug into the Layout Engine like any of the third party services do, by providing an API to return the Content to display
Document Editor
- Application that provides a business friendly UI to edit Layout Engine Documents and Content
- Uses the Content Management API to actually save any changes
- Can have multiple versions, for example a barebones version that is provided for free and a feature rich version that adds more functionality (e.g. ACL, drag and drop editor, versioning/workspaces). Potential to customise application for different client needs