<?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: Israel Vásquez</title>
    <description>The latest articles on DEV Community by Israel Vásquez (@israel_vsquez).</description>
    <link>https://dev.to/israel_vsquez</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4075282%2Fd55de4f0-1d89-4c3d-9b32-54b8152c6db0.jpg</url>
      <title>DEV Community: Israel Vásquez</title>
      <link>https://dev.to/israel_vsquez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/israel_vsquez"/>
    <language>en</language>
    <item>
      <title>Designing a Website for Humans and AI</title>
      <dc:creator>Israel Vásquez</dc:creator>
      <pubDate>Thu, 27 Aug 2026 14:45:02 +0000</pubDate>
      <link>https://dev.to/madebymonogram/designing-a-website-for-humans-and-ai-1b5g</link>
      <guid>https://dev.to/madebymonogram/designing-a-website-for-humans-and-ai-1b5g</guid>
      <description>&lt;p&gt;CrewAI's website had to do something that traditional marketing sites rarely need to do: serve several very different consumers from the same digital platform.&lt;/p&gt;

&lt;p&gt;An executive might be evaluating CrewAI as an enterprise AI platform. A developer might be looking for documentation or an integration example. A content team needs to publish and manage pages. An AI assistant needs structured information it can retrieve without parsing a visual interface.&lt;/p&gt;

&lt;p&gt;That changed the architectural problem.&lt;/p&gt;

&lt;p&gt;The project included 7 dedicated discovery surfaces for AI systems, a Contentful based content architecture, an automated publishing pipeline from Ghost to Contentful, centralized HubSpot form infrastructure, Markdown content delivery, OpenAPI documentation, OAuth discovery, and a Model Context Protocol (MCP) implementation.&lt;/p&gt;

&lt;p&gt;The important lesson was not simply to add AI features to a website. It was to make the underlying content and application architecture usable by both people and machines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with the content model, not the page
&lt;/h2&gt;

&lt;p&gt;One of the easiest ways for a large website to become difficult to maintain is to model the system around pages.&lt;/p&gt;

&lt;p&gt;A page based architecture often leads to individual templates, custom layouts, and content embedded directly into those layouts. As the number of content types grows, the system becomes harder for marketing teams to operate and harder for engineers to change safely.&lt;/p&gt;

&lt;p&gt;For CrewAI, the approach was different.&lt;/p&gt;

&lt;p&gt;The experience began in Figma as a design system, rather than as a collection of individual page designs. The resulting component library included hero layouts, platform diagrams, pricing sections, feature grids, statistics modules, tabbed content, media blocks, and technical documentation.&lt;/p&gt;

&lt;p&gt;Those components were then connected to structured models in Contentful.&lt;/p&gt;

&lt;p&gt;That relationship matters:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Design component → structured content model → application rendering&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of treating the CMS as a place to store finished pages, the CMS became part of the application's content architecture.&lt;/p&gt;

&lt;p&gt;Marketing could compose pages from reusable sections, while engineering retained control over how those sections were rendered, integrated, measured, and maintained.&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%2Fh95a8eap7cbj3nktqm8f.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%2Fh95a8eap7cbj3nktqm8f.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application used GraphQL and TypeScript to retrieve and render the structured content.&lt;/p&gt;

&lt;p&gt;This is a useful distinction when designing a modern CMS architecture. A component library is more valuable when its content representation is designed at the same time as its visual representation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The CMS does not have to be the writing tool
&lt;/h2&gt;

&lt;p&gt;There was another architectural constraint: the editorial team already used Ghost for writing.&lt;/p&gt;

&lt;p&gt;Replacing that workflow simply because the public website used Contentful would have solved an engineering problem by creating a content problem.&lt;/p&gt;

&lt;p&gt;Instead, the project connected the two systems.&lt;/p&gt;

&lt;p&gt;When an article is published in Ghost, an automated workflow converts it into a draft in Contentful.&lt;/p&gt;

&lt;p&gt;The important detail is where the automation stops.&lt;/p&gt;

&lt;p&gt;Ghost remains the writing environment.&lt;/p&gt;

&lt;p&gt;Contentful becomes the controlled publishing environment.&lt;/p&gt;

