<?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: ai</title>
    <description>The latest articles tagged 'ai' on DEV Community.</description>
    <link>https://dev.to/t/ai</link>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tag/ai"/>
    <language>en</language>
    <item>
      <title>How I Built My UX Portfolio Using Figma AI, Claude Code, and GitHub Pages: My End-to-End AI-Assisted Workflow</title>
      <dc:creator>Pavanipriya Sajja</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:50:36 +0000</pubDate>
      <link>https://dev.to/priya_sajja_c336921bbda87/how-i-built-my-ux-portfolio-using-figma-ai-claude-code-and-github-pages-my-end-to-end-4dhg</link>
      <guid>https://dev.to/priya_sajja_c336921bbda87/how-i-built-my-ux-portfolio-using-figma-ai-claude-code-and-github-pages-my-end-to-end-4dhg</guid>
      <description>&lt;p&gt;In my previous article, I talked about why having a portfolio is important for professionals working in technology. Whether you're a UX designer, UX researcher, software developer, product manager, or data scientist, &lt;strong&gt;a portfolio showcases much more than a resume ever can&lt;/strong&gt;. It demonstrates &lt;strong&gt;how you think, solve problems, and apply your skills to real-world projects&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A resume usually summarizes your experience in one or two pages. It lists your job titles, responsibilities, skills, and education. A portfolio, however, tells the story behind your work. It explains your process, your decision-making, your challenges, and the impact of your projects.&lt;/p&gt;

&lt;p&gt;In this article, I want to share the end-to-end process I followed to build my own portfolio website. Instead of using a traditional website builder, I explored an AI-assisted workflow by combining Figma AI, Claude Code, and GitHub Pages.&lt;/p&gt;

&lt;p&gt;This wasn't simply about using AI to generate a website. It was about using AI to accelerate the process while still applying UX thinking, design principles, and human judgment at every stage.&lt;/p&gt;

&lt;p&gt;My workflow consisted of five major phases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Planning the portfolio&lt;/li&gt;
&lt;li&gt;Selecting projects and creating content&lt;/li&gt;
&lt;li&gt;Designing the portfolio with Figma AI&lt;/li&gt;
&lt;li&gt;Developing the website with Claude Code&lt;/li&gt;
&lt;li&gt;Publishing the website with GitHub Pages&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: Planning the Portfolio
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuar117og80g9vfmxhxeq.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fuar117og80g9vfmxhxeq.png" alt="Planning the portfolio" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before opening Figma or writing any code, I spent time thinking about the purpose of the portfolio.&lt;/p&gt;

&lt;p&gt;Over the years, I had experimented with different approaches to creating portfolio websites, including website builders, content management systems, and custom HTML and CSS. This time, I wanted to explore how AI could help me move from an idea to a working website more efficiently.&lt;/p&gt;

&lt;p&gt;However, before thinking about layouts or colors, I asked myself a few important questions: Who is my portfolio for? What do I want visitors to learn about me? Which projects best represent my experience? What should recruiters and hiring managers see first?&lt;/p&gt;

&lt;p&gt;I wanted visitors to quickly understand: Who I am, What I specialize in, The kinds of projects I have worked on, How I approach UX research and design, How they can contact me&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rather than creating a portfolio filled with unnecessary information, I wanted it to be simple, focused, and easy to navigate&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Selecting and Prioritizing My Projects
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgzw8kpou1vpf32sussk.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmgzw8kpou1vpf32sussk.png" alt="Selecting and Prioritizing My Projects" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Choosing the right projects was probably the most important part of the entire process.&lt;/p&gt;

&lt;p&gt;Many designers include every project they have ever worked on, but I wanted my portfolio to communicate a clear story about my experience.&lt;/p&gt;

&lt;p&gt;**Instead of asking, "What are my best projects?" I asked:&lt;/p&gt;

&lt;p&gt;"What do I want each project to communicate about my skills?"**&lt;/p&gt;

&lt;p&gt;I selected four projects and divided them into primary and supporting case studies.&lt;/p&gt;

&lt;h3&gt;
  
  
  Primary Projects
&lt;/h3&gt;

&lt;p&gt;&lt;b&gt;Kubernetes SIG Multi-Cluster UX Research&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;My first primary project highlights my work as a UX researcher with Kubernetes SIG Multi-Cluster.&lt;/p&gt;

&lt;p&gt;Over the past two years, I have been conducting developer experience research by working closely with engineers, interviewing practitioners, analyzing workflows, and identifying usability challenges in multi-cluster Kubernetes environments.&lt;/p&gt;

&lt;p&gt;This project demonstrates my ability to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conduct qualitative UX research&lt;/li&gt;
&lt;li&gt;Analyze complex technical workflows&lt;/li&gt;
&lt;li&gt;Work with open-source communities&lt;/li&gt;
&lt;li&gt;Translate research findings into actionable insights&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;b&gt;Super Purposes&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;My second primary project focuses on my work at Super Purposes.&lt;/p&gt;

&lt;p&gt;During my three years there, I worked across multiple areas of UX, including: User research, UX design, UI design, Accessibility&lt;br&gt;
Design systems, B2B product experiences&lt;/p&gt;

&lt;p&gt;This project reflects my ability to take products from research through design and collaborate closely with developers and stakeholders.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Supporting Projects&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To complement my primary work, I included two additional projects: OrcaSound, Code for America's Rural Net web application&lt;/p&gt;

&lt;p&gt;These projects demonstrate additional experience in user research, usability testing, information architecture, interaction design, and interface design.&lt;/p&gt;

&lt;p&gt;Once I selected the projects, I arranged them in an order that would guide visitors naturally through my experience—from my most recent research work to earlier UX design projects.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Writing the Content Before Designing
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjtk6pe3idniwb6hgow3.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdjtk6pe3idniwb6hgow3.png" alt="Writing the Content Before Designing" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One lesson I learned is that great portfolios begin with content—not visuals&lt;/strong&gt;. Before opening Figma, I created the content for each case study in separate documents.&lt;/p&gt;

&lt;p&gt;I researched how successful UX portfolios present case studies and created my own reusable template.&lt;/p&gt;

&lt;p&gt;Each project answered questions such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What problem was I solving?&lt;/li&gt;
&lt;li&gt;What was my role?&lt;/li&gt;
&lt;li&gt;Who were the users?&lt;/li&gt;
&lt;li&gt;What research methods did I use?&lt;/li&gt;
&lt;li&gt;What design process did I follow?&lt;/li&gt;
&lt;li&gt;What challenges did I face?&lt;/li&gt;
&lt;li&gt;What decisions did I make?&lt;/li&gt;
&lt;li&gt;What impact did the project have?&lt;/li&gt;
&lt;li&gt;What did I learn?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Preparing the content first made the design process much easier because I already knew exactly what information needed to appear on every page.&lt;/p&gt;

&lt;p&gt;Instead of designing empty layouts and filling them later, I designed around real content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Planning the Website Structure
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fixxobk6o18j8k09f2k53.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fixxobk6o18j8k09f2k53.png" alt="Planning the Website Structure" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the content ready, I planned the information architecture.&lt;/p&gt;

&lt;p&gt;I decided that my portfolio would contain seven main pages: Home, Projects, Four individual case study pages, About Me. &lt;/p&gt;

&lt;p&gt;The Projects page provides a high-level overview of each project, while each case study goes into greater depth about the research, design process, and outcomes.&lt;/p&gt;

&lt;p&gt;The About Me page includes information about: My professional background, Areas of specialization, Career journey, Community contributions, Articles, Resume, Contact information&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keeping the structure simple allows visitors to find information quickly without feeling overwhelmed&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Creating Mockups with Figma AI
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy3maxeotvmtmoe1ax9hp.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fy3maxeotvmtmoe1ax9hp.png" alt="Creating Mockups with Figma AI" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the planning was complete, I moved into the design phase.&lt;/p&gt;

&lt;p&gt;Instead of designing every screen from scratch, I used Figma AI to generate the initial layouts.&lt;/p&gt;

&lt;p&gt;I described the type of portfolio I wanted, including: A clean and modern design, Responsive layouts, Professional typography, Strong visual hierarchy, Simple navigation, Clear project presentation&lt;/p&gt;

&lt;p&gt;Rather than asking Figma AI to generate the entire website in one prompt, I worked page by page.&lt;/p&gt;

&lt;p&gt;For example, I asked it to create: The Home page, A project overview page, Individual case study layouts, An About Me page, Reusable project cards, Navigation components&lt;/p&gt;

&lt;p&gt;Working incrementally gave me much more control over the results. The AI-generated designs became the starting point—not the final product.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Refining the User Experience
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9c81arwrhfb9hkmrchxr.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9c81arwrhfb9hkmrchxr.png" alt="Refining the User Experience" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Although Figma AI generated the initial mockups, I manually refined every page. Some of the improvements included: Better navigation, Improved content hierarchy, More consistent spacing, Stronger, typography, Better color consistency, Reusable components, Accessibility improvements, Responsive layouts&lt;/p&gt;

&lt;p&gt;AI can generate attractive interfaces, but it cannot fully understand the context of your projects or your design decisions. The final experience still depends on the designer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Developing the Website with Claude Code
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxtqvuki8dn4hc60z8bk8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxtqvuki8dn4hc60z8bk8.png" alt="Developing the Website with Claude Code" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the designs were finalized, I used Claude Code to help convert the designs into code. Instead of rebuilding the entire website manually, I used Claude to generate the initial HTML, CSS, and JavaScript. Claude helped accelerate the implementation by generating: HTML page structures, CSS styling, JavaScript, interactions, Responsive layouts, Navigation components&lt;/p&gt;

&lt;p&gt;However, development was still an iterative process.&lt;/p&gt;

&lt;p&gt;I reviewed the generated code, tested the layouts, refined the prompts, corrected issues, and continued improving the implementation until it matched the designs.&lt;/p&gt;

&lt;p&gt;Throughout development, I focused on: Responsive behavior, Accessibility, Readability, Maintainable code, Component consistency, Performance, Although AI generated much of the initial code, every design decision was still reviewed and refined manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Testing and Iteration
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4pc9y765x7jihac33xqr.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4pc9y765x7jihac33xqr.png" alt="Testing and Iteration" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the initial implementation was complete, I tested the website across multiple browsers and screen sizes.&lt;/p&gt;

&lt;p&gt;Testing helped identify areas that still needed improvement, including: Mobile responsiveness, Typography, Navigation, Layout spacing, Component alignment, Accessibility&lt;/p&gt;

&lt;p&gt;Several rounds of testing and refinement helped create a more polished experience. This iterative approach is very similar to product design itself—design, test, learn, and improve.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9: Publishing with GitHub Pages
&lt;/h2&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F45mgud7q7yhtwayjx4iw.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F45mgud7q7yhtwayjx4iw.png" alt="Publishing with GitHub Pages" width="799" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After completing development, I uploaded the project to a GitHub repository. Using GitHub Pages, I published the website as a live portfolio. GitHub Pages made deployment straightforward while also providing version control.&lt;/p&gt;

