<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pawan Sharma</title>
    <description>The latest articles on DEV Community by Pawan Sharma (@pawansharmaggc).</description>
    <link>https://dev.to/pawansharmaggc</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1334122%2F7293f31c-4fca-41f3-a08f-79aba7738f75.png</url>
      <title>DEV Community: Pawan Sharma</title>
      <link>https://dev.to/pawansharmaggc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pawansharmaggc"/>
    <language>en</language>
    <item>
      <title>Build AIRA - Powered Content Agents for Xperience by Kentico - in Under 5 Minutes</title>
      <dc:creator>Pawan Sharma</dc:creator>
      <pubDate>Tue, 17 Mar 2026 03:45:05 +0000</pubDate>
      <link>https://dev.to/pawansharmaggc/build-aira-powered-content-agents-for-xperience-by-kentico-in-under-5-minutes-g0</link>
      <guid>https://dev.to/pawansharmaggc/build-aira-powered-content-agents-for-xperience-by-kentico-in-under-5-minutes-g0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hey Kentico fam&lt;/strong&gt; - Kentico Xperience just dropped its February 2026 refresh, and it's a gamechanger for us CMS devs. I'm talking to native &lt;strong&gt;AIRA agents&lt;/strong&gt; - agentic AI right in the admin that autonomously handles content strategy, tone audits, and optimizations. No more hours tweaking pages manually.&lt;/p&gt;

&lt;p&gt;In this post, I'll walk you through building your first AIRA-powered content agent &lt;strong&gt;live in under 5 minutes.&lt;/strong&gt; We'll use the new Content Strategist agent (part of the AIRA suite), extend it with a tiny C# SDK snippet, and benchmark the speedup. As a Kentico expert at Dotstark and AWS Community Builder, I've tested this on real client sites - &lt;strong&gt;10x faster content workflows, period.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Let's dive in.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem: Manual Content Ops Are Killing Productivity
&lt;/h2&gt;

&lt;p&gt;Picture this: You're migrating a site to Xperience. You need to audit 50 pages for brand voice, optimize SEO titles, and schedule A/B tests. Pre-AIRA Agents? That's 2-3 hours of copy-pasting into ChatGPT, cross-checking guidelines, and praying nothing breaks.&lt;/p&gt;

&lt;p&gt;Enter &lt;strong&gt;agentic AI&lt;/strong&gt; - not just chatbots, but autonomous agents that plan, reason, and act. Kentico's Feb 23 refresh baked this into Xperience v31.1+ with AIRA: the Content Strategist agent evaluates pages against your custom tone profile, suggests rewrites, and even publishes via API. I clocked a 100-page audit at &lt;strong&gt;4 minutes flat&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes AIRA Different
&lt;/h2&gt;

&lt;p&gt;Unlike generic AI tools, AIRA agents are platform-native. They ingest your entire Xperience ecosystem - content libraries, Page Builder widgets, reusable content items - for context-aware decisions. The Content Strategist isn't guessing; it's analyzing against your actual Content Strategy document (uploaded as governance artifact) with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Style compliance checks&lt;/strong&gt; – Flags terminology mismatches, grammar issues, capitalization errors with severity levels (Critical, Major, Minor)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tone evaluation&lt;/strong&gt; – Ensures content matches audience expectations (tutorial vs. product page tone)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Voice alignment&lt;/strong&gt; – Rates brand voice attributes (Friendly, Clear, Helpful) as Strong/Adequate/Weak with evidence&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is an agentic workflow at its finest—governed, logged, transparent, with admin-configured guardrails.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Fire Up Xperience (2 Minutes Setup)
&lt;/h2&gt;

&lt;p&gt;If you don't have an Xperience instance: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Head to kentico.com/trial → Spin up Cloud edition (free 30 days)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Log in → AIRA tab (left nav, new in v31)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable Content Strategist agent in Feature Settings&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F883milit5eejql1sbwh3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F883milit5eejql1sbwh3.png" alt=" " width="783" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Upload your Content Strategy document (PDF/DOCX with voice, tone, style rules) &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Pro tip:&lt;/strong&gt; Link your Azure OpenAI key in AIRA Config for custom models. I use GPT-4o for speed. Commercial data protection is built-in—no data logging, no model training on your content &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Your First Agent Run (90 Seconds)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Navigate to &lt;strong&gt;Pages&lt;/strong&gt; app → Pick a sample page (or create: "About Us") &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click &lt;strong&gt;AIRA chat&lt;/strong&gt; icon → Type natural language prompt &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Example prompt:&lt;/strong&gt; "Run Content Strategist on this page. Target persona: enterprise CTOs. Content type: product page. Evaluate against Dotstark brand voice." &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Boom&lt;/strong&gt; — agent responds in seconds with structured findings: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45sygiiroh8mwo2o5ajx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F45sygiiroh8mwo2o5ajx.png" alt=" " width="800" height="260"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6r2h5k3mml7zkks2qid0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6r2h5k3mml7zkks2qid0.png" alt=" " width="617" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Table 1: Sample Content Strategist output with severity-prioritized findings &lt;/p&gt;

&lt;p&gt;Agent provides: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Exact text quotes for each issue &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Suggested rewrites aligned to your Content Strategy &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quick-fix buttons for common refinements (shorten, improve grammar) &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This isn't generic feedback - it's your brand guidelines enforced at scale. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Go Dev Mode - SDK Extension (2 Minutes Code)
&lt;/h2&gt;

&lt;p&gt;For automation at scale, hook agents into .NET workflows. While AIRA's C# SDK for direct agent invocation is still in preview, you can integrate with AIRA features programmatically using existing APIs. &lt;/p&gt;

