Deliverystack.net

SaaS Headless CMS Fundamental Concepts

This blog post attempts to provide an overview of some fundamental concepts for working with SaaS headless content management systems. Content Management System (CMS) A content management system separates text and media content from presentation and logic, allowing re-use of content managed by non-technical subject matter experts. Developers write code that retrieves data from theContinue reading “SaaS Headless CMS Fundamental Concepts”

Where Do .NET Developers Fit in the Jamstack?

This blog post provides information about opportunities in the Jamstack for .NET developers. There are doubtless other opportunities for .NET developers in the service-oriented software economy. If you have additional suggestions to share, please comment on this blog post. Introduction In general, Jamstack refers to technologies used to manage websites that consist of static HTMLContinue reading “Where Do .NET Developers Fit in the Jamstack?”

Quick Introduction to GraphQL with the Contentstack SaaS Headless CMS

This blog post provides pointers for using GraphQL with the Contentstack SaaS headless CMS. I am not an expert on or proponent of GraphQL, but these are some things I have learned from working with Contentstack. GraphQL is a data query and manipulation technology intended for HTTPS service APIs that accept and return JSON. YouContinue reading “Quick Introduction to GraphQL with the Contentstack SaaS Headless CMS”

Troubleshooting the Contentstack SaaS Headless CMS

This blog post contains guidance for troubleshooting potential issues with the Contentstack SaaS headless content management system. There are many different kinds and causes of potential issues; not all these suggestions apply in every case. Some of this guidance may apply to troubleshooting any system, but especially service-oriented applications on SaaS. If you have additionalContinue reading “Troubleshooting the Contentstack SaaS Headless CMS”

Avoiding Direct Headless CMS Service Access

TThis blog post describes techniques to avoid tighter coupling introduced by calling service-oriented application APIs directly, such as those exposed by headless content management systems (CMS). If you have suggestions for further insulating systems, please comment on this blog post. Service-oriented architectures including headless CMS intend to loosen coupling between systems. Using HTTPS APIs ratherContinue reading “Avoiding Direct Headless CMS Service Access”

Differentiating Headless CMS Products

The headless CMS software space is crowded with competitors, which can make it difficult for prospective customers to evaluate available offerings. This blog post presents some criteria that can help to differentiate headless CMS products. If you have additional significant factors by which to evaluate headless CMS products, please comment on this blog post. WhenContinue reading “Differentiating Headless CMS Products”

Data Access Points in the Contentstack SaaS Headless CMS

This blog post contains information about techniques that you can use to access data in the Contentstack SaaS headless CMS. First, the Content Management API and Webhooks sections describe facilities not intended for content delivery environments. The remaining sections describe Contentstack content delivery services, also called APIs. Content Management API The content management API isContinue reading “Data Access Points in the Contentstack SaaS Headless CMS”

Comparing Rust and C#

This blog post contains perspectives on similarities and differences between the rust programming language and the C# programming language for .NET. This post focusses on command line and background processes and does not consider native user interface technologies for Windows or Linux, although for now at least, C# is almost certainly more appropriate for WindowsContinue reading “Comparing Rust and C#”

View and Configure Keyboard Shortcut in Visual Studio and Visual Studio Code

Knowledge of a few keyboard shortcuts can significantly increase user and especially developer productivity. Microsoft Visual Studio and Visual Studio Code have countless features and therefore a significant number of keyboard shortcuts. To get the best value from these tools, use the techniques in this post to learn or set keyboard shortcuts fore the featuresContinue reading “View and Configure Keyboard Shortcut in Visual Studio and Visual Studio Code”

Working with Single and Multiple Reference Fields in the Contentstack SaaS Headless CMS

This blog post explains how the Contentstack SaaS headless CMS stores the values of reference fields as lists even when there is only a single referenced entry. In Contentstack, each simple field type can store either a single value, or multiple values. For example, to associate a single date with a event, a developer couldContinue reading “Working with Single and Multiple Reference Fields in the Contentstack SaaS Headless CMS”

Contentstack SaaS Headless CMS Content Delivery Differentiating Factors