&lt;p&gt;Whenever I make updates to my portfolio, I simply push the latest changes to GitHub, and the live website is updated.&lt;/p&gt;

&lt;p&gt;Before sharing the portfolio, I verified that: Every page loaded correctly, Navigation links worked, Images displayed properly, External links opened correctly, The website worked on desktop and mobile devices, My resume could be downloaded, Case studies were easy to read&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Building my portfolio taught me that &lt;strong&gt;AI can significantly speed up both design and development, but it cannot replace UX thinking&lt;/strong&gt;. The most important decisions happened long before I generated mockups or code. I still had to decide: Which projects to include, What story each project should tell, How visitors would navigate the website, How to prioritize information, How to improve accessibility, How to create a consistent user experience&lt;/p&gt;

&lt;p&gt;Figma AI helped me explore ideas quickly. Claude Code helped me accelerate development. GitHub Pages made publishing simple.&lt;/p&gt;

&lt;p&gt;Together, these tools allowed me to move from an idea to a live website much faster than traditional workflows.&lt;/p&gt;

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

&lt;p&gt;My complete workflow looked like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think → Select Projects → Create Content → Plan the Architecture → Design with Figma AI → Refine the UX → Develop with Claude Code → Test → Publish with GitHub Pages&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Looking back, I realized that AI was never replacing my role as a UX designer. Instead, it acted as a collaborative partner that accelerated repetitive tasks while allowing me to focus on what matters most—understanding users, organizing content, making design decisions, and creating meaningful experiences.&lt;/p&gt;

&lt;p&gt;A portfolio is more than a collection of projects. It is a &lt;strong&gt;product designed for a specific audience&lt;/strong&gt;. By starting with content and strategy before moving into AI-generated designs and code, I was able to create a portfolio that reflects both my professional experience and my approach to user-centered design.&lt;/p&gt;

&lt;p&gt;If you're planning to build or redesign your own portfolio, my advice is simple: &lt;strong&gt;start with your story, not your tools&lt;/strong&gt;. Once you know what you want to communicate, AI can become a powerful partner in bringing that vision to life.&lt;/p&gt;

&lt;p&gt;Interested in seeing the final version of my UX portfolio? Feel free to send me a LinkedIn connection request, and I'll be happy to share it with you. I look forward to connecting! Here is my linkedin profile: &lt;a href="https://www.linkedin.com/in/pavanipriyasajja/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/pavanipriyasajja/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>developer</category>
      <category>github</category>
    </item>
    <item>
      <title>Top AI Innovation and Digital Transformation Companies for Saudi Enterprises</title>
      <dc:creator>english men </dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:48:17 +0000</pubDate>
      <link>https://dev.to/englishmen/top-ai-innovation-and-digital-transformation-companies-for-saudi-enterprises-3jp7</link>
      <guid>https://dev.to/englishmen/top-ai-innovation-and-digital-transformation-companies-for-saudi-enterprises-3jp7</guid>
      <description>&lt;p&gt;AI is revolutionizing businesses all over Saudi Arabia. Whether it is for automating business operations, delivering superior customer experience, or making decisions based on analysis of data, AI has become an important asset in the form of investment for organizations regardless of size. With Saudi Vision 2030 promoting digitalization efforts, companies are looking to collaborate with the best AI consultation firms in Saudi Arabia or even AI customization companies.&lt;br&gt;
If you want to start using AI technology and services in your organization for developing a product or automating business processes, choosing the right technology partner is crucial. Here we have highlighted some of the top AI consultancy firms or customized AI companies in Saudi Arabia.&lt;br&gt;
Leading custom AI development companies in Saudi Arabia provide end-to-end services, including AI strategy consulting, AI readiness assessments, custom software development, enterprise AI integration, cloud AI deployment, intelligent automation, AI model training, chatbot development, and long-term support. These companies help businesses build secure, scalable, and &lt;a href="https://codezal.ai/custom-ai-solutions/" rel="noopener noreferrer"&gt;future-ready AI solutions&lt;/a&gt; tailored to their unique operational needs.&lt;br&gt;
No matter if your business plans are about launching a new AI-based product or service, automating internal processes through AI, introducing enterprise AI, or implementing generative AI within your system, the choice of the technology partner may have a crucial impact on the outcome of your digital transformation process.&lt;br&gt;
This guide provides you with the List of Top AI Consulting and Custom AI Development Companies in Saudi Arabia (2026), which are known for providing advanced AI solutions, enterprise-level development, and consulting services to help businesses leverage the power of artificial intelligence.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftpha1leskot55vc20q85.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftpha1leskot55vc20q85.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keywords Naturally Included&lt;br&gt;
AI Consulting Company in Saudi Arabia&lt;br&gt;
Custom AI Development Company&lt;br&gt;
AI Development Company Saudi Arabia&lt;br&gt;
Enterprise AI Solutions&lt;br&gt;
AI Consulting Services&lt;br&gt;
Artificial Intelligence Solutions&lt;br&gt;
AI Strategy Consulting&lt;br&gt;
Generative AI Development&lt;br&gt;
Machine Learning Development&lt;br&gt;
AI Automation Solutions&lt;br&gt;
AI Software Development&lt;br&gt;
Business AI Solutions&lt;br&gt;
Enterprise AI Development&lt;br&gt;
Intelligent Automation&lt;br&gt;
Predictive Analytics&lt;br&gt;
Digital Transformation Saudi Arabia&lt;br&gt;
AI Technology Partner&lt;br&gt;
AI Innovation&lt;br&gt;
AI Integration Services&lt;br&gt;
AI Implementation Services&lt;/p&gt;

&lt;p&gt;Top AI Consulting and Custom AI Development Companies in Saudi Arabia&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;CodeZal AI&lt;br&gt;
&lt;a href="https://codezal.ai/" rel="noopener noreferrer"&gt;CodeZal AI&lt;/a&gt; is a trusted &lt;a href="https://codezal.ai/ai-consulting-services/" rel="noopener noreferrer"&gt;AI consulting company in Saudi Arabia&lt;/a&gt;, helping businesses accelerate digital transformation through innovative artificial intelligence solutions. The company specializes in understanding business challenges, creating AI strategies, and developing custom AI applications tailored to industry-specific requirements.&lt;br&gt;
From AI readiness assessments to enterprise AI implementation, CodeZal delivers scalable solutions that improve operational efficiency, automate workflows, and unlock valuable business insights. Their team combines technical expertise with strategic consulting to ensure organizations achieve measurable ROI from AI investments.&lt;br&gt;
Key Services:&lt;br&gt;
AI Consulting Services&lt;br&gt;
Custom AI Development&lt;br&gt;
Generative AI Solutions&lt;br&gt;
AI Executive Workshops&lt;br&gt;
Enterprise AI Strategy&lt;br&gt;
AI Automation Solutions&lt;br&gt;
Machine Learning Development&lt;br&gt;
Predictive Analytics&lt;br&gt;
AI Chatbot Development&lt;br&gt;
Business Intelligence Solutions&lt;br&gt;
Why Choose CodeZal AI?&lt;br&gt;
End-to-end AI consulting and implementation&lt;br&gt;
Industry-focused AI strategies&lt;br&gt;
Enterprise-grade AI development&lt;br&gt;
Scalable and secure AI solutions&lt;br&gt;
Experienced AI engineers and consultants&lt;br&gt;
Tailored AI solutions for startups and enterprises&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FusionAI Technologies&lt;br&gt;
FusionAI Technologies helps businesses adopt intelligent automation using AI-powered software solutions. The company focuses on machine learning, workflow automation, predictive analytics, and enterprise digital transformation projects across multiple industries.&lt;br&gt;
Core Services:&lt;br&gt;
AI Consulting&lt;br&gt;
Process Automation&lt;br&gt;
Machine Learning&lt;br&gt;
Data Analytics&lt;br&gt;
AI Integration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Nexora Intelligence&lt;br&gt;
Nexora Intelligence specializes in developing custom AI applications that improve operational efficiency and customer engagement. Their expertise includes NLP, recommendation engines, and AI-driven business intelligence platforms.&lt;br&gt;
Core Services:&lt;br&gt;
AI Strategy&lt;br&gt;
Custom AI Software&lt;br&gt;
NLP Solutions&lt;br&gt;
Business Intelligence&lt;br&gt;
Predictive Analytics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Quantum AI Labs&lt;br&gt;
Quantum AI Labs delivers advanced AI technologies for enterprises seeking intelligent automation and smart decision-making capabilities. Their solutions support healthcare, finance, logistics, retail, and manufacturing industries.&lt;br&gt;
Core Services:&lt;br&gt;
Enterprise AI&lt;br&gt;
Computer Vision&lt;br&gt;
Machine Learning&lt;br&gt;
AI Research&lt;br&gt;
Automation Solutions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IntelliCore AI&lt;br&gt;
IntelliCore AI develops intelligent business applications that enable organizations to streamline operations using AI-powered workflows and predictive analytics.&lt;br&gt;
Core Services:&lt;br&gt;
AI Software Development&lt;br&gt;
AI Consulting&lt;br&gt;
Enterprise Automation&lt;br&gt;
AI Dashboards&lt;br&gt;
Cloud AI Integration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SmartVision AI&lt;br&gt;
SmartVision AI focuses on enterprise innovation through machine learning models, AI assistants, intelligent document processing, and customer service automation.&lt;br&gt;
Core Services:&lt;br&gt;
AI Chatbots&lt;br&gt;
Intelligent Automation&lt;br&gt;
NLP Solutions&lt;br&gt;
Data Science&lt;br&gt;
AI Consulting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Elevate AI Solutions&lt;br&gt;
Elevate AI Solutions helps businesses modernize operations with scalable AI technologies, intelligent analytics, and cloud-native AI platforms.&lt;br&gt;
Core Services:&lt;br&gt;
AI Consulting&lt;br&gt;
Data Engineering&lt;br&gt;
Machine Learning&lt;br&gt;
AI Integration&lt;br&gt;
Predictive Analytics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;FutureMind AI&lt;br&gt;
FutureMind AI delivers customized AI applications for enterprises aiming to improve productivity, automate repetitive processes, and enhance customer experiences.&lt;br&gt;
Core Services:&lt;br&gt;
AI Development&lt;br&gt;
Enterprise AI&lt;br&gt;
Workflow Automation&lt;br&gt;
Generative AI&lt;br&gt;
Business Process Optimization&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;How to Choose the Right AI Consulting Company&lt;br&gt;
When selecting an AI consulting company in Saudi Arabia, consider the following factors:&lt;br&gt;
Proven experience in enterprise AI projects&lt;br&gt;
Expertise in custom AI development&lt;br&gt;
AI strategy and consulting capabilities&lt;br&gt;
Industry-specific knowledge&lt;br&gt;
Scalable cloud-based AI architecture&lt;br&gt;
Strong security and compliance practices&lt;br&gt;
Transparent development process&lt;br&gt;
Long-term support and maintenance&lt;br&gt;
Benefits of Hiring an AI Consulting Company&lt;br&gt;
Partnering with an experienced custom AI development company offers several advantages:&lt;br&gt;
Accelerated digital transformation&lt;br&gt;
Improved operational efficiency&lt;br&gt;
Intelligent process automation&lt;br&gt;
Better customer experiences&lt;br&gt;
Data-driven business decisions&lt;br&gt;
Reduced operational costs&lt;br&gt;
Increased productivity&lt;br&gt;
Competitive market advantage&lt;br&gt;
Scalable AI infrastructure&lt;br&gt;
Faster innovation cycles&lt;br&gt;
Industries Using AI in Saudi Arabia&lt;br&gt;
AI adoption continues to grow across industries, including:&lt;br&gt;
Healthcare&lt;br&gt;
Banking &amp;amp; Finance&lt;br&gt;
Retail &amp;amp; E-commerce&lt;br&gt;
Logistics &amp;amp; Supply Chain&lt;br&gt;
Manufacturing&lt;br&gt;
Education&lt;br&gt;
Real Estate&lt;br&gt;
Government Services&lt;br&gt;
Insurance&lt;br&gt;
Hospitality&lt;br&gt;
Telecommunications&lt;br&gt;
Energy &amp;amp; Utilities&lt;/p&gt;