&lt;p&gt;Here's my battle-tested pattern for automated content refinement: &lt;br&gt;
`using Kentico.Xperience.Admin.Base; &lt;br&gt;
using Kentico.Xperience.Admin.Base.FormAnnotations; &lt;/p&gt;

&lt;p&gt;// Enable AIRA refinements in custom Page Builder widget &lt;br&gt;
public class ContentOptimizationWidgetProperties : IWidgetProperties &lt;br&gt;
{ &lt;br&gt;
[RichTextEditorComponent] &lt;br&gt;
[FormComponentConfiguration(typeof(AiraTextRefinementConfigurator))] &lt;br&gt;
public string PageContent { get; set; } &lt;/p&gt;

&lt;p&gt;// AIRA automatically applies refinements when content is saved &lt;br&gt;
// Integrate with workflow events for audit logging &lt;/p&gt;

&lt;p&gt;} &lt;/p&gt;

&lt;p&gt;// Trigger via Xperience event system &lt;br&gt;
public class ContentAuditHandler : IEventHandler &lt;br&gt;
{ &lt;br&gt;
public async Task HandleAsync(PageUpdateEvent eventData) &lt;br&gt;
{ &lt;br&gt;
// Custom logic: if page saves with AIRA suggestions pending, &lt;br&gt;
// log to CloudWatch, notify content team via SNS &lt;br&gt;
var auditLog = new AuditEntry &lt;br&gt;
{ &lt;br&gt;
PageId = eventData.PageId, &lt;br&gt;
Timestamp = DateTime.UtcNow, &lt;br&gt;
AiraFindingsCount = eventData.PendingSuggestions.Count &lt;br&gt;
}; &lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;await _logger.LogToCloudWatchAsync(auditLog); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;} &lt;/p&gt;

&lt;p&gt;} `&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-world pattern:&lt;/strong&gt; Deploy to AWS Lambda triggered by Xperience webhooks. Page saves → Lambda checks for AIRA suggestions → Auto-applies approved refinements → Publishes optimized version. &lt;/p&gt;

&lt;h2&gt;
  
  
  Real Speed Benchmarks (I Timed It)
&lt;/h2&gt;

&lt;p&gt;Tested on 100 legacy pages migrated from Umbraco to Xperience: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fis2b68h4p7x2fimi1xkn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fis2b68h4p7x2fimi1xkn.png" alt=" " width="568" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table 2:&lt;/strong&gt; Real-world performance comparison showing AIRA agent acceleration &lt;/p&gt;

&lt;p&gt;Numbers don't lie—agents chain tasks autonomously (audit → evaluate → suggest → refine). The Content Strategist handles discrete workflows with full transparency and logging. &lt;/p&gt;

&lt;h2&gt;
  
  
  Scaling for Enterprise: AWS + Xperience Architecture
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Serverless deployment –&lt;/strong&gt; Wrap AIRA workflows in Lambda functions, trigger via Xperience webhooks &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Secure access –&lt;/strong&gt; IAM roles + Xperience API keys (rotate via Secrets Manager) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitoring –&lt;/strong&gt; AIRA audit logs in Xperience Insights + CloudWatch metrics &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0ro1z1nzcuiyia0bl2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg0ro1z1nzcuiyia0bl2s.png" alt=" " width="784" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Content governance –&lt;/strong&gt; Upload brand guidelines as Content Strategy docs, version-controlled in S3 &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-region –&lt;/strong&gt; Xperience Cloud + AWS edge for global content delivery &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I've deployed this for 3 clients—content teams now focus on strategy, not grunt work. One SaaS client saw &lt;strong&gt;25% engagement boost&lt;/strong&gt; after localizing for APAC markets with consistent AIRA-enforced voice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Beyond Content Strategist: What's Coming
&lt;/h2&gt;

&lt;p&gt;Kentico's AIRA Agentic Marketing Suite is expanding with additional agents in preview: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customer Journey Optimizer –&lt;/strong&gt; Flags progression leaks, surfaces bottlenecks &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Campaign Execution Agent –&lt;/strong&gt; Auto-setup campaigns, surface performance insights &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Analytics Agent –&lt;/strong&gt; Convert insights to actionable recommendations &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All orchestrated via AIRA's conversational hub, with headless architecture ensuring seamless delivery across channels.&lt;/p&gt;

&lt;h2&gt;
  
  
  Image Processing Bonus Features
&lt;/h2&gt;

&lt;p&gt;While testing Content Strategist, I discovered AIRA's image automation—massively underrated: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auto focal point selection –&lt;/strong&gt; AI picks optimal crop for image variants (max 20MB, 50x50px min) &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SEO descriptions –&lt;/strong&gt; Generates alt text during mass upload in current language &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smart tagging –&lt;/strong&gt; Assigns taxonomy tags based on image content analysis &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Combined with content agents, you're automating 80% of routine CMS tasks. &lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Implementation Tips
&lt;/h2&gt;

&lt;p&gt;From my production deployments: &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start with Content Strategy –&lt;/strong&gt; Upload comprehensive brand guidelines (voice, tone, terminology, style rules). Agent quality depends on this foundation. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use persona + content type –&lt;/strong&gt; Always specify when evaluating pages. "Tutorial for developers" gets different tone analysis than "product page for executives". &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrate with workflows –&lt;/strong&gt; Connect AIRA events to your CI/CD pipeline. My setup: page save → Lambda audit → Slack notification if Critical findings. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor credit usage –&lt;/strong&gt; Check AIRA dashboard for credit balance. Each agent run consumes credits based on complexity. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Iterate on prompts –&lt;/strong&gt; Natural language works, but specific prompts yield better results. "Evaluate against Section 3.2 of brand guidelines" &amp;gt; "check tone".&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Technical Foundation
&lt;/h2&gt;