&lt;p&gt;That means the workflow looks roughly like this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Writer → Ghost → automated content transfer → Contentful draft → review and enrichment → publication&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The system deliberately does not automatically publish the article from Ghost.&lt;/p&gt;

&lt;p&gt;That creates a useful boundary between authoring and publishing.&lt;/p&gt;

&lt;p&gt;The editorial team can continue using the tool optimized for writing, while marketing can manage metadata, SEO, page composition, scheduling, and other publishing concerns in the system responsible for the public website.&lt;/p&gt;

&lt;p&gt;This is a broader architectural lesson: when two systems have different strengths, integration can be better than forcing one system to perform both jobs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dynamic forms should be treated as infrastructure
&lt;/h2&gt;

&lt;p&gt;Lead generation introduced another integration problem.&lt;/p&gt;

&lt;p&gt;Rather than creating isolated forms for different parts of the website, the platform centralized its HubSpot integration.&lt;/p&gt;

&lt;p&gt;Forms retrieve their structure directly from the HubSpot Marketing Forms API during page rendering. Submissions are validated with Zod before they reach HubSpot.&lt;/p&gt;

&lt;p&gt;The validation layer also enforces a business email requirement by blocking more than 40 consumer email providers, including Gmail, Yahoo, and Outlook.&lt;/p&gt;

&lt;p&gt;The same infrastructure handles attribution using HubSpot cookies, referral information, and page context.&lt;/p&gt;

&lt;p&gt;It also supports different confirmation behaviors, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inline success messages&lt;/li&gt;
&lt;li&gt;Redirects&lt;/li&gt;
&lt;li&gt;Embedded Calendly scheduling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This matters because a form is rarely just a collection of input fields in an enterprise website.&lt;/p&gt;

&lt;p&gt;It is part of a larger data flow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Form definition → validation → attribution → CRM submission → confirmation experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Centralizing that flow reduces the chance that different forms implement business rules differently.&lt;/p&gt;

&lt;p&gt;It also means new forms can reuse the same integration and validation infrastructure instead of introducing another custom path to the CRM.&lt;/p&gt;

&lt;h2&gt;
  
  
  The website became a structured knowledge source
&lt;/h2&gt;

&lt;p&gt;The most unusual part of the project was treating the website as something that AI systems should be able to consume directly.&lt;/p&gt;

&lt;p&gt;A conventional website is primarily optimized around human navigation.&lt;/p&gt;

&lt;p&gt;Information is organized into visual layouts, navigation menus, HTML documents, and interactive interfaces. A person can interpret those layers together.&lt;/p&gt;

&lt;p&gt;An AI system does not necessarily need those layers.&lt;/p&gt;

&lt;p&gt;It benefits from clear, structured representations of the same underlying information.&lt;/p&gt;

&lt;p&gt;The CrewAI platform therefore supports Markdown content delivery. Blog posts, documentation, webinars, case studies, events, and CMS pages can be requested as structured Markdown through dedicated routes or .md URLs.&lt;/p&gt;

&lt;p&gt;That creates an additional representation of the content without requiring an AI system to reverse engineer the rendered page.&lt;/p&gt;

&lt;p&gt;The architectural principle is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not make every consumer understand the presentation layer when the underlying content can be exposed directly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Markdown is useful for this because it provides a lightweight, structured representation of content that can be consumed by developer tools, automation systems, and AI applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discovery is a separate architectural problem
&lt;/h2&gt;

&lt;p&gt;Providing structured content solves only part of the problem.&lt;/p&gt;

&lt;p&gt;A machine still needs to discover what exists.&lt;/p&gt;

&lt;p&gt;The CrewAI platform exposes 7 documented discovery surfaces:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;code&gt;llms.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;llms-full.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;openapi.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/.well-known/mcp/server-card.json&lt;/code&gt;
5.&lt;code&gt;/.well-known/oauth-authorization-server&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;sitemap.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/brand/knowledge-graph&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;These surfaces serve different purposes.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;llms.txt&lt;/code&gt; and &lt;code&gt;llms-full.txt&lt;/code&gt; resources provide AI oriented descriptions of the site's capabilities and resources.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;openapi.json&lt;/code&gt; exposes an API description using OpenAPI 3.1.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;.well-known&lt;/code&gt; resources provide machine discoverable information related to MCP and OAuth authorization.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sitemap.md&lt;/code&gt; provides a structured representation of site content.&lt;/p&gt;