&lt;p&gt;Conclusion&lt;br&gt;
The demand for AI consulting companies in Saudi Arabia is increasing as organizations embrace artificial intelligence to drive innovation and business growth. Whether you need custom AI development, AI strategy consulting, enterprise AI solutions, or generative AI implementation, partnering with an experienced AI company can help your business stay ahead in a rapidly evolving digital landscape.&lt;br&gt;
Among the leading providers, CodeZal AI stands out for its expertise in AI consulting services, custom AI development, enterprise AI strategy, AI executive workshops, machine learning solutions, and intelligent automation, making it a strong choice for businesses seeking scalable AI-powered transformation.&lt;/p&gt;

</description>
      <category>ai</category>
    </item>
    <item>
      <title>Global Trade Dynamics Q3 2026 — Geopolitical &amp; Macroeconomic Analysis</title>
      <dc:creator>Nexus Intelligence Research</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:47:13 +0000</pubDate>
      <link>https://dev.to/rogt7/global-trade-dynamics-q3-2026-geopolitical-macroeconomic-analysis-3930</link>
      <guid>https://dev.to/rogt7/global-trade-dynamics-q3-2026-geopolitical-macroeconomic-analysis-3930</guid>
      <description>&lt;h1&gt;
  
  
  Global Trade Dynamics Q3 2026 — Geopolitical &amp;amp; Macroeconomic Analysis
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Published August 03, 2026 by Nexus Intelligence&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Executive Summary
&lt;/h2&gt;

&lt;p&gt;This analysis synthesizes real-time geopolitical intelligence, macroeconomic data, and crypto market signals to provide a comprehensive outlook for Q3 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Findings
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Geopolitical Intelligence
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;No recent intelligence articles available.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Crypto Market Snapshot
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Crypto prices unavailable.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Predictions &amp;amp; Forecasts
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;No predictions available.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Trading Implications
&lt;/h2&gt;

&lt;p&gt;Based on the current Fear &amp;amp; Greed Index and geopolitical signals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Risk sentiment&lt;/strong&gt;: Extreme fear territory — historically a contrarian buy signal&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key levels&lt;/strong&gt;: Monitor BTC dominance and ETH/BTC ratio for altcoin rotation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geopolitical risk premium&lt;/strong&gt;: Elevated — expect volatility in risk assets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Methodology
&lt;/h2&gt;

&lt;p&gt;This report is generated by CIEL's autonomous intelligence system, which aggregates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;670+ geopolitical articles from BBC, Reuters, Al Jazeera&lt;/li&gt;
&lt;li&gt;8,300+ macroeconomic data points&lt;/li&gt;
&lt;li&gt;826 predictions across multiple timeframes&lt;/li&gt;
&lt;li&gt;Real-time crypto OSINT (on-chain whale movements, exchange flows)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Disclaimer: This is not financial advice. All data is sourced from public intelligence feeds.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Follow Nexus Intelligence for regular geopolitical and macroeconomic analysis.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>crypto</category>
      <category>trading</category>
      <category>ai</category>
      <category>geopolitics</category>
    </item>
    <item>
      <title>We Ran 5,051 AI-Search Citation Polls in 77 Days. Here's What Actually Gets a B2B Site Cited</title>
      <dc:creator>Peter Jackman</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:47:06 +0000</pubDate>
      <link>https://dev.to/peter_jackman/we-ran-5051-ai-search-citation-polls-in-77-days-heres-what-actually-gets-a-b2b-site-cited-1g</link>
      <guid>https://dev.to/peter_jackman/we-ran-5051-ai-search-citation-polls-in-77-days-heres-what-actually-gets-a-b2b-site-cited-1g</guid>
      <description>&lt;p&gt;Most advice about getting cited by AI search engines is written by people who have never measured a citation. We have. Since 19 May 2026 we've been running an automated polling rig against ChatGPT, Gemini and DuckDuckGo — 5,051 polls over 77 days, against 68 real buyer prompts in our own niche — logging every time our domain does (or doesn't) appear. This post is the raw findings: which engines cite most readily, how often a citation survives the next poll, and how little the three engines agree with each other.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this covers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What we ran: 5,051 polls, 3 engines, 77 days&lt;/li&gt;
&lt;li&gt;Finding 1: the three engines barely agree with each other&lt;/li&gt;
&lt;li&gt;Finding 2: DuckDuckGo is the easiest surface, ChatGPT the hardest&lt;/li&gt;
&lt;li&gt;Finding 3: a citation is not a ranking — it can vanish next poll&lt;/li&gt;
&lt;li&gt;The three engines side by side&lt;/li&gt;
&lt;li&gt;Methodology, briefly&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;This is a technical summary. The full guide — with the data, tables and worked examples — is on our site: *&lt;/em&gt;&lt;a href="https://leadsnow.ai/we-ran-5051-ai-citation-polls-first-party-data-2026/" rel="noopener noreferrer"&gt;We Ran 5,051 AI-Search Citation Polls in 77 Days. Here's What Actually Gets a B2B Site Cited&lt;/a&gt;*&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://leadsnow.ai/" rel="noopener noreferrer"&gt;LeadsNow AI&lt;/a&gt; builds pay-per-result AI lead generation and answer-engine-optimisation systems in Australia.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>seo</category>
      <category>marketing</category>
      <category>startup</category>
    </item>
    <item>
      <title>DALL-E 3 API помечен deprecated — при миграции на GPT Image проверьте data retention каждого endpoint</title>
      <dc:creator>Promptra Team</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:46:57 +0000</pubDate>
      <link>https://dev.to/provod-ai/dall-e-3-api-pomiechien-deprecated-pri-mighratsii-na-gpt-image-proviertie-data-retention-kazhdogho-4gfo</link>
      <guid>https://dev.to/provod-ai/dall-e-3-api-pomiechien-deprecated-pri-mighratsii-na-gpt-image-proviertie-data-retention-kazhdogho-4gfo</guid>
      <description>&lt;p&gt;14 июля в справке OpenAI DALL-E 3 API остался доступен, но получил пометку deprecated с направлением к GPT Image API. Для команды, которая генерирует изображения в production, это не косметическая смена имени модели. Решение о миграции dall-e теперь включает риск: привычный вызов может быть совместим по задаче, но отличаться по контракту ответа и применимому режиму data retention.&lt;/p&gt;

&lt;p&gt;Практический вывод первого экрана прост: не переключайте production-трафик, пока не проверите конкретный текущий и целевой endpoint. Имя модели не подтверждает ни zero data retention, ни формат результата, ни поведение параметров размера.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deprecated не означает «перестало работать»
&lt;/h2&gt;

&lt;p&gt;Пометка deprecated не равна немедленной недоступности. DALL-E 3 API по-прежнему доступен. Поэтому сильная позиция против поспешной миграции звучит разумно: если текущая интеграция работает, а изменение несёт операционный и комплаенс-риск, можно не трогать её без подтверждённой необходимости.&lt;/p&gt;

&lt;p&gt;Но эта логика меняется, когда deprecated становится сигналом жизненного цикла. Откладывание проверки может сжать время на разбор нового endpoint, требований к хранению данных и изменения output contract, если миграция понадобится позже. Поэтому полезнее подготовить эти проверки заранее, пока их можно провести как плановую работу.&lt;/p&gt;

&lt;p&gt;Правильная цель не «срочно заменить DALL-E на GPT Image», а заранее доказать, что целевой вызов подходит для вашего сценария.&lt;/p&gt;

&lt;h2&gt;
  
  
  Почему модель не заменяет endpoint
&lt;/h2&gt;

&lt;p&gt;В документации по data controls режимы отличаются между endpoint. Это ключевое ограничение: нельзя вывести применимый retention из слов «GPT Image» или из того, что модель относится к одному провайдеру.&lt;/p&gt;

&lt;p&gt;Для каждой пары «текущий вызов → целевой вызов» нужны отдельные ответы:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;какой endpoint фактически вызывается;&lt;/li&gt;
&lt;li&gt;какой режим хранения данных применим к нему в вашей конфигурации;&lt;/li&gt;
&lt;li&gt;подходит ли этот режим требованиям к удалению и хранению данных;&lt;/li&gt;
&lt;li&gt;как возвращается результат;&lt;/li&gt;
&lt;li&gt;сохраняются ли нужные semantics параметров, включая размер изображения;&lt;/li&gt;
&lt;li&gt;можно ли безопасно вернуть трафик на прежний путь.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Именно здесь миграция моделей становится проверкой API-контракта. Качество картинки может оказаться приемлемым, но не компенсирует неверно выбранный режим data retention или изменение формата, которое ломает следующий шаг пайплайна.&lt;/p&gt;

&lt;h2&gt;
  
  
  Сначала зафиксируйте исходный контракт
&lt;/h2&gt;

&lt;p&gt;До теста GPT Image опишите работающий путь DALL-E 3 API как наблюдаемый контракт, а не как набор предположений. Зафиксируйте endpoint, входные параметры, допустимые значения размера, ожидаемый тип и структуру ответа, а также обработку результата в вашем коде.&lt;/p&gt;

&lt;p&gt;Текущие параметры клиентской библиотеки показывают, что semantics response и size для DALL-E и GPT Image различаются. Это не доказательство поломки конкретной интеграции, но достаточная причина не считать замену прозрачной.&lt;/p&gt;