&lt;p&gt;AIRA agents run on Azure OpenAI with commercial data protection guarantees: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No customer data stored or logged &lt;/li&gt;
&lt;li&gt;Prompts/responses discarded after interaction &lt;/li&gt;
&lt;li&gt;Not used for model training &lt;/li&gt;
&lt;li&gt;Enterprise-grade privacy compliance &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For developers, AIRA features integrate via: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FormComponentConfiguration attributes for widget properties &lt;/li&gt;
&lt;li&gt;ExcludeFromAiraTranslation attribute for Page Builder components &lt;/li&gt;
&lt;li&gt;Event system for workflow automation &lt;/li&gt;
&lt;li&gt;Global config in appsettings.json (CMSEnableAira toggle) &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Wrapping Up: Your Move
&lt;/h2&gt;

&lt;p&gt;AIRA agents aren't future tech—they're shipping today in Xperience v31.1+. The Content Strategist alone cuts content ops time by 80%, and it's just the first agent in the suite. &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Action steps: *&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spin up Xperience trial (kentico.com/trial) &lt;/li&gt;
&lt;li&gt;Enable Content Strategist in AIRA settings &lt;/li&gt;
&lt;li&gt;Upload your brand guidelines as Content Strategy &lt;/li&gt;
&lt;li&gt;Run your first evaluation on existing pages &lt;/li&gt;
&lt;li&gt;Integrate with your AWS Lambda deployment for scale &lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Kentico #KenticoXperience #AIRA #AgenticAI #AWSTips #CloudDev #ContentAutomation #KenticoWithPawan
&lt;/h1&gt;

</description>
      <category>kentico</category>
      <category>aira</category>
      <category>xperiencebykentico</category>
      <category>xbyk</category>
    </item>
    <item>
      <title>Building in Public: My Experience as an AWS Community Builder and Lessons for Future Applicants</title>
      <dc:creator>Pawan Sharma</dc:creator>
      <pubDate>Tue, 30 Dec 2025 09:54:11 +0000</pubDate>
      <link>https://dev.to/pawansharmaggc/building-in-public-my-experience-as-an-aws-community-builder-and-lessons-for-future-applicants-164h</link>
      <guid>https://dev.to/pawansharmaggc/building-in-public-my-experience-as-an-aws-community-builder-and-lessons-for-future-applicants-164h</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6334pjmtuo91v6m4n5xr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6334pjmtuo91v6m4n5xr.jpg" alt=" " width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Last year, I was selected as an &lt;a href="https://builder.aws.com/community/community-builders" rel="noopener noreferrer"&gt;AWS Community Builders&lt;/a&gt;. While the acceptance email was exciting, the real value of the program became clear only after spending time within the community - learning, contributing, and growing alongside builders from across the world.&lt;/p&gt;

&lt;p&gt;This article is a reflection on that journey. It is written for anyone considering applying in an upcoming cycle and wondering what actually matters beyond the application form.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the AWS Community Builders Program Really Is
&lt;/h2&gt;

&lt;p&gt;From the inside, the program is best described as a working community, not a badge.&lt;/p&gt;

&lt;p&gt;AWS Community Builders are individuals who actively:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share AWS knowledge&lt;/li&gt;
&lt;li&gt;Support peers through real-world problem solving&lt;/li&gt;
&lt;li&gt;Engage consistently with the broader AWS ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The program provides structure, access, and enablement - but the impact comes from how members use those opportunities.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happened After I Was Selected
&lt;/h2&gt;

&lt;p&gt;Once on boarded, I quickly realized that the biggest advantage was access to people.&lt;/p&gt;

&lt;p&gt;Through the Community Builders Slack workspace and sessions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I learned directly from experienced practitioners&lt;/li&gt;
&lt;li&gt;I gained early visibility into AWS services and best practices&lt;/li&gt;
&lt;li&gt;I exchanged ideas with builders working on diverse use cases&lt;/li&gt;
&lt;li&gt;I received constructive feedback on content and technical topics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This environment encourages asking thoughtful questions and sharing practical experience rather than chasing visibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  What You Actually Gain After Being Selected as an AWS Community Builder
&lt;/h2&gt;

&lt;p&gt;Once you are selected, the program offers a combination of technical enablement, community access, and practical benefits. Based on my experience, these are the most meaningful ones:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Direct Access to a Strong AWS Builder Network&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The private Community Builders Slack workspace is where most of the real value exists. It allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discuss real-world AWS challenges with experienced builders&lt;/li&gt;
&lt;li&gt;Learn from diverse use cases across industries&lt;/li&gt;
&lt;li&gt;Get fast, practical feedback on technical ideas and content&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This peer learning environment significantly accelerates growth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. AWS Credits for Hands-On Learning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Community Builders receive AWS credits that can be used for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal experiments and proof-of-concepts&lt;/li&gt;
&lt;li&gt;Learning new AWS services without cost pressure&lt;/li&gt;
&lt;li&gt;Building demos, labs, or sample architectures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This encourages deeper hands-on exploration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Exclusive Technical Sessions and Briefings&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS regularly organizes sessions exclusively for Community Builders, covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deep dives into AWS services&lt;/li&gt;
&lt;li&gt;Best practices and architectural guidance&lt;/li&gt;
&lt;li&gt;Early insights into upcoming features&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These sessions often go beyond what is available publicly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Early Access to AWS Services and Features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Being part of the program sometimes provides early visibility or access to new services and capabilities, helping you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stay ahead of the learning curve&lt;/li&gt;
&lt;li&gt;Create relevant content early&lt;/li&gt;
&lt;li&gt;Experiment before features reach general availability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5. Support for Content Creation and Community Growth&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;AWS encourages Community Builders to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve technical writing and presentations&lt;/li&gt;
&lt;li&gt;Grow their reach responsibly&lt;/li&gt;
&lt;li&gt;Share accurate, high-quality knowledge&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The focus is always on value, not marketing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Recognition Within the AWS Ecosystem&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While not the primary goal, being a Community Builder helps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build credibility within the AWS community&lt;/li&gt;
&lt;li&gt;Open doors to collaborations, events, and speaking opportunities&lt;/li&gt;
&lt;li&gt;Connect with AWS experts and industry leaders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This recognition comes naturally from consistent contribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Being a Community Builder Changed My Approach
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. I Became More Intentional About Sharing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of focusing on “what will perform well,” I started sharing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lessons from real projects&lt;/li&gt;
&lt;li&gt;Common mistakes and how to avoid them&lt;/li&gt;
&lt;li&gt;Clear explanations of complex topics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The emphasis shifted from reach to usefulness.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Community Engagement Became a Two-Way Street&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The program reinforced an important mindset: contribution is not one-directional.&lt;/p&gt;