&lt;p&gt;The brand knowledge graph provides another machine readable representation of the organization's information.&lt;/p&gt;

&lt;p&gt;The important architectural point is that these are not seven copies of the same content.&lt;/p&gt;

&lt;p&gt;They are different interfaces into the same digital system.&lt;/p&gt;

&lt;p&gt;That distinction becomes increasingly important as websites are consumed by more types of software.&lt;/p&gt;

&lt;h2&gt;
  
  
  MCP turns APIs into agent accessible capabilities
&lt;/h2&gt;

&lt;p&gt;The project also implemented the &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;MCP is an open protocol for connecting AI applications with external data sources and tools. Its specification defines mechanisms through which servers can expose resources, prompts, and tools to clients.&lt;/p&gt;

&lt;p&gt;For CrewAI, the implementation mirrors public REST APIs through a consistent collection of tools.&lt;/p&gt;

&lt;p&gt;Agents can discover capabilities, authenticate using OAuth, and retrieve resources such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blog posts&lt;/li&gt;
&lt;li&gt;Webinars&lt;/li&gt;
&lt;li&gt;Events&lt;/li&gt;
&lt;li&gt;Case studies&lt;/li&gt;
&lt;li&gt;Developer resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is different from simply making a website "AI searchable."&lt;/p&gt;

&lt;p&gt;Search gives an AI system information about a website.&lt;/p&gt;

&lt;p&gt;An API gives software a defined way to retrieve information.&lt;/p&gt;

&lt;p&gt;A protocol such as MCP provides a standardized interface through which compatible AI applications can discover and interact with capabilities.&lt;/p&gt;

&lt;p&gt;That difference matters when deciding how much of a platform should be exposed to intelligent systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why OAuth matters here
&lt;/h2&gt;

&lt;p&gt;Once an application exposes capabilities to external software, discovery alone is not enough.&lt;/p&gt;

&lt;p&gt;The system also needs a way to establish who is authorized to access protected capabilities.&lt;/p&gt;

&lt;p&gt;That is why OAuth discovery is part of the architecture.&lt;/p&gt;

&lt;p&gt;The platform exposes an OAuth authorization server discovery endpoint alongside its MCP implementation.&lt;/p&gt;

&lt;p&gt;The result is a more complete machine interaction model:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discover → authenticate → access capabilities → retrieve structured content&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The exact authentication requirements depend on the capability being exposed, but the architectural principle is broadly useful: machine readable discovery and authorization should be designed together rather than treated as unrelated features.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebMCP adds another interaction surface
&lt;/h2&gt;

&lt;p&gt;The platform also supports WebMCP when the browser supports it.&lt;/p&gt;

&lt;p&gt;This allows AI interactions to occur directly within the page rather than requiring every interaction to be performed through a separate server request.&lt;/p&gt;

&lt;p&gt;That introduces an interesting distinction between two types of AI integration.&lt;/p&gt;

&lt;p&gt;The first is &lt;strong&gt;server side access&lt;/strong&gt;, where an external agent discovers and calls APIs or MCP tools.&lt;/p&gt;

&lt;p&gt;The second is &lt;strong&gt;in page interaction&lt;/strong&gt;, where an AI capable browser can interact with capabilities exposed by the page itself.&lt;/p&gt;

&lt;p&gt;The two approaches solve different problems.&lt;/p&gt;

&lt;p&gt;A developer building an integration may want API or MCP access.&lt;/p&gt;

&lt;p&gt;A user interacting with an AI enabled browser may benefit from capabilities exposed directly by the web experience.&lt;/p&gt;

&lt;p&gt;Designing for both means the website becomes more than a destination. It becomes an interface that different classes of clients can use.&lt;/p&gt;

&lt;h2&gt;
  
  
  The real architecture is the combination
&lt;/h2&gt;

&lt;p&gt;None of these individual technologies is particularly useful as a standalone checklist.&lt;/p&gt;

&lt;p&gt;Contentful does not automatically make a website AI ready.&lt;/p&gt;

&lt;p&gt;Markdown does not automatically create a useful AI interface.&lt;/p&gt;