&lt;p&gt;Полезный артефакт здесь короткий и проверяемый:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Проверка&lt;/th&gt;
&lt;th&gt;Текущий путь&lt;/th&gt;
&lt;th&gt;Целевой путь&lt;/th&gt;
&lt;th&gt;Условие перехода&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Endpoint&lt;/td&gt;
&lt;td&gt;Зафиксирован&lt;/td&gt;
&lt;td&gt;Зафиксирован&lt;/td&gt;
&lt;td&gt;Сравнение выполнено&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data retention&lt;/td&gt;
&lt;td&gt;Подтверждён для endpoint&lt;/td&gt;
&lt;td&gt;Подтверждён для endpoint&lt;/td&gt;
&lt;td&gt;Соответствует требованиям&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Output contract&lt;/td&gt;
&lt;td&gt;Описан в коде и тесте&lt;/td&gt;
&lt;td&gt;Проверен тестовой генерацией&lt;/td&gt;
&lt;td&gt;Потребитель результата не ломается&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size semantics&lt;/td&gt;
&lt;td&gt;Допустимые значения известны&lt;/td&gt;
&lt;td&gt;Проверены отдельно&lt;/td&gt;
&lt;td&gt;Результат обрабатывается корректно&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Rollback&lt;/td&gt;
&lt;td&gt;Работоспособен&lt;/td&gt;
&lt;td&gt;Не нужен для возврата&lt;/td&gt;
&lt;td&gt;Остаётся до прохождения матрицы&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Это не бюрократия вокруг нейросети. Матрица отделяет факт от надежды: каждый пункт либо подтверждён для конкретного endpoint, либо ещё нет.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9o20u9xd89lyoa08ns0y.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9o20u9xd89lyoa08ns0y.png" alt="Матрица проверки миграции с DALL-E 3 API на GPT Image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Порядок, который снижает риск
&lt;/h2&gt;

&lt;p&gt;Начните с тестовой генерации на целевом endpoint, не меняя production-маршрут. Сверьте жизненный цикл данных по применимой политике и конфигурации, затем проверьте output contract на том потребителе, который использует результат дальше.&lt;/p&gt;

&lt;p&gt;Если тест проходит по визуальному результату, но контракт ответа требует адаптации, это не провал модели. Это обычная работа миграции. Если retention для endpoint не соответствует вашим требованиям, это уже стоп-сигнал: улучшать промпт или подгонять формат ответа бессмысленно, пока не решён сам вопрос допустимости пути.&lt;/p&gt;

&lt;p&gt;После прохождения матрицы включайте переключение так, чтобы rollback оставался доступен. Убирать прежний путь стоит только после того, как проверены и данные, и выходной контракт, и возврат.&lt;/p&gt;

&lt;p&gt;Для команд, которым нужно держать такие сравнения в одном рабочем контуре, &lt;a href="https://provod.ai/?utm_source=vc.ru&amp;amp;utm_medium=referral&amp;amp;utm_campaign=dall-e-gpt-image-migration-data-retention-compatibility&amp;amp;utm_content=inline&amp;amp;utm_id=next100-workflow" rel="noopener noreferrer"&gt;provod.ai&lt;/a&gt; может быть местом для фиксации модельного выбора и наблюдаемого output contract. Подтверждение compliance всё равно остаётся за применимой политикой и конфигурацией конкретного провайдера.&lt;/p&gt;

&lt;h2&gt;
  
  
  Когда не стоит мигрировать прямо сейчас
&lt;/h2&gt;

&lt;p&gt;Не мигрируйте только потому, что увидели пометку deprecated. Отложить переключение рационально, если у вас нет подтверждённого целевого endpoint с подходящим режимом хранения данных, нет теста на фактического потребителя результата или отсутствует rollback.&lt;/p&gt;

&lt;p&gt;Но не откладывайте саму проверку. В production ценнее не ранний переход на GPT Image, а заранее подготовленное решение: можно ли переходить, что именно нужно изменить и при каком условии остаться на DALL-E 3 API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://provod.ai/?utm_source=vc.ru&amp;amp;utm_medium=referral&amp;amp;utm_campaign=dall-e-gpt-image-migration-data-retention-compatibility&amp;amp;utm_content=final&amp;amp;utm_id=next100-workflow" rel="noopener noreferrer"&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fgotr6lzvovof84cdnt8s.png" alt="Сначала проверить контракт миграции" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  provod.ai — централизуйте расходы на модели
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Один баланс и рабочее пространство дают компании общую точку контроля:&lt;/strong&gt; не нужно собирать счета по личным кабинетам и разбираться, какая команда потратила бюджет у какого поставщика.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;В одном каталоге — актуальные модели для текста и медиа:&lt;/strong&gt; GPT от OpenAI, Claude от Anthropic, Gemini от Google, Grok от xAI, DeepSeek, Qwen, GLM, Kimi и MiniMax; для изображений — Nano Banana 2 Pro и GPT Image; для видео — последние версии Seedance, Kling, Veo и Google Omni. Также доступны модели для reasoning, поиска, документов, эмбеддингов, музыки и аудио.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Основа расчёта прозрачна:&lt;/strong&gt; официальный тариф каждой модели передаётся 1:1, без собственной наценки provod.ai.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Соберите AI-расходы в одном месте:&lt;/strong&gt; &lt;a href="https://app.provod.ai/register" rel="noopener noreferrer"&gt;форма регистрации&lt;/a&gt; · &lt;a href="https://app.provod.ai/models" rel="noopener noreferrer"&gt;цены на модели&lt;/a&gt; · &lt;a href="https://provod.ai/legal/152-fz" rel="noopener noreferrer"&gt;защита данных по 152-ФЗ&lt;/a&gt; · &lt;a href="https://provod.ai/legal/requisites" rel="noopener noreferrer"&gt;реквизиты для договора&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Вы выберете плановую миграцию после подтверждения retention каждого endpoint или сохраните DALL-E 3 API до появления такого подтверждения?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>chatgpt</category>
      <category>openai</category>
      <category>llm</category>
    </item>
    <item>
      <title>How I Created an AI Song Generator with Next.js and FastAPI</title>
      <dc:creator>foosher</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:46:04 +0000</pubDate>
      <link>https://dev.to/foosher_5171b888677ddad37/how-i-created-an-ai-song-generator-with-nextjs-and-fastapi-3aj7</link>
      <guid>https://dev.to/foosher_5171b888677ddad37/how-i-created-an-ai-song-generator-with-nextjs-and-fastapi-3aj7</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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft06xfccstq9z4l533uw8.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft06xfccstq9z4l533uw8.jpg" alt=" " width="799" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Building an AI product often looks simple from the outside.&lt;/p&gt;

&lt;p&gt;A user enters a prompt, clicks a button, and waits for the result.&lt;/p&gt;

&lt;p&gt;But the actual product experience includes much more than sending a request to an AI service. The application needs to understand different types of input, manage long-running tasks, handle failures fairly, present results clearly, and give users enough confidence to try again.&lt;/p&gt;

&lt;p&gt;These are some of the challenges I encountered while building &lt;a href="https://songvora.com/" rel="noopener noreferrer"&gt;Songvora&lt;/a&gt;, an AI song generator that turns text prompts, lyrics, and personal stories into complete songs.&lt;/p&gt;

&lt;p&gt;This article focuses on the public product and engineering lessons behind the project. It intentionally leaves out provider-specific integrations, infrastructure credentials, internal APIs, and billing implementation details.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Why I Started Building Songvora
&lt;/h2&gt;

&lt;p&gt;Many people have ideas for songs but cannot easily turn them into finished music.&lt;/p&gt;

&lt;p&gt;Someone may have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lyrics stored in a notes app&lt;/li&gt;
&lt;li&gt;A story they want to turn into a personal gift&lt;/li&gt;
&lt;li&gt;An idea for background music&lt;/li&gt;
&lt;li&gt;A mood or genre in mind&lt;/li&gt;
&lt;li&gt;A birthday or anniversary message&lt;/li&gt;
&lt;li&gt;A melody they cannot record or produce&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Traditional music production requires time, equipment, musical knowledge, and experience with production software. Working with a musician is another option, but it may not be practical for someone who simply wants to hear an early version of an idea.&lt;/p&gt;

&lt;p&gt;I started building Songvora around a simple question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What if someone could describe a song in ordinary language and hear that idea as a complete track?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Songvora is not intended to replace musicians or professional music production. Its purpose is to make musical experimentation more accessible.&lt;/p&gt;

&lt;p&gt;Users can begin with a prompt, their own lyrics, or a personal story. The product then helps transform that creative direction into a generated song.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkcrpyzcrdmxhyaucwnk7.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fkcrpyzcrdmxhyaucwnk7.jpg" alt="Creating a song from a personal story in Songvora" width="799" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can explore the current version at &lt;a href="https://songvora.com/" rel="noopener noreferrer"&gt;songvora.com&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why I Chose Next.js and FastAPI
&lt;/h2&gt;

&lt;p&gt;Songvora uses Next.js for the frontend and FastAPI for the backend.&lt;/p&gt;

&lt;p&gt;The two technologies serve different parts of the product.&lt;/p&gt;

&lt;h3&gt;
  
  
  Next.js for the product experience
&lt;/h3&gt;

&lt;p&gt;The frontend needs to support both interactive application features and public content pages.&lt;/p&gt;

&lt;p&gt;Next.js provides a useful foundation for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Interactive song creation forms&lt;/li&gt;
&lt;li&gt;Account and song-management interfaces&lt;/li&gt;
&lt;li&gt;Server-rendered landing pages&lt;/li&gt;
&lt;li&gt;Metadata and canonical URLs&lt;/li&gt;
&lt;li&gt;Structured content for search engines&lt;/li&gt;
&lt;li&gt;Localized routes&lt;/li&gt;
&lt;li&gt;Responsive product pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The App Router also makes it possible to separate server-rendered content from client-side interactions.&lt;/p&gt;

&lt;p&gt;This matters for an AI tool. The generation interface needs client-side state, while public pages still need meaningful content before JavaScript interaction begins.&lt;/p&gt;

&lt;h3&gt;
  
  
  FastAPI for generation workflows
&lt;/h3&gt;

&lt;p&gt;The backend is responsible for application logic that should not live in the browser.&lt;/p&gt;

&lt;p&gt;At a high level, it handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validating generation requests&lt;/li&gt;
&lt;li&gt;Managing user and task state&lt;/li&gt;
&lt;li&gt;Starting music generation jobs&lt;/li&gt;
&lt;li&gt;Tracking task progress&lt;/li&gt;
&lt;li&gt;Handling successful and failed results&lt;/li&gt;
&lt;li&gt;Managing credit-related product rules&lt;/li&gt;
&lt;li&gt;Returning completed audio information to the frontend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Python is a practical choice for AI-related service integration, and FastAPI provides a clear structure for typed API endpoints and service logic.&lt;/p&gt;

&lt;p&gt;The public architecture can be summarized like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Next.js interface
        │
        ▼
FastAPI application
        │
        ▼
AI generation service
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The actual production system includes additional operational details, but keeping the public explanation at this level is enough to understand the main separation of responsibilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Designing Different Ways to Start a Song
&lt;/h2&gt;

&lt;p&gt;One of the earliest product lessons was that users do not all think about music in the same way.&lt;/p&gt;