&lt;p&gt;Helping others led to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better understanding of AWS services&lt;/li&gt;
&lt;li&gt;Exposure to new perspectives and architectures&lt;/li&gt;
&lt;li&gt;Strong professional relationships&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You gain as much as you give.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Learning Accelerated Through Peer Discussions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Discussions within the community often go deeper than public forums. Seeing how others approach design decisions, cost optimization, or security trade-offs provided insights that documentation alone cannot offer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advice for Those Planning to Apply
&lt;/h2&gt;

&lt;p&gt;Based on my experience, here is what truly helps:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start Contributing Before You Apply&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Write, speak, mentor, or support - long before the application opens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be Consistent, Not Perfect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Regular, honest contribution matters more than polished output.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Engage With the Community&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Attend events, comment thoughtfully, and help when you can.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write a Genuine Application&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your application should reflect your real journey, motivations, and impact. Avoid scripted or generic responses.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important note:&lt;/strong&gt; Do not use AI tools to write your application responses. AWS values authentic, personal input.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Benefits You Can Expect (Beyond the Obvious)
&lt;/h2&gt;

&lt;p&gt;While the program includes tangible benefits such as AWS credits, learning resources, and exclusive sessions, the most valuable benefit is the network.&lt;/p&gt;

&lt;p&gt;Being part of a group that values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Learning in public&lt;/li&gt;
&lt;li&gt;Helping without expectation&lt;/li&gt;
&lt;li&gt;Technical depth with humility&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;creates long-term professional growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Becoming an AWS Community Builder is not about being the loudest voice - it is about being a reliable one.&lt;/p&gt;

&lt;p&gt;If you are preparing to apply:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Focus on consistent contribution&lt;/li&gt;
&lt;li&gt;Share what you genuinely learn&lt;/li&gt;
&lt;li&gt;Support others whenever possible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application will then feel like a summary of your journey—not a starting point.&lt;/p&gt;

&lt;p&gt;If you plan to apply in an upcoming cycle, I wish you the very best. And if you get selected, reach out—I would be happy to connect and learn together.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awscommunity</category>
      <category>awscommunitybuilders</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>Migrating Media Libraries to Content Hub in Xperience by Kentico – A Hands-On Project Case Study</title>
      <dc:creator>Pawan Sharma</dc:creator>
      <pubDate>Mon, 17 Nov 2025 15:12:07 +0000</pubDate>
      <link>https://dev.to/pawansharmaggc/migrating-media-libraries-to-content-hub-in-xperience-by-kentico-my-real-project-experience-5d53</link>
      <guid>https://dev.to/pawansharmaggc/migrating-media-libraries-to-content-hub-in-xperience-by-kentico-my-real-project-experience-5d53</guid>
      <description>&lt;p&gt;Yesterday, I completed a Media Library migration to Content Hub in a project, and I thought it would be great to share the complete experience here.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;As most of you already know, Media Libraries have been officially sunset in Xperience by Kentico. Their related API members are now marked as obsolete, and support will end on July 24, 2026. After that date, the entire feature and associated APIs will be removed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If your project still relies on Media Libraries, it’s the right time to start planning your migration. In our case, the client’s application was still using Media Libraries extensively, so we took the opportunity to move everything to Content Hub and adopt Content Item Assets, which is now the recommended and future-ready approach for managing media files in &lt;strong&gt;Kentico&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Migration Was Needed
&lt;/h2&gt;

&lt;p&gt;Media Libraries have been around for years and served their purpose well. However, they were tightly coupled with legacy APIs and didn’t align with Kentico’s new &lt;strong&gt;content modeling approach&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Content Hub, on the other hand, provides a &lt;strong&gt;centralized and structured way&lt;/strong&gt; to manage all your digital assets. It offers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A more flexible content model&lt;/li&gt;
&lt;li&gt;Better metadata and permissions handling&lt;/li&gt;
&lt;li&gt;Integration with modern workflows&lt;/li&gt;
&lt;li&gt;Long-term compatibility with Kentico’s evolving architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For our project, moving to Content Hub was not only about compliance but also about future-proofing the solution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration Overview
&lt;/h2&gt;

&lt;p&gt;The migration process was smoother than I expected — thanks to Kentico’s built-in Media Library Migration Tool.&lt;/p&gt;

&lt;p&gt;Here’s the overall process we followed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Migrate Media Library files to Content Hub&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;2. Create a database backup&lt;/strong&gt; &lt;br&gt;
&lt;strong&gt;3. Set up the local development environment&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;4. Migrate fields referencing media files&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;5. Update the codebase&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;6. Deploy changes&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;7. Delete old Media Libraries&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa996i82u9mm1b5e5ubcj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa996i82u9mm1b5e5ubcj.png" alt=" " width="800" height="559"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me walk you through each phase in more detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1 – Migrate Media Library Files to Content Hub
&lt;/h2&gt;

