In my last post, The 5 Abilities of a Digital Application Stack, I said that if you are developing single-page applications, or mobile applications, or signage applications, you are developing digital applications, not websites.
The transition from sites to apps means the separation of front-end presentation components from back-end content services, interfaced with standard API’s. The app layout, presentation, and front-end components are the responsibility of the front-end developer to design and implement using the CMS as a service to provide the content. This architecture allows for a new level of freedom with presentation frameworks and interactive functionality.
We are transitioning to the next platform when building sites and apps together to deliver digital customer experiences.
One important technology decision that enables this kind of digital application development are the APIs for providing the reusable components for content management (i.e. headless CMS), digital channel delivery, and presenting in the front-end applications.
APIs are the key to leveraging decoupled, reusable frameworks and component services for application building. An API-first strategy can unify the design, implementation, and platform of development tools, components, and key devops processes. It also keeps the team’s time and energy focused on creating amazing experiences. API-first architecture also shifts development efforts to designing with APIs which are standard for both a broader developer audience, in addition to being supported across multiple platforms.
To take advantage of this transition, there are five abilities that an API-first digital application stack can use.
I mentioned them last time. Here’s a reminder of what these 5 abilities are:
- Flexibility
- Usability
- Adaptability
- Reuse-ability
- Scalability
Now let’s consider them in detail.
#1 Flexibility
API-first means the developers can design any digital application and website with any of the design approaches from one content management platform. That means that developers can choose progressive, decoupled, and coupled content management architectures for sites and applications. A modern CMS framework makes this easy with APIs, pre-built services, and the right tools for editors and developers to deliver and manage content for any architecture and approach: decoupled or headless. So look for a service that supports the range of coupled/decoupled architectures: from fully decoupled (i.e. headless) to progressively decoupled, to coupled (a good post to read on this topic: Drupal is API-first, not API-only).
#2 Usability
To maximize efficiency, adopt a common, modular platform that supports both editorial and developer needs, including components, task-based tools, and automated devops processes for front-end developers, back-end developers, and the content editors. This is enforced by constructing components for a broader audience, along with best practices, regardless of language.
Don’t forget the content-end editor’s role in delivering sites and apps. When building digital apps, frontend and backend developers work in parallel, with separation of concerns as a standard practice. But many times, the digital IT team can forget about the typical workflow of content development, previewing, and delivery from the content-end editors. Editors create and deliver the content for the digital customer. It’s possible that simple, thin content apps can be delivered by JavaScript developers, but others apps require diverse and rich content, from marketing or creative personal. Digital app development takes teamwork: frontend developers for presentation and interaction, backend developers for service component performance, scale, and quality, and the content-end editors to deliver the rich content experience.
#3 Adaptability
Using a decoupled implementation strategy provides for highly adaptable content authoring, front-end content rendering, and channel delivery and experience presentation. Based on application delivery schedule, functionality, and scope use, the platform can be built from the start for any app and any content. Support is needed for the broader range of stakeholders, from marketing and development to the automation of content, application process, and production.
Today's digital customer experiences consist of multiple digital apps and content types delivered across digital signage, smart phones, websites, conversational devices and more. Each application is configured to run across all channels and multiple presentation interfaces. Having the right adaptable decoupled architecture from the start saves time and increases quality.
#4 Reusability
With API-ready services and components, developers are enabled to quickly assemble digital experience applications reusing content, search, content optimizations, and other application services to increase delivery speed and quality. Development is focused on new front-end applications, and building at the API level using existing component services with much less coding.
Thus the goal is to maximize reuse and automation using proven components and services. Start by investing in devops services for content and application tools and development artifacts. Select proven cloud-native application services for front-end languages such as JavaScript, content such as Drupal, and optimizations services for content personalization and intelligence. More and more shared application and environment services are the preferred development approach to efficiently deliver cloud native digital experiences applications.
#5 Scalability
Speed without scale is limiting. Use native cloud services to implement the platform with continuous integration, delivery, and production services for scaling delivery performance and production-grade security and governance needs. The need to scale delivery starts with continuous delivery as an automated pipeline -- from code integration to building and final production-like environment testing. In production the ability to monitor and analyze digital application performance to manage service level agreements and overall quality of service satisfaction is critical to continuous deployment. Using Node.js and Drupal cloud application services provides for rendering front-end applications and for enhanced security and performance.
Digital businesses run 7x24, 365 days a year. Digital IT teams need the capability to integrate, delivery, and deploy digital apps on-demand. The drive towards Apps-as-a-Service is a reality and a requirement.