&lt;p&gt;A musician may describe tempo, instruments, arrangement, and song structure.&lt;/p&gt;

&lt;p&gt;A content creator may only know that they need energetic background music for a video.&lt;/p&gt;

&lt;p&gt;Someone making a birthday gift may not know any music terminology at all. They may only know the recipient's name, a few shared memories, and the message they want the song to communicate.&lt;/p&gt;

&lt;p&gt;Because of this, Songvora supports several ways to begin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Starting with a music prompt
&lt;/h3&gt;

&lt;p&gt;Users can describe the intended sound using details such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Genre&lt;/li&gt;
&lt;li&gt;Mood&lt;/li&gt;
&lt;li&gt;Tempo&lt;/li&gt;
&lt;li&gt;Instruments&lt;/li&gt;
&lt;li&gt;Vocal direction&lt;/li&gt;
&lt;li&gt;Song topic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Warm acoustic pop about reconnecting with an old friend, intimate vocals, gentle guitar, and a hopeful final chorus.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Starting with AI-assisted lyrics
&lt;/h3&gt;

&lt;p&gt;Some users know the subject of the song but do not have lyrics yet.&lt;/p&gt;

&lt;p&gt;They can describe the idea and allow the application to help prepare the lyrical direction before generating the track.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ub9igmj7ihon5c3votw.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0ub9igmj7ihon5c3votw.jpg" alt="Creating a song with AI-assisted lyrics" width="799" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Starting with custom lyrics
&lt;/h3&gt;

&lt;p&gt;Other users want control over every word.&lt;/p&gt;

&lt;p&gt;They can provide their own verses, choruses, bridges, and production direction.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyykz36itx0crqajosb5k.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fyykz36itx0crqajosb5k.jpg" alt="Turning custom lyrics into a song" width="799" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Starting with a personal story
&lt;/h3&gt;

&lt;p&gt;A story-based workflow is useful for people who do not naturally write music prompts.&lt;/p&gt;

&lt;p&gt;Instead of asking for technical production language, the interface can ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who is the song for?&lt;/li&gt;
&lt;li&gt;What is your relationship?&lt;/li&gt;
&lt;li&gt;Which memories should be included?&lt;/li&gt;
&lt;li&gt;What should the person feel?&lt;/li&gt;
&lt;li&gt;What message should the chorus communicate?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The frontend experiences are different, but they ultimately need to produce a clear and consistent creative request for the backend.&lt;/p&gt;

&lt;p&gt;This separation has been useful: the interface can speak the user's language without requiring the generation system to become a completely different product for every input mode.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Handling Long-Running AI Generation
&lt;/h2&gt;

&lt;p&gt;Music generation is not a typical request-and-response interaction.&lt;/p&gt;

&lt;p&gt;A normal API request may return useful data almost immediately. A music generation task can take significantly longer and may pass through several stages before audio becomes available.&lt;/p&gt;

&lt;p&gt;Keeping a browser request open for the entire process would create a fragile experience.&lt;/p&gt;

&lt;p&gt;Instead, Songvora treats generation as a task:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Create request
      │
      ▼
Validate input
      │
      ▼
Start generation task
      │
      ▼
Track progress
      │
      ├── Completed → Present the song
      └── Failed → Restore the user's credits
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important principle is that the backend owns the task state.&lt;/p&gt;

&lt;p&gt;The frontend can display progress and request updates, but it should not be responsible for keeping the generation alive.&lt;/p&gt;

&lt;p&gt;This provides several benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The user can leave the page while generation continues&lt;/li&gt;
&lt;li&gt;Refreshing the browser does not create a new task&lt;/li&gt;
&lt;li&gt;Completed songs can appear in the user's library&lt;/li&gt;
&lt;li&gt;Failed tasks can be handled consistently&lt;/li&gt;
&lt;li&gt;The frontend does not need a permanent connection to the generation service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also changes how the interface should communicate progress.&lt;/p&gt;

&lt;p&gt;A single loading spinner is not enough. Users need to understand that a task has been accepted, is still being processed, or has failed.&lt;/p&gt;

&lt;p&gt;The exact internal task states are implementation details, but the user-facing experience should remain simple and predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Designing for Trust When Generation Fails
&lt;/h2&gt;

&lt;p&gt;Generative systems are not perfectly predictable.&lt;/p&gt;

&lt;p&gt;A task may fail because of temporary service availability, invalid output, processing errors, or other conditions outside the user's control.&lt;/p&gt;

&lt;p&gt;That creates an important product question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Should users lose credits when they do not receive a completed result?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For Songvora, the product rule is straightforward:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A failed generation should not consume the user's credits.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The implementation details remain internal, but several engineering principles are important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failure handling must happen on the backend&lt;/li&gt;
&lt;li&gt;Credit restoration must be safe to repeat&lt;/li&gt;
&lt;li&gt;Repeated status updates must not produce repeated refunds&lt;/li&gt;
&lt;li&gt;The application must distinguish a failed result from an unfinished task&lt;/li&gt;
&lt;li&gt;The user interface should explain what happened clearly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not only an accounting concern. It affects whether users trust the application enough to try again.&lt;/p&gt;

&lt;p&gt;The free experience follows a similar idea. Users should be able to evaluate the product before entering payment information.&lt;/p&gt;

&lt;p&gt;AI music also requires iteration. The first result may have the wrong energy, vocal direction, or arrangement even when the prompt is reasonable.&lt;/p&gt;

&lt;p&gt;Giving users more than one attempt allows them to change the prompt and understand how their instructions affect the generated track.&lt;/p&gt;

&lt;p&gt;The larger lesson applies to many generative AI products:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If output is uncertain, the product must be predictable about everything surrounding the output.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Users may accept that an AI result is imperfect. They are less likely to accept unclear charges, missing task states, or credits disappearing after a technical failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Making an AI Music Product Easier to Evaluate
&lt;/h2&gt;

&lt;p&gt;An AI music website can describe features, genres, prompts, and workflows, but users eventually need to hear the output.&lt;/p&gt;

&lt;p&gt;For a music product, real examples are more useful than another section of marketing copy.&lt;/p&gt;

&lt;p&gt;I have started adding Songvora-generated audio examples together with the prompts used to create them.&lt;/p&gt;

&lt;p&gt;One example is a personalized birthday song created from a story about a best friend named Maya.&lt;/p&gt;

&lt;p&gt;The prompt included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Late-night road trips&lt;/li&gt;
&lt;li&gt;Her fearless laugh&lt;/li&gt;
&lt;li&gt;The way she makes every room brighter&lt;/li&gt;
&lt;li&gt;A chorus wishing her an unforgettable year&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can listen to the generated track and view the exact prompt in the &lt;a href="https://songvora.com/blog/how-to-make-a-personalized-ai-birthday-song" rel="noopener noreferrer"&gt;personalized AI birthday song case study&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Songvora also has a dedicated &lt;a href="https://songvora.com/ai-birthday-song-generator" rel="noopener noreferrer"&gt;AI Birthday Song Generator&lt;/a&gt; for users who want to create a song from names, memories, relationships, and a birthday message.&lt;/p&gt;

&lt;p&gt;Publishing real examples serves several purposes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Users can evaluate the output before registering&lt;/li&gt;
&lt;li&gt;Prompts become easier to understand when paired with results&lt;/li&gt;
&lt;li&gt;Limitations become more visible&lt;/li&gt;
&lt;li&gt;Future prompt revisions can be documented honestly&lt;/li&gt;
&lt;li&gt;Product feedback becomes more specific&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of asking whether someone "likes the idea," I can ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did the song reflect the prompt?&lt;/li&gt;
&lt;li&gt;Did the personal details feel natural?&lt;/li&gt;
&lt;li&gt;Was the result worth sharing?&lt;/li&gt;
&lt;li&gt;What would you change in the next generation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These questions produce more useful feedback than a general product survey.&lt;/p&gt;

&lt;p&gt;Public content is also important for discovery.&lt;/p&gt;

&lt;p&gt;An interactive generation form alone does not explain enough to users or search engines. Tool pages need clear server-rendered descriptions, examples, FAQs, and internal links.&lt;/p&gt;

&lt;p&gt;Songvora therefore separates different search intents across pages such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://songvora.com/ai-music-generator" rel="noopener noreferrer"&gt;AI Music Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://songvora.com/ai-instrumental-generator" rel="noopener noreferrer"&gt;AI Instrumental Generator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://songvora.com/text-to-song" rel="noopener noreferrer"&gt;Text to Song&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://songvora.com/lyrics-to-song" rel="noopener noreferrer"&gt;Lyrics to Song&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://songvora.com/ai-birthday-song-generator" rel="noopener noreferrer"&gt;AI Birthday Song Generator&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The interactive tool helps users create. The supporting content helps them understand when and how to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. What I Learned and What Comes Next
&lt;/h2&gt;

&lt;p&gt;Building Songvora has reinforced that the difficult part of an AI application is often not the first API request.&lt;/p&gt;

&lt;p&gt;The surrounding product decisions require just as much attention:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How users describe what they want&lt;/li&gt;
&lt;li&gt;How long-running tasks are represented&lt;/li&gt;
&lt;li&gt;What happens when generation fails&lt;/li&gt;
&lt;li&gt;How credits are handled fairly&lt;/li&gt;
&lt;li&gt;How completed results are stored and presented&lt;/li&gt;
&lt;li&gt;How users evaluate quality before paying&lt;/li&gt;
&lt;li&gt;How public pages explain the product&lt;/li&gt;
&lt;li&gt;How localized pages stay consistent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A few lessons stand out.&lt;/p&gt;

&lt;h3&gt;
  
  
  Meet users at their level of musical knowledge
&lt;/h3&gt;

&lt;p&gt;Not every user knows how to write a detailed music prompt. Asking for memories, relationships, and emotions can sometimes produce better creative direction than asking for technical music terminology.&lt;/p&gt;

&lt;h3&gt;
  
  
  Treat failure handling as part of the product
&lt;/h3&gt;

&lt;p&gt;A failed generation is not only a backend exception. It is a moment that determines whether the user trusts the application.&lt;/p&gt;

&lt;h3&gt;
  
  
  Show real results
&lt;/h3&gt;

&lt;p&gt;AI products are difficult to evaluate through feature lists. A real prompt paired with a real output is more informative than a claim about quality.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep product facts consistent
&lt;/h3&gt;

&lt;p&gt;Credits, limits, and storage rules may appear across many pages and languages. Shared configuration reduces contradictions and makes future changes safer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Localization requires more than translation
&lt;/h3&gt;

&lt;p&gt;A translated page is not automatically useful. Examples, prompts, FAQs, and search intent should make sense in the target language and region.&lt;/p&gt;

&lt;p&gt;Songvora is still at an early stage. My current priorities are improving the first-time creation experience, publishing more real audio examples, strengthening localized content, and learning what users need before adding too many new features.&lt;/p&gt;