&lt;p&gt;This is the main step where all your existing media library files get converted into Content Item Assets.&lt;/p&gt;

&lt;p&gt;Once I opened the &lt;strong&gt;Media Libraries&lt;/strong&gt; application, I used the new migration option. When you click “Migrate Media Libraries”, Kentico creates a workspace named “&lt;strong&gt;Migration from Media Libraries&lt;/strong&gt;” in the &lt;strong&gt;Content Hub&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqh8atcb2ydauppv2c1xt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqh8atcb2ydauppv2c1xt.png" alt=" " width="800" height="615"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s what I really liked:&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;folder hierarchy&lt;/strong&gt; is fully preserved (e.g., a file in ~/AcmeLibrary/Icons/ stays under the same structure in Content Hub).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6xc2q7vul6lsep03rqq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx6xc2q7vul6lsep03rqq.png" alt=" " width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All &lt;strong&gt;GUIDs, custom fields, and system fields&lt;/strong&gt; remain intact.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fznmsexthec8tujxcjatz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fznmsexthec8tujxcjatz.png" alt=" " width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Permissions from the original media libraries automatically carry over.&lt;/p&gt;

&lt;p&gt;Also, this is a &lt;strong&gt;non-destructive migration&lt;/strong&gt; — meaning the original files remain in place, so nothing breaks during the process.&lt;/p&gt;

&lt;p&gt;Once the migration finished, I verified the logs in the &lt;strong&gt;Event Log&lt;/strong&gt; and confirmed everything migrated successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 – Create a Database Backup
&lt;/h2&gt;

&lt;p&gt;After completing the migration, I immediately took a &lt;strong&gt;full database backup&lt;/strong&gt; of the environment.&lt;/p&gt;

&lt;p&gt;This is an important step — it ensures you can safely roll back if anything goes wrong during later steps like field or code migration. I also implemented a short content freeze to prevent users from uploading new files during this phase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 – Set Up the Development Environment
&lt;/h2&gt;

&lt;p&gt;Next, I restored the backed-up database in my local environment to mirror the client’s production setup. This allowed me to run all migration scripts safely and test changes before pushing anything live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 – Migrate Fields Referencing Media Files
&lt;/h2&gt;

&lt;p&gt;This part required some command-line work. Kentico provides a &lt;strong&gt;.NET CLI script&lt;/strong&gt; that migrates database definitions of fields referencing media files.&lt;/p&gt;

&lt;p&gt;All fields of type Media files were updated to the new &lt;strong&gt;Pages and Reusable Content data type&lt;/strong&gt;, and the Media file selector was replaced by the &lt;strong&gt;Combined Content Selector&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The best part is — the script is &lt;strong&gt;re-runnable&lt;/strong&gt;, so if any field fails to migrate due to a naming conflict or schema issue, it logs an error and continues safely.&lt;/p&gt;

&lt;p&gt;To run the migration, I used:&lt;br&gt;
&lt;code&gt;dotnet run --kxp-migrate-media-file-fields&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This step ensures that all database-level references to media files now correctly point to Content Item Assets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5 – Update the Codebase
&lt;/h2&gt;

&lt;p&gt;Now came the manual part — updating the code to remove references to obsolete APIs.&lt;/p&gt;

&lt;p&gt;Here are a few key changes we made:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;Old API&lt;/th&gt;
    &lt;th&gt;New Replacement&lt;/th&gt;
    &lt;th&gt;Notes&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;MediaFileInfo&lt;/td&gt;
    &lt;td&gt;Generated model of content type&lt;/td&gt;
    &lt;td&gt;The content type must include a content item asset field.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;MediaLibraryInfo&lt;/td&gt;
    &lt;td&gt;ContentFolderInfo&lt;/td&gt;
    &lt;td&gt;Represents folders inside Content Hub.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;IInfoProvider&amp;lt;MediaFileInfo&amp;gt;&lt;/td&gt;
    &lt;td&gt;IContentItemManager&lt;/td&gt;
    &lt;td&gt;Used for programmatically managing content items.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;AssetSelectorComponent&lt;/td&gt;
    &lt;td&gt;ContentItemSelectorComponent&lt;/td&gt;
    &lt;td&gt;Updated UI form component for asset selection.&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Some APIs like IMediaFileUrlRetriever and IMediaProtectionService don’t have direct replacements, but we implemented custom logic for asset URLs and resizing where needed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6 – Deploy Changes
&lt;/h2&gt;

&lt;p&gt;After successfully migrating data and updating the code, we deployed the changes to the client’s environment.&lt;/p&gt;

&lt;p&gt;We excluded the temporary &lt;strong&gt;MediaLibrariesMigration.MigratedMediaFile&lt;/strong&gt; content type from the deployment package and ensured the Continuous Deployment restore mode was set to CreateUpdate.&lt;/p&gt;

&lt;p&gt;Everything worked as expected on the first deployment — always a good feeling!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7 – Delete Old Media Libraries
&lt;/h2&gt;

&lt;p&gt;Once we verified all assets were functional and no broken links existed, we deleted the original &lt;strong&gt;Media Libraries&lt;/strong&gt; from the environment.&lt;/p&gt;

&lt;p&gt;I also updated the &lt;strong&gt;Role Management&lt;/strong&gt; settings to remove permissions for the Media Libraries application, preventing any new legacy libraries from being created accidentally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Redirects and URLs
&lt;/h2&gt;

&lt;p&gt;Kentico does a great job handling redirects automatically.&lt;br&gt;
All old &lt;strong&gt;~/getmedia/...&lt;/strong&gt; links are redirected to the new &lt;strong&gt;~/getcontentasset/...&lt;/strong&gt; URLs.&lt;/p&gt;

