Intro đź“– In this post I’d like to share a workflow “attacher” implementation I built on a recent Sitecore XM Cloud project. The solution attaches workflows to new items based on a configurable list of template and path rules. It was fun to build and ended up involving a couple Sitecore development mechanisms I hadn’t […]
Back-End Development
Tool‑Augmented RAG Chatbot: GPT‑4, pgVector & Next.js
This is Part 3 of a three-part series (links at the bottom). In Part Two, we moved from concept to execution by building the foundation of a Retrieval‑Augmented Generation (RAG) system. We set up a Postgres database with pgvector, defined a schema, wrote a script to embed and chunk text, and validated vector search with cosine similarity. In […]
Multisite Maximum Item Validation for Content Area or Link Collection in Optimizely CMS-12.
This blog post will discuss MultiSite validation for either ContentArea or LinkItemCollection, which are both capable of storing multiple items. Although we can use the custom MaxItem attribute to validate the ContentArea or LinkItemCollection, the problem arises when the same property is used for multiple sites with different validation limits. In a recent project, we […]
Reclaim Space: Delete Docker Orphan Layers
If you’re using Sitecore Docker containers on Windows, you’ve probably noticed your disk space mysteriously shrinking over time. I recently encountered this issue myself and was surprised to discover the culprit: orphaned Docker layers – leftover chunks of data that no longer belong to any container or image. My Setup This happened while I was […]
Postgres RAG Stack: Embedding, Chunking & Vector Search
This is Part 2 of a three-part series (links at the bottom). The GitHub repo can be checked out here. Postgres RAG Stack brings together Postgres, pgVector, and TypeScript to power fast, semantic search. In Part One, we covered the theory behind semantic search: how embeddings convert meaning into vectors, how vector databases and indexes enable […]
Stream API in Java: Enhancements and Use Cases
Working with collections in Java used to involve a lot of loops and verbose code. That changed significantly with the introduction of the Stream API in Java 8. It introduced a functional approach to data processing, resulting in cleaner, more concise, and easier-to-read code. This blog walks through the basics of the Stream API and […]
Perficient Interviewed for Forrester Report on Developer Experience and Knowledge Management
When we talk about developer experience, we often leap straight to the exciting stuff like cutting-edge platforms, AI tools, and lightning-fast frameworks. But according to Forrester’s June 2025 report, “Knowledge Management and The Developer Experience,” “In software development, effective knowledge management (KM) is crucial for developers.” An organization’s knowledge management practices determine how well teams […]
YAML files in DBT
To make streamline project development and maintenance, in any programming language, we need the support of metadata, configuration, and documentation. Project configurations can be done using configuration files. Configuration files are easy to use and make it user friendly to interact with developer. One such type of configuration files used in DBT are the YAML […]
Developing a Serverless Blogging Platform with AWS Lambda and Python
Introduction Serverless is changing the game—no need to manage servers anymore. In this blog, we’ll see how to build a serverless blogging platform using AWS Lambda and Python. It’s scalable, efficient, and saves cost—perfect for modern apps. How It Works Prerequisites Before starting the demo, make sure you have: an AWS account, basic Python […]
How to Add Product Badges in Optimizely Configured Commerce Spire
This blog is written for developers, merchandisers, or client teams looking to display visual indicators (e.g., “New”, “Sale”, “Non-Returnable”, “Best Seller”) on products within the storefront. In Ecommerce, badges are small visual cues that communicate important product information to customers, such as “New Arrival”, “Sale”, or “Limited Stock”. In Optimizely Configured Commerce (Spire), product badges […]
Simplify Cloud-Native Development with Quarkus Extensions
The gradients that developers in the modern world experience when building cloud native applications often include the challenge of figuring out the right set of libraries and integrations to use. Quarkus alleviates this pain point and makes this experience a more seamless and faster experience to develop thanks to the rich set of extensions built […]
Fastify (Node.Js Framework): The Secret to Creating Scalable and Secure Business Applications
Introduction to Fastify (Node.Js Framework) Fastify is a fast and low-overhead web framework for Node.js that has gained popularity among developers in recent years. With its lightweight architecture and rich feature set, Fastify is an excellent platform for developing high-performance online apps. As with JavaScript, where everything is an object, with Fastify, everything is a […]