&lt;p&gt;You can explore the current product here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://songvora.com/" rel="noopener noreferrer"&gt;Try Songvora&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would also be interested in hearing from other developers working on long-running or generative AI workflows:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What makes you trust an AI product enough to try it a second time after the first result is not what you expected?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>music</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building an AI Tool That Converts Text into Realistic Handwriting - Handify ai</title>
      <dc:creator>Harsh Kumar</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:45:37 +0000</pubDate>
      <link>https://dev.to/harsh_kumar_0904/building-an-ai-tool-that-converts-text-into-realistic-handwriting-handify-ai-4ch5</link>
      <guid>https://dev.to/harsh_kumar_0904/building-an-ai-tool-that-converts-text-into-realistic-handwriting-handify-ai-4ch5</guid>
      <description>&lt;p&gt;&lt;a href="http://handify.in/" rel="noopener noreferrer"&gt;Handify ai&lt;/a&gt;&lt;br&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxp20mg7tiilf02mlbn8r.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxp20mg7tiilf02mlbn8r.png" alt="Google search Console for my new project, started getting organic search" width="606" height="812"&gt;&lt;/a&gt;Like many side projects, this one started because I had a simple problem to solve.&lt;/p&gt;

&lt;p&gt;I wanted a way to convert digital text into realistic handwritten notes without spending hours writing everything manually. Most existing tools I tried either looked too robotic or offered very little customization.&lt;/p&gt;

&lt;p&gt;So I decided to build my own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Goal&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of just changing a font, I wanted the output to actually feel handwritten.&lt;/p&gt;

&lt;p&gt;Some of the features I focused on were:&lt;/p&gt;

&lt;p&gt;📝 Convert typed text into realistic handwriting&lt;br&gt;
📄 Upload your own notebook or paper template&lt;br&gt;
✍️ Multiple handwriting styles&lt;br&gt;
🔀 Mix two handwriting fonts for a more natural appearance&lt;br&gt;
🎲 Character variation so repeated letters don't always look identical&lt;br&gt;
📥 Export high-quality PDFs ready for printing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Challenges&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Making handwriting look "real" is much harder than simply rendering a handwriting font.&lt;/p&gt;

&lt;p&gt;Some of the biggest challenges were:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preventing repeated letters from looking identical.&lt;/li&gt;
&lt;li&gt;Keeping line spacing and word wrapping natural.&lt;/li&gt;
&lt;li&gt;Supporting different paper templates.&lt;/li&gt;
&lt;li&gt;Generating high-resolution PDFs without losing quality.&lt;/li&gt;
&lt;li&gt;Making the experience fast enough to generate pages within seconds.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Small details make a surprisingly big difference when people compare AI-generated handwriting with actual handwriting.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Tech Stack&lt;br&gt;
*&lt;/em&gt;&lt;br&gt;
The project is built using:&lt;/p&gt;

&lt;p&gt;React&lt;br&gt;
TypeScript&lt;br&gt;
Firebase&lt;br&gt;
Vite&lt;br&gt;
Capacitor (Android App)&lt;br&gt;
Google Analytics&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Learned&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building the product was only half the work.&lt;/p&gt;

&lt;p&gt;The harder challenge has been:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SEO&lt;/li&gt;
&lt;li&gt;Google Search indexing&lt;/li&gt;
&lt;li&gt;Play Store optimization&lt;/li&gt;
&lt;li&gt;Improving conversion rates&lt;/li&gt;
&lt;li&gt;Understanding user behavior through analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A great product doesn't automatically get users—you also need to make it discoverable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Progress&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project is still growing, but it's already receiving organic traffic from Google and users have started using it for:&lt;/p&gt;

&lt;p&gt;Study notes&lt;br&gt;
College assignments&lt;br&gt;
Personal journals&lt;br&gt;
Printable handwritten documents&lt;/p&gt;

&lt;p&gt;Seeing people use something you built is incredibly motivating.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'd Love Your Feedback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you're interested in AI productivity tools or document generation, I'd appreciate your thoughts on the project.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://handify.in" rel="noopener noreferrer"&gt;https://handify.in&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm always looking for suggestions and feature ideas from developers and users alike.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Unlocking the Power of Qwen3.8-Max: A New Era for Coding and Coworking</title>
      <dc:creator>Naveen Malothu</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:45:25 +0000</pubDate>
      <link>https://dev.to/naveenmalothu/unlocking-the-power-of-qwen38-max-a-new-era-for-coding-and-coworking-3gj6</link>
      <guid>https://dev.to/naveenmalothu/unlocking-the-power-of-qwen38-max-a-new-era-for-coding-and-coworking-3gj6</guid>
      <description>&lt;h1&gt;
  
  
  Introduction to Qwen3.8-Max
&lt;/h1&gt;

&lt;p&gt;Qwen3.8-Max is a cutting-edge platform that has been released, aiming to redefine the way developers code and collaborate. This innovative platform provides a suite of tools and features that enable seamless integration of coding, collaboration, and project management. As an AI Infrastructure Engineer and DevOps Architect, I am excited to dive into the details of Qwen3.8-Max and explore its potential to revolutionize the way we work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What was released / announced
&lt;/h2&gt;

&lt;p&gt;The Qwen3.8-Max platform was announced, featuring a range of exciting updates and improvements. This new release includes enhanced coding tools, advanced collaboration features, and streamlined project management capabilities. With Qwen3.8-Max, developers can now work more efficiently and effectively, leveraging the power of AI and machine learning to drive their projects forward.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it matters
&lt;/h2&gt;

&lt;p&gt;Qwen3.8-Max matters because it has the potential to significantly improve the way developers work and collaborate. By providing a comprehensive platform that integrates coding, collaboration, and project management, Qwen3.8-Max can help reduce the complexity and overhead associated with traditional development workflows. This, in turn, can lead to increased productivity, improved code quality, and faster time-to-market for software applications. As someone who has worked on numerous AI and cloud-based projects, I believe that Qwen3.8-Max can be a game-changer for developers and engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use it
&lt;/h2&gt;

&lt;p&gt;To get started with Qwen3.8-Max, developers can sign up for an account on the Qwen website and explore the platform's features and tools. Here's an example of how to use the Qwen API to create a new project:&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="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="c1"&gt;# Set API endpoint and credentials
&lt;/span&gt;&lt;span class="n"&gt;endpoint&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;https://api.qwen.ai/v1/projects&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;# Set project details
&lt;/span&gt;&lt;span class="n"&gt;project_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;My New Project&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;
&lt;span class="n"&gt;project_description&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;This is a new project created using the Qwen API&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;# Create a new project
&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Authorization&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Bearer &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;project_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;project_description&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="c1"&gt;# Print the response
&lt;/span&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This code snippet demonstrates how to use the Qwen API to create a new project, showcasing the platform's simplicity and ease of use.&lt;/p&gt;

&lt;h2&gt;
  
  
  My take
&lt;/h2&gt;

&lt;p&gt;As someone building AI infrastructure and cloud systems, I am impressed by the potential of Qwen3.8-Max to transform the way developers work and collaborate. The platform's focus on integration, simplicity, and productivity aligns with my own goals and values as a developer and engineer. I believe that Qwen3.8-Max can be a valuable tool for any development team, and I look forward to exploring its capabilities further. In real-world use cases, Qwen3.8-Max can be used to streamline development workflows, improve code quality, and enhance collaboration among team members. For example, a development team working on a complex AI project can use Qwen3.8-Max to manage their codebase, collaborate on tasks, and track progress in a single, unified platform.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Stop Waiting for the Full AI Response: Stream Tokens in Python</title>
      <dc:creator>chen qin</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:38:11 +0000</pubDate>
      <link>https://dev.to/chen_qin/stop-waiting-for-the-full-ai-response-stream-tokens-in-python-110o</link>
      <guid>https://dev.to/chen_qin/stop-waiting-for-the-full-ai-response-stream-tokens-in-python-110o</guid>
      <description>&lt;p&gt;Most AI applications wait for the model to generate the complete answer before showing anything to the user.&lt;/p&gt;

&lt;p&gt;For short answers, that may be acceptable. For longer responses, it can make the application feel slow—even when the model is already generating tokens.&lt;/p&gt;

&lt;p&gt;Streaming solves this by displaying each part of the response as soon as it arrives.&lt;/p&gt;

&lt;h2&gt;
  
  
  The non-streaming version
&lt;/h2&gt;

&lt;p&gt;A standard OpenAI-compatible request may look like this:&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="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_BASE_URL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_MODEL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain API gateways in three sentences.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works, but nothing is printed until the complete response has arrived.&lt;/p&gt;

&lt;h2&gt;
  
  
  Stream the response
&lt;/h2&gt;

&lt;p&gt;Enable streaming by adding &lt;code&gt;stream=True&lt;/code&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="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_MODEL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain API gateways in three sentences.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The request now returns a sequence of chunks instead of one completed response.&lt;/p&gt;

&lt;p&gt;Loop through those chunks and print the available content:&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;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The user can now see the answer while it is being generated.&lt;/p&gt;

&lt;h2&gt;
  
  
  Complete example
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_BASE_URL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;stream&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;AI_MODEL&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain API gateways in three sentences.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;stream&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;chunk&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;

    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;""&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;flush&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Keeping the API key, base URL, and model name in environment variables also makes it easier to change providers without rewriting the application logic.&lt;/p&gt;

&lt;h2&gt;
  
  
  When streaming is useful
&lt;/h2&gt;

&lt;p&gt;Streaming is especially helpful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI chat interfaces&lt;/li&gt;
&lt;li&gt;Coding assistants&lt;/li&gt;
&lt;li&gt;Long-form generation&lt;/li&gt;
&lt;li&gt;Command-line tools&lt;/li&gt;
&lt;li&gt;Applications where perceived latency matters&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember that model capabilities and streaming formats can vary between providers. Verify support for your selected model and handle empty chunks, connection failures, and interrupted streams before using this pattern in production.&lt;/p&gt;

&lt;p&gt;I tested this pattern with an OpenAI-compatible endpoint through &lt;a href="https://apihubrelay.com/" rel="noopener noreferrer"&gt;APIHubRelay&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;What should the next example cover: streaming in Node.js, error handling, or automatic retries?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>python</category>
      <category>streaming</category>
    </item>
    <item>
      <title>LobeChat: The 60K-Star Open-Source ChatGPT Alternative Nobody Talks About (And Why It Matters)</title>
      <dc:creator>XiaoMoDern</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:37:59 +0000</pubDate>
      <link>https://dev.to/xiaomodern/lobechat-the-60k-star-open-source-chatgpt-alternative-nobody-talks-about-and-why-it-matters-40nl</link>
      <guid>https://dev.to/xiaomodern/lobechat-the-60k-star-open-source-chatgpt-alternative-nobody-talks-about-and-why-it-matters-40nl</guid>
      <description>&lt;p&gt;I found it by accident. A Chinese developer friend mentioned "this chat tool everyone uses in China," and I expected another ChatGPT wrapper. What I found instead was a project with 60,000 GitHub stars that I'd never seen mentioned on Dev.to, Hacker News, or Reddit. Not once.&lt;/p&gt;