&lt;p&gt;An OpenAPI document does not automatically create a good developer experience.&lt;/p&gt;

&lt;p&gt;MCP does not replace a well structured content architecture.&lt;/p&gt;

&lt;p&gt;The value comes from connecting them.&lt;/p&gt;

&lt;p&gt;The resulting architecture can be understood as several layers:&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%2Fr71ker9cfwm5kbxc1334.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%2Fr71ker9cfwm5kbxc1334.png" alt=" " width="800" height="761"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The exact implementation is more complex than this simplified model, but the principle is important.&lt;/p&gt;

&lt;p&gt;There is a shared application and content foundation, with different interfaces optimized for different consumers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this architecture teaches
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Model content as structured data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If content is represented as reusable structured entities, it can support more than one presentation layer.&lt;/p&gt;

&lt;p&gt;That benefits traditional web development first. AI consumption becomes an additional advantage rather than the sole reason for structuring content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Separate authoring from publishing when workflows require it&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Ghost and Contentful integration demonstrates that a CMS migration does not have to mean replacing every existing editorial tool.&lt;/p&gt;

&lt;p&gt;The better question is:&lt;/p&gt;

&lt;p&gt;Which system should own each part of the workflow?&lt;/p&gt;

&lt;p&gt;In this case, Ghost owns writing, while Contentful owns structured website publishing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Build integrations as shared infrastructure&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The HubSpot implementation centralizes validation, attribution, form configuration, and confirmation behavior.&lt;/p&gt;

&lt;p&gt;That is more maintainable than allowing every form to develop its own integration logic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Expose information in the representation the consumer needs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Humans benefit from visual interfaces.&lt;/p&gt;

&lt;p&gt;Developers benefit from APIs and documentation.&lt;/p&gt;

&lt;p&gt;AI systems benefit from structured content, explicit discovery mechanisms, and machine accessible capabilities.&lt;/p&gt;

&lt;p&gt;There is no requirement for all of those consumers to use exactly the same representation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Treat AI readiness as an architectural concern&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Adding an AI chatbot to an existing website is one possible AI feature.&lt;/p&gt;

&lt;p&gt;Making the underlying content, APIs, discovery mechanisms, authentication, and application capabilities accessible to intelligent systems is a much broader architectural decision.&lt;/p&gt;

&lt;p&gt;The CrewAI project demonstrates the latter approach.&lt;/p&gt;

&lt;h2&gt;
  
  
  When this architecture makes sense
&lt;/h2&gt;

&lt;p&gt;This approach is not necessary for every website.&lt;/p&gt;

&lt;p&gt;A small marketing site with a handful of static pages probably does not need a CMS integration spanning multiple editorial systems, an OpenAPI description, MCP capabilities, or multiple machine discovery surfaces.&lt;/p&gt;

&lt;p&gt;The complexity becomes more justified when a platform has several audiences and several systems that need to consume the same information.&lt;/p&gt;

&lt;p&gt;That includes enterprise AI companies, developer platforms, documentation heavy products, SaaS companies with extensive APIs, and organizations expecting their content to be consumed by increasingly autonomous software.&lt;/p&gt;

&lt;p&gt;The key is to start with the consumption model.&lt;/p&gt;

&lt;p&gt;Ask:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Who needs to consume this content?&lt;/li&gt;
&lt;li&gt;Which parts need to be structured?&lt;/li&gt;
&lt;li&gt;Which capabilities should be exposed as APIs?&lt;/li&gt;
&lt;li&gt;How will external systems discover them?&lt;/li&gt;
&lt;li&gt;Which capabilities require authentication?&lt;/li&gt;
&lt;li&gt;Which workflows should remain controlled by humans?&lt;/li&gt;
&lt;li&gt;Which systems should own authoring, publishing, and data validation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those questions produce better architecture than starting with a technology shopping list.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bigger lesson
&lt;/h2&gt;

&lt;p&gt;The most interesting part of the CrewAI project was not that the website used Next.js, Contentful, GraphQL, Vercel, OpenAPI, OAuth, or MCP.&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%2Fgtci44t8ie9j1ov6e9ko.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%2Fgtci44t8ie9j1ov6e9ko.png" alt=" " width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It was that those technologies were connected around a common idea: the website should be useful to whatever is consuming it.&lt;/p&gt;