&lt;p&gt;Important note: direct path URLs like &lt;strong&gt;~/AcmeLibrary/coffee.png&lt;/strong&gt; don’t get redirected, so we ensured no references relied on those patterns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Overall, the &lt;strong&gt;Media Library to Content Hub migration&lt;/strong&gt; was straightforward and well-supported.&lt;/p&gt;

&lt;p&gt;It’s clear that Kentico is moving towards a &lt;strong&gt;modern, flexible, and content-first architecture&lt;/strong&gt;, and this migration is an important step in that direction.&lt;/p&gt;

&lt;p&gt;If you’re still using Media Libraries, I’d strongly recommend starting the migration early. It’s not just about compliance with the July 2026 deadline — it’s also about unlocking a more powerful and scalable way to manage assets.&lt;/p&gt;

&lt;p&gt;This migration gave me hands-on experience with Kentico’s latest content architecture, and I must say — it’s a big leap forward for content management in Xperience.&lt;/p&gt;

&lt;p&gt;Happy Learning.....See You Soon&lt;br&gt;
Thanks&lt;/p&gt;

</description>
      <category>devjournal</category>
      <category>webdev</category>
      <category>dotnet</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Building a Super Mario-Style Platformer Game with Amazon Q Developer</title>
      <dc:creator>Pawan Sharma</dc:creator>
      <pubDate>Fri, 27 Jun 2025 11:42:37 +0000</pubDate>
      <link>https://dev.to/pawansharmaggc/building-a-super-mario-style-platformer-game-with-amazon-q-developer-5b35</link>
      <guid>https://dev.to/pawansharmaggc/building-a-super-mario-style-platformer-game-with-amazon-q-developer-5b35</guid>
      <description>&lt;p&gt;&lt;strong&gt;⚙️ Amazon Q CLI: AI Right in Your Terminal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To speed up development and minimize context switching, I used the &lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html" rel="noopener noreferrer"&gt;Amazon Q CLI&lt;/a&gt; — a command-line interface that brings the power of generative AI right into your local development workflow.&lt;/p&gt;

&lt;p&gt;Instead of switching between docs, forums, and editors, I just typed natural language commands directly in my terminal, and &lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html" rel="noopener noreferrer"&gt;Amazon Q&lt;/a&gt; responded with intelligent code suggestions, explanations, and fixes.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🧠 What Is &lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html" rel="noopener noreferrer"&gt;Amazon Q CLI&lt;/a&gt;?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html" rel="noopener noreferrer"&gt;Amazon Q CLI&lt;/a&gt; is a powerful AI tool designed to assist developers via natural language prompts directly from the terminal.&lt;/p&gt;

&lt;p&gt;Whether you're building cloud-native applications or something just for fun (like this retro platformer!), Q CLI helps with:&lt;/p&gt;

&lt;p&gt;✅ Writing boilerplate code&lt;br&gt;&lt;br&gt;
✅ Generating test cases&lt;br&gt;&lt;br&gt;
✅ Refactoring functions&lt;br&gt;&lt;br&gt;
✅ Explaining unfamiliar code&lt;br&gt;&lt;br&gt;
✅ Looking up AWS documentation&lt;br&gt;&lt;br&gt;
✅ Debugging issues  &lt;/p&gt;

&lt;p&gt;All without leaving the terminal.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;🚀 How I Used It in This Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here’s how Amazon Q CLI boosted my workflow while building &lt;strong&gt;Super Platform Adventure&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Boilerplate generation&lt;/strong&gt;: I asked it to create the base structure for the Player, Enemy, and Coin classes — saving me hours of setup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Physics logic&lt;/strong&gt;: Instead of manually tweaking jump behavior, I prompted,&lt;br&gt;&lt;br&gt;
“Add gravity and jump velocity logic to player class” — and it just worked.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bug fixing&lt;/strong&gt;: When collision detection wasn’t working as expected, I ran:&lt;br&gt;&lt;br&gt;
&lt;em&gt;“Why isn’t sprite collision working in my Pygame project?”&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Q diagnosed the problem and suggested using &lt;code&gt;pygame.sprite.spritecollide()&lt;/code&gt; properly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Refactoring&lt;/strong&gt;: Cleaned up repetitive code using natural prompts like&lt;br&gt;&lt;br&gt;
&lt;em&gt;“Refactor this loop into a method”&lt;/em&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;🛠️ Setting Up Amazon Q CLI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before starting the game, I installed and configured Amazon Q CLI on my system. The setup was quick:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @amazon/q-cli
q configure
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You’ll be prompted to authenticate with your AWS account, after which you can start prompting away in your terminal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkk8yoa68edumm3m5zqrx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkk8yoa68edumm3m5zqrx.png" alt="Amazon Q CLI Setup" width="687" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html" rel="noopener noreferrer"&gt;Amazon Q CLI&lt;/a&gt; felt like having a senior dev in the terminal — available 24/7, understanding natural language, and writing code with context.&lt;/p&gt;




&lt;p&gt;For game development especially, where quick iteration and frequent debugging are key, this tool saved me countless hours.&lt;/p&gt;

&lt;p&gt;So whether you're building a cloud app or just a cool retro game — give Q CLI a try. It’s a game changer. 🎮&lt;/p&gt;




&lt;p&gt;Ever dreamed of building your own retro-style platformer? I did — and with the help of Amazon Q Developer, I finally brought that idea to life using Python and Pygame.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3q8zmk2u4zhco9rs4ge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3q8zmk2u4zhco9rs4ge.png" alt="Game Screenshot" width="799" height="629"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me walk you through my journey of creating 🍄 &lt;strong&gt;Super Platform Adventure&lt;/strong&gt;, a side-scrolling game inspired by classics like Super Mario, with the power of AI and modern tools.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwi98u6mvrz2nz5omuun.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwi98u6mvrz2nz5omuun.png" alt="Game Level" width="800" height="624"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Amazon Q CLI with prompt&lt;/strong&gt;  &lt;/p&gt;