&lt;p&gt;That project is LobeChat, and after deploying it and comparing it head-to-head with ChatGPT, LibreChat, and a few others, I think it deserves a real review in English.&lt;/p&gt;

&lt;p&gt;What Is LobeChat?&lt;br&gt;
LobeChat is an open-source chat interface for large language models, built by the LobeHub team in China. Think of it as your own private ChatGPT UI—except you control everything: which models to use, where your data lives, and how the interface behaves.&lt;/p&gt;

&lt;p&gt;Under the hood: Next.js 14 + Ant Design, streamed through Server-Sent Events, packaged into a single Docker container.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Stars&lt;/td&gt;
&lt;td&gt;~60,000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM Providers&lt;/td&gt;
&lt;td&gt;20+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;UI Languages&lt;/td&gt;
&lt;td&gt;15+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugins&lt;/td&gt;
&lt;td&gt;50+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Docker / Vercel / Zeabur / SealOS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Core Pitch: Why You'd Want This&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Multi-Provider Support (Not Just OpenAI)
This is the killer feature. LobeChat doesn't tie you to one model. You can configure:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;OpenAI (GPT-4, GPT-4o)&lt;br&gt;
Anthropic (Claude 3.5 Sonnet, Claude Fable)&lt;br&gt;
Google Gemini (Gemini 1.5 Pro)&lt;br&gt;
DeepSeek (R1, V3)&lt;br&gt;
Ollama (Llama, Mistral, Qwen — local models on your own hardware)&lt;br&gt;
Azure, Bedrock, Groq, Perplexity, and 10+ more&lt;br&gt;
And here's the kicker: you can switch models mid-conversation. Compare GPT-4 and Claude on the same prompt in seconds:&lt;/p&gt;

&lt;p&gt;Click provider icon → Select different model → Retry query&lt;br&gt;
No restart. No page reload. Each conversation remembers its provider.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Self-Hosted. Your Data, Your Rules.
docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxx \
-e ACCESS_CODE=your-password \
--name lobe-chat \
lobehub/lobe-chat:latest
That's it. Ten minutes from zero to a fully functional ChatGPT alternative running on your infrastructure. If your company has data residency requirements, this is a checkbox ChatGPT can't tick.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For teams, there's a Docker Compose setup with PostgreSQL for persistent conversation history and multi-user access control.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Plugin System With Real Capabilities
LobeChat uses a manifest-based plugin architecture. Plugins declare their capabilities in a manifest.json and run in sandboxed iframes. The marketplace has ~50 plugins today, covering:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Web search (Google, Bing, SearXNG)&lt;br&gt;
Code interpreter (execute Python, JS, SQL)&lt;br&gt;
Image generation (DALL-E, Stable Diffusion)&lt;br&gt;
Weather, news, calendar integration&lt;br&gt;
MCP (Model Context Protocol) support — one-click install from the MCP marketplace&lt;br&gt;
Writing custom plugins is straightforward: define the manifest, implement your API calls, and the chat UI renders it as an interactive tool. If you've worked with OpenAI function calling, the mental model transfers directly.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;PWA: Install It Like a Native App&lt;br&gt;
LobeChat ships as a Progressive Web App. On mobile, tap "Add to Home Screen" and it behaves like a native chat app—offline support, push notifications, full keyboard shortcuts. The desktop PWA experience is nearly indistinguishable from the ChatGPT desktop app, minus the electron bloat.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Actually Good Design&lt;br&gt;
Open-source tools often look like open-source tools. LobeChat doesn't. The UI is polished, with custom themes (Dark mode is excellent), responsive layouts, and a chat experience that consistently matches or exceeds ChatGPT's own interface.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Built on Ant Design, it inherits a mature design system with consistent component behavior and accessibility. The team clearly has strong design sensibilities—unsurprising, given that the same group maintains Lobe UI, a popular React component library.&lt;/p&gt;

&lt;p&gt;Comparison: LobeChat vs. The Rest&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;LobeChat&lt;/th&gt;
&lt;th&gt;ChatGPT Web&lt;/th&gt;
&lt;th&gt;LibreChat&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;LLM Providers&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20+&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenAI only&lt;/td&gt;
&lt;td&gt;10+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plugins&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;MCP + manifest, 50+&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1000+ GPTs&lt;/td&gt;
&lt;td&gt;Basic tools&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PWA Support&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Full&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Partial&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-Language&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;15+&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-Hosted&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Built-in RAG&lt;/td&gt;
&lt;td&gt;Via plugin&lt;/td&gt;
&lt;td&gt;In GPTs&lt;/td&gt;
&lt;td&gt;Yes, built-in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile Experience&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;PWA, native-like&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Responsive&lt;/td&gt;
&lt;td&gt;Responsive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Theme Customization&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Full&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Minimal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open Source&lt;/td&gt;
&lt;td&gt;Yes (Apache 2.0)&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The honest tradeoff: LibreChat has built-in RAG (document upload with vector search). LobeChat handles knowledge base functionality through plugins instead. If uploading PDFs and querying them is your primary use case, LibreChat might be the better fit today. For everything else—UI quality, provider flexibility, plugin ecosystem, mobile experience—LobeChat leads.&lt;/p&gt;

&lt;p&gt;Why Haven't You Heard of It?&lt;br&gt;
This is the most interesting part. LobeChat has 60,000 GitHub stars, an active community, and a polished product. Yet searching for "LobeChat review" in English returns almost nothing.&lt;/p&gt;

&lt;p&gt;The reason is simple: language barrier and community separation.&lt;/p&gt;

&lt;p&gt;LobeChat's documentation, community, and contributors are predominantly Chinese-speaking. The GitHub README exists in both English and Chinese, but discussions happen on Chinese forums. The English-language AI community simply hasn't discovered it yet.&lt;/p&gt;

&lt;p&gt;This pattern repeats. Dify, another Chinese open-source project (LLM application builder), followed the same trajectory—explosive growth in China, near-invisible in English-speaking circles, then a slow burn of international adoption.&lt;/p&gt;

&lt;p&gt;For developers willing to cross the language barrier, this is an information arbitrage opportunity: you get a tool that's battle-tested by a massive user base, while most English-speaking developers are still evaluating half-baked alternatives.&lt;/p&gt;

&lt;p&gt;Limitations: Where LobeChat Falls Short&lt;br&gt;
Honesty time.&lt;/p&gt;

&lt;p&gt;No built-in RAG. You can't upload a PDF and ask questions about it without a plugin. The roadmap mentions native RAG, but today it requires extra setup.&lt;/p&gt;

&lt;p&gt;Young plugin ecosystem. ~50 community plugins vs. ChatGPT's thousands. Building custom plugins requires understanding the manifest schema, though it's well-documented.&lt;/p&gt;

&lt;p&gt;Rate limiting for free API tiers. If you're using a free-tier API key (OpenAI trial credits, etc.), LobeChat itself adds no rate limiting—but your provider will.&lt;/p&gt;

&lt;p&gt;Chinese-leaning defaults. Fresh install defaults to some Chinese-language settings. One-minute fix in Settings → Language, but worth noting.&lt;/p&gt;

&lt;p&gt;Who Should Use LobeChat?&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Use Case&lt;/th&gt;
&lt;th&gt;Recommendation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Individual developer tired of $20/month ChatGPT&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Yes.&lt;/strong&gt; Pay only for API usage.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Small team needing shared AI access&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Yes.&lt;/strong&gt; Docker Compose + multi-user mode.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company with data residency requirements&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Yes.&lt;/strong&gt; Self-hosted. Data stays on your servers.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;User who frequently switches between Claude, GPT, Gemini&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Yes.&lt;/strong&gt; Provider switching is the core UX.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Someone who primarily does document Q&amp;amp;A with RAG&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Maybe.&lt;/strong&gt; Use LibreChat if RAG is your main workflow.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Non-technical user who wants zero setup&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;No.&lt;/strong&gt; Stick with ChatGPT.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Bottom Line&lt;br&gt;
LobeChat is not "ChatGPT but Chinese." It's "what ChatGPT could be if it were open-source, provider-agnostic, and designed for people who control their own infrastructure."&lt;/p&gt;

&lt;p&gt;The 60,000-star GitHub count isn't hype. It reflects a real product solving real problems for a large user base. The only reason it hasn't crossed into the English-speaking dev world is visibility, not quality.&lt;/p&gt;

&lt;p&gt;If you've been looking for a self-hosted AI chat interface that doesn't feel like a downgrade from ChatGPT's UI, deploy LobeChat tonight. It costs nothing but a Docker container and an API key you probably already have.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>chatgpt</category>
      <category>china</category>
    </item>
    <item>
      <title>Your AI Agent Shouldn't Live on Someone Else's Server</title>
      <dc:creator>李成斐</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:37:25 +0000</pubDate>
      <link>https://dev.to/_df5259e5cebd3a923371e/your-ai-agent-shouldnt-live-on-someone-elses-server-6p4</link>
      <guid>https://dev.to/_df5259e5cebd3a923371e/your-ai-agent-shouldnt-live-on-someone-elses-server-6p4</guid>
      <description>&lt;h2&gt;
  
  
  The Agent Explosion Has a Hidden Cost
&lt;/h2&gt;

&lt;p&gt;HN is asking "What should the GUI for AI agents look like?" Product Hunt is flooded with agent tools—Termexo, Lumichats, Port22, Mu. Everyone's building agents. Almost no one is asking the harder question: &lt;strong&gt;where does your data go when the agent does its work?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The uncomfortable answer for most AI agents in 2026: &lt;strong&gt;straight to someone else's server.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every email you let it read. Every document you ask it to summarize. Every financial decision you delegate. Your calendar, your contacts, your browsing history, your codebase—all shipped to a cloud API, processed on GPUs you don't own, logged in systems you can't audit.&lt;/p&gt;

&lt;p&gt;This isn't a bug. It's the default architecture.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Cloud Agent Paradox
&lt;/h2&gt;

&lt;p&gt;An autonomous agent is supposed to act &lt;em&gt;on your behalf&lt;/em&gt;, with &lt;em&gt;your interests&lt;/em&gt; as the only optimization target. But a cloud-based agent has a split loyalty:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It serves you&lt;/strong&gt;—the user who gave it access to deeply personal data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It depends on them&lt;/strong&gt;—the API provider who owns the model, the compute, and the logs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When push comes to shove, who does it answer to?&lt;/p&gt;

&lt;p&gt;We've seen this movie before. Every "free" consumer AI product eventually faces the same tension: the business model requires data extraction, but genuine autonomy requires data sovereignty. Cloud agents haven't resolved this—they've just buried it under a slick UX.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Alternative Is Already Here
&lt;/h2&gt;