This blog post describes factors that I believe differentiate Contentstack from competing SaaS headless CMS products considering only features that affect content delivery. I tried to focus on features that are not present in almost every SaaS headless CMS. Contentstack is not the only vendor that provides each of the features listed here, although IContinue reading “Contentstack SaaS Headless CMS Content Delivery Differentiating Factors”

SaaS Headless CMS Vendor and Customer Responsibilities

This blog post contains some notes on SaaS headless content management system vendor and customer responsibilities. If you have additional perspectives on this topic, please comment on this blog post. Update 24..June.2021: This diagram does not reflect that Customer Applications can deliver data to the Content Delivery tier via HTTPS services and webhooks, nor thatContinue reading “SaaS Headless CMS Vendor and Customer Responsibilities”

Oh No, Could Web Tracking Move to the Application Server Tier?

Statistics can be useful but can also lead to false conclusions, especially when the data is inaccurate. Web statistics are no exception, particularly when different systems provide different numbers. For example, I use the WordPress blogging platform, which provides some traffic statistics. I recently upgraded the hosting plan to include google analytics and the numbersContinue reading “Oh No, Could Web Tracking Move to the Application Server Tier?”

Fields Absent when Limiting Responses with Only in the Contentstack SaaS Headless CMS

This blog post explains one reason why expected fields may be absent when attempting to limit fields returned for entries in the Contentstack SaaS headless CMS. By default, when you retrieve an entry, the CMS returns all its fields, potentially excluding some system metadata such as workflow state unless explicitly requested. You can use theContinue reading “Fields Absent when Limiting Responses with Only in the Contentstack SaaS Headless CMS”

Konabos Konaverse Podcast with Deliverystack.net Author John West

My friend Akshay at @Konabos Consulting invited me to join him in an episode of his #Konaverse podcast series. We did not intend to talk about technology, and I don’t think I even mentioned anything relevant to this blog. Hearing our conversation might help readers get to know a little about me as a person.Continue reading “Konabos Konaverse Podcast with Deliverystack.net Author John West”

Shortcut/FavIcon with SaaS Headless CMS and ASP.NET Core Razor Pages

This blog post explains one way to let CMS users control shortcut/favorite icons with SaaS headless content management systems and provides an ASP.NET Core razor pages view component implementation. This prototype is almost exactly like the prototype for google analytics that I described in a previous blog post, so I will not repeat that content.Continue reading “Shortcut/FavIcon with SaaS Headless CMS and ASP.NET Core Razor Pages”

Google Analytics with SaaS Headless CMS and ASP.NET Core Razor Pages

This blog post explains one way to add tracking for google analytics to a web content delivery solution for a SaaS headless content management system. To add google analytics tracking analytics, we can embed a piece of JavaScript with a google identifier on every page. While .NET provides various techniques for managing store such identifiers,Continue reading “Google Analytics with SaaS Headless CMS and ASP.NET Core Razor Pages”

SaaS Headless CMS and Service Oriented Application Objectives and Advantages

This blog post describes some of the objectives and advantages of SaaS headless content management systems and service-oriented architectures in general. Of course anything can be implemented well or poorly, and it is possible to build any solution on any platform. SaaS headless CMS systems endeavor to provide the following advantages relative to other contentContinue reading “SaaS Headless CMS and Service Oriented Application Objectives and Advantages”

Deserializing to Custom Types with System.Text.Json

This blog post contains information about using System.Text.Json (STJ) to deserialize JSON to custom types rather than simple primitives such as string. I am in the process of migrating from Newtonsoft.Json to System.Text.Json (STJ). Migrating C# from Newtonsoft.Json to System.Text.Json for .NET 5 – Deliverystack.net I am not necessarily well-informed, so this is an overviewContinue reading “Deserializing to Custom Types with System.Text.Json”

Workaround for Circular Dependencies in .NET and ASP.NET Core

This blog post explains an approach to resolving circular service dependencies in .NET and ASP.NET Core. In this context, services are .NET types that the dependency framework injects into the application, not HTTPS services for exchanging JSON. Sometimes, two services depend on each other. For example, I have an IDeliveryClient implementation that deserializes JSON entriesContinue reading “Workaround for Circular Dependencies in .NET and ASP.NET Core”