&lt;h1&gt;
  
  
  🍄 Super Platform Adventure - Game Prompt
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Game Concept
&lt;/h2&gt;

&lt;p&gt;Create a Super Mario-style 2D platformer game using Python and Pygame with the following specifications:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Player Character
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Appearance&lt;/strong&gt;: Blue rectangle (40x40 pixels) with simple white dot eyes
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Starting Position&lt;/strong&gt;: (50, 400)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Movement Speed&lt;/strong&gt;: 5 pixels per frame
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jump Mechanics&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jump velocity: -15
&lt;/li&gt;
&lt;li&gt;Gravity: +0.8 per frame
&lt;/li&gt;
&lt;li&gt;Can only jump on solid ground
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Lives&lt;/strong&gt;: 3
&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Respawn&lt;/strong&gt;: Return to start when hit
&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Game World
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Size&lt;/strong&gt;: 800x600
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Background&lt;/strong&gt;: Sky blue (135, 206, 235)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Platforms&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Ground: full width, height 40px
&lt;/li&gt;
&lt;li&gt;Elevated: multiple brown platforms
&lt;/li&gt;
&lt;li&gt;Solid collision detection
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Enemies
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Appearance&lt;/strong&gt;: Red rectangles (30x30), black eyes
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behavior&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Patrol platforms
&lt;/li&gt;
&lt;li&gt;Reverse at edges
&lt;/li&gt;
&lt;li&gt;Speed: 2 px/frame
&lt;/li&gt;
&lt;li&gt;Not fall off
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;Combat&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Jumping = defeat
&lt;/li&gt;
&lt;li&gt;Touching = damage
&lt;/li&gt;
&lt;li&gt;+100 points
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Coins
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Appearance&lt;/strong&gt;: Yellow circles (20x20)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value&lt;/strong&gt;: 50 points
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behavior&lt;/strong&gt;: Disappear when collected
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Win requirement&lt;/strong&gt;: All coins must be collected
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Physics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Constant gravity
&lt;/li&gt;
&lt;li&gt;Rectangle collision
&lt;/li&gt;
&lt;li&gt;Platform interaction
&lt;/li&gt;
&lt;li&gt;Boundary checks
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  6. Game States
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Win&lt;/strong&gt;: All enemies + all coins
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lose&lt;/strong&gt;: 0 lives
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Active&lt;/strong&gt;: Real-time physics, score/lives, 60 FPS
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. Controls
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Left: A / ←
&lt;/li&gt;
&lt;li&gt;Right: D / →
&lt;/li&gt;
&lt;li&gt;Jump: Space / W / ↑
&lt;/li&gt;
&lt;li&gt;Quit: Window close
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. UI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Score: Top-left
&lt;/li&gt;
&lt;li&gt;Lives: Below score
&lt;/li&gt;
&lt;li&gt;Instructions: Bottom
&lt;/li&gt;
&lt;li&gt;Font: Pygame default, size 36
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9. Tech
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Pygame
&lt;/li&gt;
&lt;li&gt;60 FPS
&lt;/li&gt;
&lt;li&gt;800x600
&lt;/li&gt;
&lt;li&gt;OOP classes
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10. Class Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Player&lt;/strong&gt;: Movement, collision, draw
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enemy&lt;/strong&gt;: Patrol logic, collision, draw
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coin&lt;/strong&gt;: Position, collection, draw
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Game&lt;/strong&gt;: Loop, manage objects, collisions, UI
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  11. Platform Layout
&lt;/h3&gt;

&lt;p&gt;Ground: (0, 560, 800, 40)&lt;br&gt;&lt;br&gt;
Platform 1: (200, 450, 150, 20)&lt;br&gt;&lt;br&gt;
Platform 2: (400, 350, 150, 20)&lt;br&gt;&lt;br&gt;
Platform 3: (600, 250, 150, 20)&lt;br&gt;&lt;br&gt;
Platform 4: (100, 300, 100, 20)&lt;br&gt;&lt;br&gt;
Platform 5: (500, 150, 200, 20)  &lt;/p&gt;
&lt;h3&gt;
  
  
  12. Enemies
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;(220, 420)
&lt;/li&gt;
&lt;li&gt;(420, 320)
&lt;/li&gt;
&lt;li&gt;(620, 220)
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  13. Coins
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;(250, 420)
&lt;/li&gt;
&lt;li&gt;(450, 320)
&lt;/li&gt;
&lt;li&gt;(650, 220)
&lt;/li&gt;
&lt;li&gt;(550, 120)
&lt;/li&gt;
&lt;li&gt;(150, 270)
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  14. Colors
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Player: Blue (0,0,255)
&lt;/li&gt;
&lt;li&gt;Enemy: Red (255,0,0)
&lt;/li&gt;
&lt;li&gt;Coin: Yellow (255,255,0)
&lt;/li&gt;
&lt;li&gt;Platform: Brown (139,69,19)
&lt;/li&gt;
&lt;li&gt;BG: Sky Blue (135,206,235)
&lt;/li&gt;
&lt;li&gt;UI: Black (0,0,0)
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  15. Rules
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Collect all coins + defeat all enemies
&lt;/li&gt;
&lt;li&gt;Touch enemy side = -1 life
&lt;/li&gt;
&lt;li&gt;Jump on enemy = kill + 100
&lt;/li&gt;
&lt;li&gt;Coin = +50
&lt;/li&gt;
&lt;li&gt;Fall = respawn
&lt;/li&gt;
&lt;li&gt;0 lives = game over
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  16. Performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;60 FPS
&lt;/li&gt;
&lt;li&gt;No input lag
&lt;/li&gt;
&lt;li&gt;Smooth collisions
&lt;/li&gt;
&lt;li&gt;State transitions
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  17. Error Handling
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Init pygame safely
&lt;/li&gt;
&lt;li&gt;Handle close
&lt;/li&gt;
&lt;li&gt;Module exceptions
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;🎯 Why I Chose This Game&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ve always loved platformers — nostalgic, challenging, fun.&lt;br&gt;&lt;br&gt;
Perfect for testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physics &amp;amp; collisions
&lt;/li&gt;
&lt;li&gt;Enemy AI
&lt;/li&gt;
&lt;li&gt;Scoring &amp;amp; levels
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;🤖 Prompting with Amazon Q Developer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Started with:&lt;br&gt;&lt;br&gt;
&lt;em&gt;"Build a basic platformer game in Python using Pygame with coins, enemies, and win/loss conditions."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Q Developer impressed me by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding full context
&lt;/li&gt;
&lt;li&gt;Creating modular classes
&lt;/li&gt;
&lt;li&gt;Suggesting gravity and AI logic
&lt;/li&gt;
&lt;li&gt;Producing working code snippets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then I kept refining:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“Add scoring system”
&lt;/li&gt;
&lt;li&gt;“Make enemies patrol”
&lt;/li&gt;
&lt;li&gt;“Lose life on enemy contact”
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each time: accurate and structured responses 🔥&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;💡 AI Solutions to Classic Game Dev Problems&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Jump Physics&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;jumping&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vel_y&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;gravity&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;vel_y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Enemy Patrol&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;left&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;min_x&lt;/span&gt; &lt;span class="ow"&gt;or&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;right&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;max_x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;direction&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;speed&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;direction&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Collisions&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sprite&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;spritecollide&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;