&lt;p&gt;For humans, that means a coherent design system and an intentional digital experience.&lt;/p&gt;

&lt;p&gt;For content teams, it means structured publishing workflows with appropriate editorial control.&lt;/p&gt;

&lt;p&gt;For developers, it means APIs, documentation, and predictable interfaces.&lt;/p&gt;

&lt;p&gt;For AI systems, it means machine readable content, explicit discovery, authentication, and protocol based access to capabilities.&lt;/p&gt;

&lt;p&gt;That is a more useful definition of an AI ready website.&lt;/p&gt;

&lt;p&gt;It is not a page with an AI feature attached to it.&lt;/p&gt;

&lt;p&gt;It is a digital platform whose architecture gives both people and intelligent systems clear ways to understand, navigate, and interact with the information and capabilities it provides.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>architecture</category>
      <category>nextjs</category>
    </item>
    <item>
      <title>How We Turned an AI Brand Identity Into a Scalable Digital Design System</title>
      <dc:creator>Israel Vásquez</dc:creator>
      <pubDate>Wed, 19 Aug 2026 22:58:59 +0000</pubDate>
      <link>https://dev.to/madebymonogram/how-we-turned-an-ai-brand-identity-into-a-scalable-digital-design-system-eo6</link>
      <guid>https://dev.to/madebymonogram/how-we-turned-an-ai-brand-identity-into-a-scalable-digital-design-system-eo6</guid>
      <description>&lt;p&gt;When a technology company grows quickly, its brand can become a problem before anyone notices it.&lt;/p&gt;

&lt;p&gt;The company changes. The product changes. The audience changes. Marketing needs more assets. Engineering needs more flexibility. Partnerships introduce new use cases.&lt;/p&gt;

&lt;p&gt;But the original brand system is still based on decisions made when the company was much smaller.&lt;/p&gt;

&lt;p&gt;We ran into this problem while working with Fireworks AI.&lt;/p&gt;

&lt;p&gt;Fireworks had grown quickly as an AI infrastructure company, but its visual identity was no longer reflecting the company it had become. The challenge was not simply to create a new logo or a better looking website.&lt;/p&gt;

&lt;p&gt;We needed to create a system that could be used across the web, marketing, partnerships, and future brand applications without requiring a designer to make every decision from scratch.&lt;/p&gt;

&lt;p&gt;That changed the way we approached the project.&lt;/p&gt;

&lt;p&gt;Instead of thinking about the brand as a collection of assets, we treated it as a design system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A brand system needs to survive outside the design file&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A brand can look great in a presentation and still fail in production.&lt;/p&gt;

&lt;p&gt;This happens when the system depends too much on individual design decisions:&lt;/p&gt;

&lt;p&gt;Where should the logo go?&lt;br&gt;
How much space should it have?&lt;br&gt;
What happens when another logo appears next to it?&lt;br&gt;
Which background should be used?&lt;br&gt;
How should a social post be composed?&lt;br&gt;
How should a developer or marketer create a new page?&lt;br&gt;
What happens when the available format is completely different from the original design?&lt;/p&gt;

&lt;p&gt;If every answer requires asking a designer, the system does not scale very well.&lt;/p&gt;

&lt;p&gt;For Fireworks, we wanted the answers to live inside the system itself.&lt;/p&gt;

&lt;p&gt;The result was a set of rules and reusable elements that could support new applications without losing the identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Start with a set of primitives&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The first step was establishing the basic visual language.&lt;/p&gt;

&lt;p&gt;For Fireworks, that included the logo mark, typography, color, grids, backgrounds, and visual patterns.&lt;/p&gt;

&lt;p&gt;One of the strongest decisions was to make the identity predominantly dark.&lt;/p&gt;

&lt;p&gt;That choice connected naturally with the technical nature of the product and the developer audience Fireworks serves.&lt;/p&gt;

&lt;p&gt;But a dark foundation alone would not make the brand distinctive.&lt;/p&gt;

&lt;p&gt;We needed a strong visual accent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fireworks Purple&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The primary purple used in the identity was inspired by Akihabara Electric Town in Tokyo.&lt;/p&gt;