Evaluating [SaaS] [Headless] [CMS] Data Modeling Capabilities

This blog post contains information about evaluating data modeling capabilities in SaaS headless content management systems, specifically features available in content types that define different types of structures for data storage. Data modeling is one of the critical features of and differentiating factors between headless content management systems. If you have additional perspectives about modelingContinue reading “Evaluating [SaaS] [Headless] [CMS] Data Modeling Capabilities”

SaaS Headless CMS ASP.NET Core Razor Pages Data-Driven Breadcrumb View Component

This blog post describes a prototype ASP.NET Core razor pages view component that renders a breadcrumb based on the information architecture of the website as determined by its URL hierarchy. This post is a continuation of a series progressing an ASP.NET razor pages solution architecture using the Contentstack SaaS headless CMS. The following post containsContinue reading “SaaS Headless CMS ASP.NET Core Razor Pages Data-Driven Breadcrumb View Component”

ASP.NET Razor Pages Legacy/Vanity URL Redirect Prototype for SaaS Headless CMS

This blog post explains a prototype for a solution that ASP.NET Core razor pages with the Contentstack SaaS headless content management system to manage redirects from legacy and alternate to current URLs with the Contentstack SaaS headless content management system. This post is about the architectural approach rather than the code shown. When a URLContinue reading “ASP.NET Razor Pages Legacy/Vanity URL Redirect Prototype for SaaS Headless CMS”

SaaS Headless CMS ASP.NET Core Razor Pages Data-Driven Top Navigation View Component

This blog post describes a prototype ASP.NET Core razor pages view component that renders a top navigation based on the information architecture of the website as determined by its URL hierarchy. This post is a continuation of a series progressing an ASP.NET razor pages solution architecture using the Contentstack SaaS headless CMS. An ASP.NET CoreContinue reading “SaaS Headless CMS ASP.NET Core Razor Pages Data-Driven Top Navigation View Component”

Use JsonConverters to Mimic Dependency Injection During Deserialization

This blog post presents an approach that abstracts access to the entries specified in reference fields in the Contentstack SaaS headless CMS, demonstrating a technique that provides functionality similar to dependency injection during deserialization from JSON with .NET and System.Text.Json. Contentstack content types can include reference fields, which allow entries to reference other entries. TheContinue reading “Use JsonConverters to Mimic Dependency Injection During Deserialization”

Contentstack .NET Group Model for Page Metadata Fields

This blog post explains how I modeled a group of fields that appear in all content types that represent pages in the Contentstack SaaS headless content management system for a solution that uses ASP.NET razor pages. Specifically, this group contains metadata fields used for navigation, sitemap.xml and robots.txt, search results, to control the layout viewContinue reading “Contentstack .NET Group Model for Page Metadata Fields”

Cannot get the value of a token type ‘StartObject’/converter ‘…’ read too much or not enough

This blog post describes two exceptions that I experienced while converting Newtonsoft JsonConverters to System.Text.Json JsonConverters and the related solutions to both issues in the hopes that it may assist developers that may face the same issue(s). Update 1.June.2021: This is a bit embarrassing, but I eventually remembered/realized that the CMS models a Reference fieldContinue reading “Cannot get the value of a token type ‘StartObject’/converter ‘…’ read too much or not enough”

Migrating C# from Newtonsoft.Json to System.Text.Json for .NET 5

This blog post contains my notes in migrating a small C# .NET codebase from Newtonsoft.Json to System.Text.Json (STJ). First, let me thank Newtonsoft, which has close to a billion dowloads, for making JSON processing possible before Microsoft and for shaping STJ. There are plenty of existing resources about this, but to help me remember, theseContinue reading “Migrating C# from Newtonsoft.Json to System.Text.Json for .NET 5”

Hosting ASP.NET Core Razor Pages and Web APIs in a Single Project