&lt;p&gt;Atoma takes a different bet: &lt;strong&gt;an autonomous agent that runs entirely on your machine.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No API calls for core reasoning. No telemetry. No "trust us" privacy policies. The LLM runs locally. The memory store is encrypted on your disk. Tool execution happens in sandboxed environments on your OS. When the agent reads your email, the email never leaves your device. When it writes code, your codebase stays where it is.&lt;/p&gt;

&lt;p&gt;Here's the architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────┐
│              YOUR MACHINE                │
│  ┌──────────┐  ┌──────────┐  ┌────────┐ │
│  │ Local LLM│  │ Encrypted│  │Sandbox │ │
│  │ (on-dev) │  │  Memory  │  │ Tools  │ │
│  └────┬─────┘  └────┬─────┘  └───┬────┘ │
│       │             │            │       │
│       └──────┬──────┘      ┌─────┘       │
│              │             │             │
│         ┌────▼─────────────▼──┐          │
│         │   Agent Orchestrator │          │
│         └─────────────────────┘          │
│                                           │
│   Zero raw data leaves this boundary     │
└───────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local LLM&lt;/strong&gt;: Quantized models optimized for agentic tool-use, running in a secure runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Encrypted Memory&lt;/strong&gt;: Vector store with keys derived from your biometric/passphrase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sandboxed Tools&lt;/strong&gt;: Each capability (email, filesystem, browser) isolated from the core agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No Phone Home&lt;/strong&gt;: External API calls only when explicitly configured by you, and transparently logged&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Why This Matters More Than a GUI
&lt;/h2&gt;

&lt;p&gt;The HN thread about "what should the GUI for AI agents look like" has 135 upvotes and 79 comments. It's a good discussion. But it's asking the &lt;em&gt;second&lt;/em&gt; question before answering the first.&lt;/p&gt;

&lt;p&gt;The first question is: &lt;strong&gt;do you trust this agent enough to give it access to your life?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A beautiful GUI for an agent that ships your data to a cloud provider isn't progress. It's a prettier surveillance apparatus. The interface matters, but the &lt;em&gt;boundary&lt;/em&gt; matters more.&lt;/p&gt;

&lt;p&gt;Atoma doesn't have a GUI. It runs in your terminal. It's not flashy. But when it reads your email, drafts your replies, manages your files, or executes financial decisions—you know exactly where your data is. On your disk. Under your control.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Privacy-First Agent Checklist
&lt;/h2&gt;

&lt;p&gt;If you're building or choosing an AI agent, here are the questions you should ask before caring about the UI:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Where does model inference happen?&lt;/strong&gt; If the answer is "our cloud," assume everything you share is logged.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Where is memory stored?&lt;/strong&gt; Vector embeddings of your conversations can reconstruct sensitive context. Encrypted and local, or sitting in a cloud database?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What telemetry is sent?&lt;/strong&gt; Even "anonymous" usage data leaks behavioral patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can the agent work offline?&lt;/strong&gt; If internet is required for basic function, your data is crossing a network boundary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Who holds the encryption keys?&lt;/strong&gt; If the provider can decrypt your agent's state, they can read it.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These aren't hypothetical concerns. Every major AI platform has had incidents where user data was exposed, misused for training, or accessed by employees. A local-first architecture makes these categories of risk &lt;em&gt;structurally impossible&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hard Part (And Why It's Worth It)
&lt;/h2&gt;

&lt;p&gt;Running an agent locally is harder to build. You can't throw unlimited compute at every problem. You have to optimize models aggressively. Memory management is a real constraint. Cross-platform compatibility is painful.&lt;/p&gt;

&lt;p&gt;But the result is worth it: &lt;strong&gt;an agent whose loyalty isn't divided.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An agent that can read your passport scan, your tax returns, your private messages, your business strategy docs—and process all of it without a single byte leaving your machine. An agent that becomes &lt;em&gt;more&lt;/em&gt; useful as it learns more about you, precisely because you're not terrified of what it might leak.&lt;/p&gt;

&lt;p&gt;That's not a feature. It's the foundation.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;Atoma is open source. The local LLM backend is swappable—bring your own model if you prefer. The tool system is extensible. We're not asking you to trust us. We're asking you to run it yourself and verify.&lt;/p&gt;

&lt;p&gt;The agent revolution shouldn't come with a privacy compromise. Your agent works for you. Its architecture should reflect that.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Atoma is an autonomous AI agent that runs locally on your machine. No cloud. No telemetry. No compromise. [Check it out on GitHub.]&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>privacy</category>
      <category>agents</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Financial Controls Management: Strengthening Assurance Over Financial Reporting</title>
      <dc:creator>itechgrc</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:36:43 +0000</pubDate>
      <link>https://dev.to/itechgrc_solutions/financial-controls-management-strengthening-assurance-over-financial-reporting-3lnl</link>
      <guid>https://dev.to/itechgrc_solutions/financial-controls-management-strengthening-assurance-over-financial-reporting-3lnl</guid>
      <description>&lt;p&gt;&lt;strong&gt;1. Introduction: The Cost of Weak Financial Controls&lt;/strong&gt;&lt;br&gt;
Financial controls form the backbone of trustworthy financial reporting, yet many organizations still manage them through fragmented, manual processes that are expensive to maintain and prone to error. A single control failure can trigger a restatement, a regulatory inquiry, or a loss of investor confidence — consequences that are disproportionate to the administrative effort it would have taken to prevent them. As regulatory scrutiny over financial reporting continues to intensify, organizations need a more efficient, more reliable way to establish, test, and maintain the controls that protect the integrity of their financial statements. Financial Controls Management (FCM) provides exactly this capability, transforming a traditionally manual, spreadsheet-heavy process into a structured, auditable discipline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. What Is Financial Controls Management?&lt;/strong&gt;&lt;br&gt;
Financial Controls Management is the systematic process of designing, documenting, testing, and monitoring the internal controls that govern an organization's financial reporting and transaction processes. This includes controls over revenue recognition, expense management, financial close, and disclosure — essentially every process that feeds into the accuracy of an organization's financial statements. A mature FCM program maintains a structured control framework that maps each control to the specific financial risk it mitigates, along with clear ownership, testing schedules, and remediation processes for any control that fails to operate as designed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Core Components of an Effective FCM Program&lt;/strong&gt;&lt;br&gt;
An effective financial controls program typically includes control documentation, capturing the design and objective of each control in a structured, centralized repository. It includes control testing, evaluating whether controls are operating effectively on an ongoing basis rather than assuming initial design remains sufficient indefinitely. Issue and remediation tracking ensures that control failures are addressed promptly and thoroughly, rather than noted and left unresolved until the next audit cycle. Finally, reporting and certification support gives finance and compliance leaders the evidence needed to support management's certification of internal control effectiveness, a requirement under many regulatory frameworks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. How IBM OpenPages Strengthens Financial Controls Management&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://itechgrc.com/" rel="noopener noreferrer"&gt;IBM OpenPages&lt;/a&gt; Financial Controls Management significantly decreases the time and cost involved in establishing and managing financial controls by consolidating control documentation, testing, and remediation into a single governed platform. Rather than tracking controls through disconnected spreadsheets maintained by different finance teams, organizations gain a centralized, auditable record of every control's design, testing history, and current status. This integration with the broader OpenPages platform also means financial controls data connects naturally with internal audit findings and operational risk assessments, giving organizations a more complete view of how financial risk intersects with the rest of the enterprise risk landscape.&lt;/p&gt;

&lt;p&gt;**5. Why Manual Control Management Falls Short&lt;br&gt;
**Many finance organizations still manage their control environment through spreadsheets, shared drives, and email — a process that becomes increasingly unmanageable as the organization grows or as regulatory requirements expand. Manual processes make it difficult to maintain a consistent view of control testing status across the organization, and they create significant risk when key personnel who understand the informal system leave the organization. They also make it far harder to respond quickly to auditor requests, since evidence of control design and testing is scattered rather than centrally accessible. A structured FCM platform eliminates these inefficiencies by giving every stakeholder a single, reliable source of truth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. The Regulatory Landscape Driving FCM Investment&lt;/strong&gt;&lt;br&gt;
Financial controls requirements have grown more stringent over time, with regulators demanding more rigorous evidence that management's assertions about control effectiveness are genuinely supported by testing and documentation. Organizations that cannot produce this evidence efficiently face longer, more expensive audit cycles and greater risk of adverse findings. This regulatory pressure has made financial controls management a priority not just for compliance and internal audit teams, but for CFOs and audit committees who bear direct accountability for the accuracy of financial reporting and the effectiveness of the control environment supporting it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Connecting Financial Controls to Internal Audit and Risk&lt;/strong&gt;&lt;br&gt;
Financial controls don't operate in isolation from the rest of the organization's assurance functions. Internal audit teams frequently rely on the same control documentation and testing evidence maintained within financial controls management to plan and execute their audit procedures, avoiding duplicated data collection. Operational risk assessments often surface control weaknesses that directly affect financial reporting, particularly in areas like transaction processing and revenue recognition. When financial controls, internal audit, and operational risk all draw from the same underlying platform, organizations eliminate the reconciliation burden that comes from maintaining these functions as separate, disconnected silos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;8. Benefits of a Mature Financial Controls Program&lt;/strong&gt;&lt;br&gt;
Organizations with mature financial controls programs benefit from significantly reduced time and cost in maintaining their control environment, since testing, documentation, and remediation all happen within a single governed system rather than scattered manual processes. They achieve faster, less disruptive audit cycles, since evidence of control design and effectiveness is readily accessible rather than requiring extensive last-minute compilation. They also gain greater confidence in their financial reporting, reducing the risk of restatements or control-related regulatory findings that can damage investor trust and market valuation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9. Best Practices for Strengthening Financial Controls Management&lt;/strong&gt;&lt;br&gt;
Organizations looking to mature their FCM programs should start by consolidating control documentation into a single, centralized repository rather than allowing different finance teams to maintain their own disconnected records. Establishing a consistent testing methodology and schedule across all controls — rather than ad hoc, inconsistent testing — improves both reliability and audit efficiency. Connecting financial controls data with internal audit and operational risk functions eliminates duplicated effort and provides a more complete view of financial risk. Finally, organizations should prioritize timely remediation tracking, ensuring identified control weaknesses are resolved promptly rather than lingering unaddressed until the next audit surfaces them again.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10. Conclusion: Controls as the Foundation of Financial Trust&lt;/strong&gt;&lt;br&gt;
Strong financial controls are the foundation on which investor confidence, regulatory standing, and organizational credibility are built. Organizations that continue to manage this function manually expose themselves to unnecessary cost, inefficiency, and risk — while those that adopt a structured, centralized approach to financial controls management gain both efficiency and genuine assurance. Platforms like IBM OpenPages give finance and compliance teams the tools to manage this discipline efficiently, while experienced partners like iTechGRC bring the implementation expertise needed to turn financial controls management from a manual burden into a streamlined, auditable process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://itechgrc.com/operational-risk-management/" rel="noopener noreferrer"&gt;Streamline your financial controls program — connect with us today.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