&lt;p&gt;The reference came from the bright, electric atmosphere of the area's illuminated streets and arcades.&lt;/p&gt;

&lt;p&gt;That gave us a useful contrast:&lt;/p&gt;

&lt;p&gt;dark technical foundation + vibrant visual energy.&lt;/p&gt;

&lt;p&gt;The purple became more than a color in the style guide. It became one of the quickest ways to recognize the brand across different applications.&lt;/p&gt;

&lt;p&gt;This is an important distinction when building a design system.&lt;/p&gt;

&lt;p&gt;A design token is useful because it can be reused.&lt;/p&gt;

&lt;p&gt;A brand element becomes powerful when its repeated use also builds recognition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Making the logo system flexible&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A logo usually has a fixed shape.&lt;/p&gt;

&lt;p&gt;The environments where the logo needs to live are anything but fixed.&lt;/p&gt;

&lt;p&gt;A website header, social graphic, presentation, partner announcement, and advertisement all create different constraints.&lt;/p&gt;

&lt;p&gt;For Fireworks, we established a raster based grid around the logo mark.&lt;/p&gt;

&lt;p&gt;The grid provided a consistent structure for placing graphical elements around the logo while allowing the composition to adapt to different situations.&lt;/p&gt;

&lt;p&gt;This became particularly useful for partner collaborations and edge cases where the logo needed to interact with other visual elements.&lt;/p&gt;

&lt;p&gt;Instead of defining a single composition and hoping it would work everywhere, we defined a set of rules that could generate multiple compositions.&lt;/p&gt;

&lt;p&gt;That is one of the core ideas behind scalable design systems:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Define the constraints so the individual application can remain flexible.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;From brand guidelines to web components&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The next step was making the identity useful to the engineering team.&lt;/p&gt;

&lt;p&gt;A traditional brand guideline might tell a developer which font and colors to use.&lt;/p&gt;

&lt;p&gt;That's helpful, but it doesn't answer the practical questions that come up while building a website.&lt;/p&gt;

&lt;p&gt;What does a button look like?&lt;/p&gt;

&lt;p&gt;How should a heading interact with the background?&lt;/p&gt;

&lt;p&gt;How much visual texture can a section have?&lt;/p&gt;

&lt;p&gt;How should the brand appear in a dark interface?&lt;/p&gt;

&lt;p&gt;What happens when a new page needs to be created tomorrow?&lt;/p&gt;

&lt;p&gt;As part of the Fireworks branding work, we created website examples and reusable elements including buttons, typography treatments, and background textures.&lt;/p&gt;

&lt;p&gt;The goal was not to design every possible page.&lt;/p&gt;

&lt;p&gt;The goal was to give the engineering team enough building blocks to create new pages while staying inside the visual language.&lt;/p&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;A good design system does not try to predict every future screen.&lt;/p&gt;

&lt;p&gt;It gives the people building those screens a reliable starting point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Designing for the people who maintain the system&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the easiest mistakes to make when creating a design system is optimizing it for the people who created it.&lt;/p&gt;

&lt;p&gt;The designers know all the rules.&lt;/p&gt;

&lt;p&gt;They know which combinations work.&lt;/p&gt;

&lt;p&gt;They know which edge cases to avoid.&lt;/p&gt;

&lt;p&gt;The internal team receiving the system does not have that context.&lt;/p&gt;

&lt;p&gt;For Fireworks, we wanted the system to be useful to the marketing and engineering teams without requiring constant design support.&lt;/p&gt;

&lt;p&gt;That meant creating practical assets that could be reused directly.&lt;/p&gt;

&lt;p&gt;The marketing team, for example, needed to produce social content and advertising materials quickly.&lt;/p&gt;

&lt;p&gt;So instead of delivering only brand guidelines, we created a collection of Figma templates and grids based on the new visual language.&lt;/p&gt;

&lt;p&gt;This gave the team a repeatable starting point for both digital and print applications.&lt;/p&gt;

&lt;p&gt;The system became something they could operate, not just something they could reference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Creating variation without losing the brand&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is another problem with design systems that is easy to overlook.&lt;/p&gt;

&lt;p&gt;Consistency can become boring.&lt;/p&gt;

&lt;p&gt;If every page uses exactly the same layout, the brand starts to feel mechanical.&lt;/p&gt;