This blog post explains one way that you can host ASP.NET Core Web APIs and Razor Pages in a single project. Performance is best if the client has a fast network connection to the server. The fastest connection is probably from a host to itself. This is not the most scalable configuration for production (soContinue reading “Hosting ASP.NET Core Razor Pages and Web APIs in a Single Project”

ASP.NET Core Web API Prototype, Part IV: Code and Concerns

This is the fourth and final blog post in a series that explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. This entry describes some of the outstandingContinue reading “ASP.NET Core Web API Prototype, Part IV: Code and Concerns”

ASP.NET Core Web API Prototype, Part III: Prototype Implementation

This series of blog post explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. This entry describes the prototype implementation. ASP.NET Core Web API Prototype, Part I: .NETContinue reading “ASP.NET Core Web API Prototype, Part III: Prototype Implementation”

ASP.NET Core Web API Prototype, Part II: Requirements for Mapping URL Paths to Contentstack Entries

This series of blog post explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. This entry requirements and considerations for the example Web API. ASP.NET Core Web APIContinue reading “ASP.NET Core Web API Prototype, Part II: Requirements for Mapping URL Paths to Contentstack Entries”

ASP.NET Core Web API Prototype, Part I: .NET Web API Server/Client Overview

This series of blog post explains an approach to implementing ASP.NET Core Web API servers and .NET clients and provides an example implementation of a service that maps URL paths to information about corresponding entries in the Contentstack SaaS headless CMS. ASP.NET Web APIs use JSON to expose data and functionality as HTTPS services. ThisContinue reading “ASP.NET Core Web API Prototype, Part I: .NET Web API Server/Client Overview”

Layers, Types, and Considerations for Content Delivery Caching with Headless Content Management

This blog post contains information about layers and types of caches in content delivery tiers of headless content management systems. For the purposes of this blog post, features such as edge caches and CDNs are considered as a single layer. While the internals of content management tiers of headless content management systems doubtless leverage databaseContinue reading “Layers, Types, and Considerations for Content Delivery Caching with Headless Content Management”

Content Modeling with the Contentstack SaaS Headless CMS

A solid, long-term information architecture, specifically in the form of stacks, content types, and collections of entries, optimizes implementation and maintenance. This blog post contains information about content modeling with the Contentstack SaaS headless content management system. If you have additional suggestions about related topics, please comment on this blog post. I am trying toContinue reading “Content Modeling with the Contentstack SaaS Headless CMS”

Making the Transition to SaaS Headless CMS and Service Architectures

While the concepts are simple, my experience with other systems and architectures presented obstacles to comprehending and adopting SaaS headless content management philosophies and techniques. This blog post intends to provide guidance for architects, developers, and organizations migrating to headless content management systems from other web experience management platforms, though some suggestions are more broadContinue reading “Making the Transition to SaaS Headless CMS and Service Architectures”

CMS and Web Industry Trends, May 2021

In no particular order, this blog post written in May of 2021 presents some perspectives on technical trends in the web application industry, especially the paradigm shifts towards SaaS-hosted service-oriented applications and serverless infrastructure. I don’t expect any of this to be new information to most readers, but maybe it deserved a summary. HTTPS ServicesContinue reading “CMS and Web Industry Trends, May 2021”

Headless CMS ASP.NET Razor Pages Partial View Component Architecture

This blog post provides an example of using a modular field in the Contentstack SaaS headless CMS to let the CMS user select an ASP.NET Core Razor Pages partial view to render each block. This blog post depends on information and code provided in the following previous blog posts. .NET Core Headless CMS Entry ModelsContinue reading “Headless CMS ASP.NET Razor Pages Partial View Component Architecture”

Use .NET Attributes to Specify Entry Model Classes for CMS Content Types

This blog post explains how you can use .NET attributes to indicate entry model class(es) to represent entries based on different content types in the Contentstack SaaS headless CMS, although this technique should work with any headless CMS. .NET Core Headless CMS Entry Models and Entry Model Classes – Deliverystack.net When you need to retrieveContinue reading “Use .NET Attributes to Specify Entry Model Classes for CMS Content Types”

Block Models and JsonConverters without the Contentstack .NET SDK

This blog post explains how you can use block models with a generic base class to model Contentstack modular fields and to simplify JsonConverters serialization configuration without using the Contentstack SDK. This blog post depends on a refactored version of the base class for block models described in the following blog post. Basically, for eachContinue reading “Block Models and JsonConverters without the Contentstack .NET SDK”

Specify ASP.NET Razor Core Pages Layouts and Partial Views with Headless CMS

This blog post describes a solution that lets the CMS user select a layout to override the default layout and a partial view to render an entry from Contentstack. This solution extends an existing solution for using ASP.NET Razor Pages with the Contentstack SaaS headless CMS. Expose Headless CMS Entry JSON in Entry Models, ASP.NETContinue reading “Specify ASP.NET Razor Core Pages Layouts and Partial Views with Headless CMS”

Expose Headless CMS Entry JSON in Entry Models, ASP.NET Core Razor Pages Edition

This blog post is basically a reminder that you may want to store the raw JSON of entries even if you use entry models. The JSON can have advantages in during development by allowing programmers to access data in new content types and fields before creating corresponding entry model classes and properties but can alsoContinue reading “Expose Headless CMS Entry JSON in Entry Models, ASP.NET Core Razor Pages Edition”

ASP.NET Core Razor Pages and SaaS Headless Content Management Systems

This blog post attempts to present information about using ASP.NET Core Razor Pages with SaaS headless content management systems using Contentstack as an example. The information in this post is intentionally limited and oversimplified. ASP.NET Core Razor Pages are based on ASP.NET MVC (model-view-controller), but with a simplified implementation based on common patterns. Both ASP.NETContinue reading “ASP.NET Core Razor Pages and SaaS Headless Content Management Systems”

.NET Headless Content Management Considerations

I intend to use this blog post to track technical concerns to consider before implementing a .NET solution that leverages a headless content management system. Some of these considerations apply to content delivery solutions on any platform and some may apply to service-oriented solutions beyond content management. Linked posts tend to focus on .NET andContinue reading “.NET Headless Content Management Considerations”

Write Information about JavaScript Objects to the Browser Console

The approach described in this blog post writes information about JavaScript objects (including their properties, methods, and values) to the console, recursing through objects exposed as properties, making it easier to see what is available without referring to the documentation, and writing identifiers to the console that a developer can easily copy and paste intoContinue reading “Write Information about JavaScript Objects to the Browser Console”

Whether to Use Vendor SDKs to Access Vendor Services

This blog post presents perspectives on whether to use vendor SDKs or access their HTTP/JSON service endpoints directly, specifically in the context of the Contentstack SaaS headless content management system but with considerations relevant to any headless CMS or service-oriented application. If you have perspectives on whether and when to use the vendor’s SDK toContinue reading “Whether to Use Vendor SDKs to Access Vendor Services”

Three Major Phases for Data Access in Headless Content Management Solutions

This blog post provides some information about the three major phases for data access in content delivery solution lifecycles for headless content management solutions. If you have additional perspective on this topic, please comment on this blog post. For background information, see this previous blog post: SaaS Headless CMS Components, Responsibilities, and Phases for DataContinue reading “Three Major Phases for Data Access in Headless Content Management Solutions”

SaaS Headless CMS Components, Responsibilities, and Phases for Data Access

This blog post explains the following diagram that describes responsibilities for components in a SaaS headless content management implementation and the three main phases at which customer solutions can retrieve data from the CMS. To make it easier to understand, this diagram intentionally omits systems often integrated with solutions that involve content management systems, suchContinue reading “SaaS Headless CMS Components, Responsibilities, and Phases for Data Access”

Prototype Content Delivery .NET Typed Clients for the Contentstack SaaS Headless CMS

This blog post describes a prototype for a .NET typed client that accesses HTTPS content delivery services that return JSON from the Contentstack SaaS headless content management system. This post also contains some important notes about appsettings.json and exceptions in Blazor, which I understand uses JavaScript and some JavaScript components to run C# as WebAssemblyContinue reading “Prototype Content Delivery .NET Typed Clients for the Contentstack SaaS Headless CMS”

Manage Custom Media Metadata in the Contentstack SaaS Headless CMS

This blog post provides some perspectives about managing custom metadata for media assets stored in the Contentstack SaaS headless CMS. I do not have anything implemented as I do not have any related requirements; these are just some ideas that I wanted to write down while I was thinking about the topic. If anyone isContinue reading “Manage Custom Media Metadata in the Contentstack SaaS Headless CMS”

Call Contentstack HTTPS JSON APIs from ASP.NET Blazor Clients

This blog post provides pointers for calling HTTP APIs that return JSON from ASP.NET Blazor client applications, specifically using the Contentstack SaaS headless content management system. If I understand correctly, with Blazor, developers can write C# code that runs as WebAssembly in the browser. Update 20.April.2021: For a more comprehensive explanation and more robust code,Continue reading “Call Contentstack HTTPS JSON APIs from ASP.NET Blazor Clients”

Cool Tools for [Contentstack] [SaaS] [Headless] [CMS] [.NET] Developers

This blog post lists tools that can improve productivity for developers, especially those working with .NET and headless content management systems. Microsoft Windows 10: Even though I do not need to reinstall Windows every few months anymore, I might move to Linux completely if Microsoft Office and Visual Studio could run without Windows. I tryContinue reading “Cool Tools for [Contentstack] [SaaS] [Headless] [CMS] [.NET] Developers”

All About Validation with the Contentstack SaaS Headless CMS

This blog post contains information about validating data with the Contentstack SaaS headless content management system. Throughout the system, roles and access rights validate which users can perform what operations. Contentstack provides some basic field validation options. Content Validations: Types of Validation Checks (contentstack.com) In each global field and content type, each field can beContinue reading “All About Validation with the Contentstack SaaS Headless CMS”

Setting Field Values Programmatically in SaaS Headless Content Management Systems

This blog post suggests a technique for setting field values programmatically in entries as they move through workflows in SaaS headless content management systems, specifically considering my experiences with the Contentstack SaaS headless CMS. Full disclosure: I wrote it some time ago, moved on, forgot about it, never reviewed it, and published it to clearContinue reading “Setting Field Values Programmatically in SaaS Headless Content Management Systems”

Use Windows Terminal for Visual Studio Run and Debug

This blog post explains how get Visual Studio to use Windows Terminal to run and debug your projects rather than using the Windows console. Right-click project and select properties. Click the Debug tab. Create a new profile. Set Launch set to Executable. Set Executable to the full path to the Windows Terminal executable (maybe C:\Users\<username>\AppData\Local\Microsoft\WindowsApps\wt.exe).Continue reading “Use Windows Terminal for Visual Studio Run and Debug”

Contentstack SaaS Headless CMS UI Extension Hosting

This short blog post explains some differences between Contentstack hosting and external hosting of custom user interface extensions to its headless content management system. As described in the following blog post, you can extend Contentstack with three types of user interfaces: custom field types (at the field level), custom widgets (at the entry level), andContinue reading “Contentstack SaaS Headless CMS UI Extension Hosting”

Use a Widget to View Entry JSON in the Contentstack SaaS Headless CMS

This blog post explains how you can use a widget to view the JSON representation of an entry in the Contentstack SaaS headless CMS user interface. Update 23.Apr.2021: Contentstack Developer Custom Widget – Deliverystack.net You can create a widget based on the JSON custom field to view the JSON representation of entries in the ContentstackContinue reading “Use a Widget to View Entry JSON in the Contentstack SaaS Headless CMS”

Contentstack SaaS Headless CMS .NET SDK Exception Management

This blog post explains how you can access information about errors that occur when using the .NET SDK for the Contentstack SaaS headless content management system. For background information about accessing error data from the underlying .NET HttpWebRequest class, see this previous blog post: Access Error Data from HTTP Response When HttpWebRequest Throws an ExceptionContinue reading “Contentstack SaaS Headless CMS .NET SDK Exception Management”

Code Dump: .NET Contentstack Media Importer

This blog post describes a prototype .NET command line solution for importing media into the Contentstack SaaS headless content management system. While this tool functions, it could use testing and refactoring. More importantly, it demonstrates relevant APIs and techniques for working with folder paths in Contentstack. You can use these techniques to create asset folderContinue reading “Code Dump: .NET Contentstack Media Importer”

Access Error Data from HTTP Response When HttpWebRequest Throws an Exception

This blog post explains how to access the response body that may contain error messages when an HTTP request returns an error. You can use this technique to diagnose HTTP service API calls that return errors and raise exceptions. The following raise an WebException or an AggregateException if the HTTP request returns an error. stringContinue reading “Access Error Data from HTTP Response When HttpWebRequest Throws an Exception”

Troubleshooting Webhooks

This blog post contains information about troubleshooting webhooks, which I have been exploring specifically with the Contentstack SaaS headless CMS. Webhooks are just HTTP requests, so troubleshooting them is not unlike troubleshooting any HTTP request. Webhook – Wikipedia About Webhooks (contentstack.com) For me, problems that appear significant often have trivial solutions, often involving simple user errors.Continue reading “Troubleshooting Webhooks”

Synchronize Content between Headless Content Management Systems

This blog post describes techniques that you can use to syndicate content from one headless content management system to others from the same CMS vendor, typically from production to test, development, and other systems. Organizations often deploy separate instances of a content management system for development, test, production, and potentially other purposes. Changes to contentContinue reading “Synchronize Content between Headless Content Management Systems”

Part II: Prototype Contentstack Update Webhook Handler .NET Azure Function to Set Field Values for Validation

This blog post presents code for a prototype .NET Azure function that handles entry update webhooks from the Contentstack SaaS headless CMS to set the value of a field in the entry that presents messages to the CMS user. Specifically, this example ensures that two date fields exist and contain values, and that the valueContinue reading “Part II: Prototype Contentstack Update Webhook Handler .NET Azure Function to Set Field Values for Validation”

Part I: Use Update Webhook Handlers to Update Entries in Contentstack

This blog post describes a technique that uses an entry update webhook handler to update field values in the Contentstack SaaS headless CMS. You can use this technique to validate existing data in entries, to set default values for empty fields, and otherwise to manipulate field values programmatically. This is my simplified understanding of whatContinue reading “Part I: Use Update Webhook Handlers to Update Entries in Contentstack”

Prototype .NET Class to Invoke [Contentstack] [SaaS] [Headless] [Content Management] HTTPS JSON Service APIs

This blog post presents a prototype for a .NET class that invokes HTTPS service APIs in the Contentstack SaaS headless CMS that accept and return JSON. This is just a short post to publish the sample code that I intend to reference from one or more additional blog posts. Contentstack provides a .NET SDK thatContinue reading “Prototype .NET Class to Invoke [Contentstack] [SaaS] [Headless] [Content Management] HTTPS JSON Service APIs”

Generate sitemap.xml and robots.txt from Content Management Metadata

This blog post suggests that solutions use metadata from the content management system to generate sitemap.xml and robots.txt. You can use sitemap XML and the robots exclusion standard to influence SEO for your website and to affect the functionality of search engines including google. Each website can have a URL that exposes XML containing metadataContinue reading “Generate sitemap.xml and robots.txt from Content Management Metadata”

Access Contentstack Entry Workflow Information

This blog post explains how to include workflow information when you retrieve entries from the Contentstack SaaS headless content management system. Default JSON representations of Contentstack entries, including those sent to webhooks, do not include workflow details. To access workflow details, set the include_workflow query string parameter to true when you retrieve the entry. TheContinue reading “Access Contentstack Entry Workflow Information”

Advantages of Event Systems with Headless Content Management Systems

This blog post lists some potential advantages in leveraging event systems with headless content management systems and potentially any system that uses microservice architecture. Event systems pass messages between applications. Headless CMS uses webhooks to pass messages to applications. To integrate an event system with headless CMS, implement an HTTPS listener that generates events fromContinue reading “Advantages of Event Systems with Headless Content Management Systems”

Relationships between Records in Content Management Systems

This blog post contains information about relationships between records in content management systems. Content management systems provide mixed support for hierarchical and relational record structures. CMS developers define content types, where each record can have values for the fields defined in its content type. Records can have relationships with other records. Together, content types andContinue reading “Relationships between Records in Content Management Systems”

SaaS Headless CMS Architectural Considerations, Part II

This blog post lists some considerations for architecting SaaS headless content delivery solutions. This blog post serves as Part II of a previous blog post, Considerations for Headless CMS Architectures – Deliverystack.net. CMS Vendor: While all SaaS headless CMS may have similar architectures, each vendor has distinct features and implementation differences, for example regarding userContinue reading “SaaS Headless CMS Architectural Considerations, Part II”

Differences between Decoupled CMS and SaaS Headless CMS

This blog post describes differences between decoupled and SaaS headless content management systems. Different people working for different vendors use terms differently, but for the purposes of this blog post, decoupled refers to content delivery using HTTPS service APIs to access CMS facilities rather than using platform native APIs, direct database connections, and other tightlyContinue reading “Differences between Decoupled CMS and SaaS Headless CMS”

Managing Content Types with the Contentstack SaaS Headless CMS

This blog post contains information about managing content type definitions with the Contentstack SaaS headless CMS, meaning migrating content type definitions between stacks. These and similar considerations apply to any headless CMS. A content types specifies the fields that appear in entries of that type. Contentstack stores content type definitions in its repository. You canContinue reading “Managing Content Types with the Contentstack SaaS Headless CMS”

Headless CMS with Event System Diagram

This blog post presents a diagram of a possible headless CMS architecture with search that uses a brokerage architecture and an event system for webhooks and API calls. For background information, see: Centralizing [Headless] [CMS] Data Access – Deliverystack.net Web Service Brokerage Architecture [for Headless CMS] – Deliverystack.net Integrating Event Systems with Headless CMS –Continue reading “Headless CMS with Event System Diagram”

Customizing and Extending SaaS Headless CMS User Interfaces

This blog post contains information about customizing and extending SaaS headless CMS, though some of this information may apply to any SaaS solution. By customizing, I mean anything that a CMS user with appropriate access can achieve by setting values through a browser-based user interface or HTTPS service endpoint. By extending, I mean anything thatContinue reading “Customizing and Extending SaaS Headless CMS User Interfaces”

Multiple [Headless] [CMS] Repositories

This blog post contains ideas for content delivery applications to leverage multiple headless CMS repositories with specific information about stacks (repositories) in the Contentstack SaaS headless CMS, though much of this information may apply to any CMS or other repository. Along with content type definitions, content entries, and media assets, stacks contain system data suchContinue reading “Multiple [Headless] [CMS] Repositories”

Web Service Brokerage Architecture [for Headless CMS]

This blog post suggests that organizations, especially headless CMS customers, employ service brokerage architectures for service-oriented applications to control the endpoints used by their applications. This post focuses primarily on HTTPS endpoints that serve JSON for content delivery in headless CMS implementations, but many of these considerations apply to other systems as well as webhooksContinue reading “Web Service Brokerage Architecture [for Headless CMS]”

ASP.NET Core vs. NodeJS

This blog post intends to describe similarities and differences between ASP.NET Core (.NET 5+) and NodeJS for server-side web application functionality. I do not specifically intend to discuss technologies such as TypeScript and Deno, which likely address some of these concerns. I also didn’t mention some elements where I consider the technologies to be basicallyContinue reading “ASP.NET Core vs. NodeJS”

Process Headless CMS Webhooks with Serverless Azure Functions

This blog post demonstrates a way to implement (serverless) Azure functions that use ASP.NET Core and .NET 5 to process webhooks generated by headless Content Management Systems, including how to run functions locally and use ngrok to invoke those local functions from cloud environments such as SaaS headless CMS. Azure functions provide ASP.NET processing inContinue reading “Process Headless CMS Webhooks with Serverless Azure Functions”

Loading…

Something went wrong. Please refresh the page and/or try again.


Follow

Email.