&lt;p&gt;&lt;strong&gt;⚡ Automation That Saved Time&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon Q helped with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Refactoring
&lt;/li&gt;
&lt;li&gt;Bug fixing
&lt;/li&gt;
&lt;li&gt;Full game loop
&lt;/li&gt;
&lt;li&gt;UI states (restart, win, lose)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Prompted:&lt;br&gt;&lt;br&gt;
&lt;em&gt;"Add restart option when the game is over"&lt;/em&gt; — it worked perfectly.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;🔧 Game Features Summary&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Physics + gravity
&lt;/li&gt;
&lt;li&gt;Coins + enemies
&lt;/li&gt;
&lt;li&gt;Score &amp;amp; lives
&lt;/li&gt;
&lt;li&gt;Win/Lose logic
&lt;/li&gt;
&lt;li&gt;Expandable design
&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;&lt;strong&gt;🐍 Code Snapshot&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Player&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pygame&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;sprite&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Sprite&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;speed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;jump_power&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;lives&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;
        &lt;span class="c1"&gt;# Setup player sprite &amp;amp; controls
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Full Source Code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
📦 &lt;a href="https://github.com/PawanSharmaGGC" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;🎮 Try the Game&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;pygame
python super_game.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;&lt;strong&gt;🙌 Credits&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Game dev with 💖 using Python + Pygame
&lt;/li&gt;
&lt;li&gt;AI prompts powered by &lt;strong&gt;Amazon Q Developer&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Code hosted on &lt;a href="https://github.com/PawanSharmaGGC" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>A robust solution for managing and resolving conflicts in NuGet package dependencies within Visual Studio</title>
      <dc:creator>Pawan Sharma</dc:creator>
      <pubDate>Thu, 11 Apr 2024 17:29:28 +0000</pubDate>
      <link>https://dev.to/pawansharmaggc/a-robust-solution-for-managing-and-resolvingconflicts-in-nuget-package-dependencies-withinvisual-studio-5647</link>
      <guid>https://dev.to/pawansharmaggc/a-robust-solution-for-managing-and-resolvingconflicts-in-nuget-package-dependencies-withinvisual-studio-5647</guid>
      <description>&lt;p&gt;Today I got a project in .net core for upgrading the version from .net 6 to 8 and I was super excited but when I set up the project on my system, I found the complexity of the project.&lt;/p&gt;

&lt;p&gt;There are 8-10 projects and references to each other’s. I started to work on upgradation. I was happy because I had done my job (.Net 6 to 8) but when I built the project then lots of errors are there regarding conflicts of dependencies,&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukt62p1hzdiqipyf8pxr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fukt62p1hzdiqipyf8pxr.png" alt="Image description" width="560" height="194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, I started to resolve it one by one but when I built the project again then errors of conflict increased more. I spent much more time to resolve the issues but not succeed then I found &lt;a href="https://marketplace.visualstudio.com/items?itemName=vsext.NuGetSolver"&gt;NuGetSolver&lt;/a&gt; to resolve this issue. I downloaded the extension from VS Marketplace. &lt;a href="https://marketplace.visualstudio.com/items?itemName=vsext.NuGetSolver"&gt;NuGetSolver&lt;/a&gt; is a powerful Visual Studio extension designed to help you tackle NuGet dependency conflicts with ease.&lt;/p&gt;

&lt;p&gt;I run the tool from the “Solution Explorer” by right-clicking and selecting “Resolve Dependency Conflicts”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffk36x1qoo990ktsnqskx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffk36x1qoo990ktsnqskx.png" alt="Image description" width="184" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can run the tool even if your solution doesn’t have any dependency conflicts at the moment. It will upgrade your dependencies while keeping the changes minimal.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79zs513ssqw1diefq0ir.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79zs513ssqw1diefq0ir.png" alt="Image description" width="488" height="350"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks, See you in next blog.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