&lt;p&gt;For Fireworks, we needed enough structure to create recognition while leaving enough room for experimentation.&lt;/p&gt;

&lt;p&gt;This is where the visual pattern system became particularly useful.&lt;/p&gt;

&lt;p&gt;We created ASCII inspired artwork using small pieces of the Fireworks logo.&lt;/p&gt;

&lt;p&gt;The individual vectors could be rotated and arranged in different directions to create patterns with a sense of depth and movement.&lt;/p&gt;

&lt;p&gt;The same underlying elements could produce very different compositions.&lt;/p&gt;

&lt;p&gt;That gave the identity a useful property:&lt;/p&gt;

&lt;p&gt;the system could generate variation without requiring a completely new visual language each time.&lt;/p&gt;

&lt;p&gt;For a company operating in AI, this was especially relevant. The visual language could feel connected to computation and technical culture without relying on the usual stock imagery associated with AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A useful test: can the team create something new?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For us, one of the best ways to evaluate a design system is to stop designing for a moment.&lt;/p&gt;

&lt;p&gt;Give the system to someone else.&lt;/p&gt;

&lt;p&gt;Ask them to create something that wasn't part of the original project.&lt;/p&gt;

&lt;p&gt;If they can produce a new page, campaign, presentation, or social graphic that feels consistent with the brand, the system is doing its job.&lt;/p&gt;

&lt;p&gt;If they need to ask the original designer for instructions every few minutes, there is probably more work to do.&lt;/p&gt;

&lt;p&gt;This is why we think of design systems as tools for decision making, not just collections of components.&lt;/p&gt;

&lt;p&gt;The system should answer common questions before they need to be asked.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What we learned from the Fireworks project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are a few principles from this project that we continue to apply when thinking about digital brands.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Build rules, not just assets&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A logo file is an asset.&lt;/p&gt;

&lt;p&gt;A rule for how the logo behaves across different contexts is part of a system.&lt;/p&gt;

&lt;p&gt;The second is much more valuable as a company grows.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Design for the next person&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The person using the system may not have been in the room when it was created.&lt;/p&gt;

&lt;p&gt;If the system only makes sense to its original designers, it is not finished.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Give people useful constraints&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Too much freedom creates inconsistency.&lt;/p&gt;

&lt;p&gt;Too many rules create friction.&lt;/p&gt;

&lt;p&gt;The best systems give people enough structure to make good decisions while leaving room for creativity.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Make consistency easy&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;People usually don't ignore brand guidelines because they don't care.&lt;/p&gt;

&lt;p&gt;They ignore them when following the guidelines takes too much effort.&lt;/p&gt;

&lt;p&gt;Reusable templates, components, grids, and clear rules reduce that friction.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Think about implementation early&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A visual identity eventually becomes a website, a product interface, a campaign, a presentation, and dozens of other things.&lt;/p&gt;

&lt;p&gt;Thinking about those applications while creating the identity makes the transition from design to implementation much smoother.&lt;/p&gt;

&lt;p&gt;The real goal of a scalable brand system&lt;/p&gt;

&lt;p&gt;The Fireworks project started as a branding challenge, but the bigger problem was scalability.&lt;/p&gt;

&lt;p&gt;The company needed a visual identity that could grow with it.&lt;/p&gt;

&lt;p&gt;That meant creating something that could move from:&lt;/p&gt;

&lt;p&gt;logo → system → website → marketing → future applications&lt;/p&gt;

&lt;p&gt;without losing its identity along the way.&lt;/p&gt;

&lt;p&gt;That's how we think about digital design systems at Monogram.&lt;/p&gt;

&lt;p&gt;The goal isn't to create a perfect collection of assets.&lt;/p&gt;

&lt;p&gt;The goal is to create a system that helps a team make good decisions repeatedly.&lt;/p&gt;

&lt;p&gt;When that happens, design stops being a bottleneck and becomes part of the infrastructure that allows the company to move faster.&lt;/p&gt;

&lt;p&gt;And for a technology company that is changing quickly, that is where a brand system starts to become really valuable.&lt;/p&gt;

</description>
      <category>design</category>
      <category>webdev</category>
      <category>ai</category>
      <category>designsystem</category>
    </item>
  </channel>
</rss>
