<?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>Forem: convex</title>
    <description>The latest articles on Forem by convex (@convex).</description>
    <link>https://forem.com/convex</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F8065%2Fd559bbad-1732-4020-82c4-ad689dbdbc5d.png</url>
      <title>Forem: convex</title>
      <link>https://forem.com/convex</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/convex"/>
    <language>en</language>
    <item>
      <title>Mappie.ai: A Context-Aware AI Tool For Product Teams</title>
      <dc:creator>Wayne Sutton</dc:creator>
      <pubDate>Thu, 23 Jan 2025 01:13:14 +0000</pubDate>
      <link>https://forem.com/convex/mappieai-a-context-aware-ai-tool-for-product-teams-3jo0</link>
      <guid>https://forem.com/convex/mappieai-a-context-aware-ai-tool-for-product-teams-3jo0</guid>
      <description>&lt;p&gt;Kicking off a new blog series showcasing apps built on &lt;a href="https://convex.link/lrjAkdw" rel="noopener noreferrer"&gt;Convex&lt;/a&gt;, starting with &lt;a href="https://www.mappie.ai/" rel="noopener noreferrer"&gt;Mappie.ai&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Mappie.ai?&lt;/strong&gt; 🤔&lt;/p&gt;

&lt;p&gt;Mappie.ai is a tool designed for product teams to generate clear, detailed product specs like Epics, Features, and User Stories with the help of context-aware AI. It streamlines ideation and requirements generation, allowing users to brainstorm and create work items effortlessly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features ✨&lt;/strong&gt;&lt;br&gt;
⚡ AI Generation of Epics, Features, and User Stories&lt;br&gt;
🧩 Markdown Editor with slash commands for fast editing&lt;br&gt;
🧠 AI Chat Assistant for brainstorming and refining&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How Convex is Used&lt;/strong&gt; 🏗️&lt;/p&gt;

&lt;p&gt;Mappie.ai leverages Convex to deliver a seamless experience with:&lt;br&gt;
⚡ &lt;a href="https://convex.link/JFj9mPu" rel="noopener noreferrer"&gt;Real-time data sync&lt;/a&gt; for instant updates across sessions and users&lt;br&gt;
⚙️ Work item storage to persist generated epics, features, and stories&lt;br&gt;
🪝 Chat message storage to maintain AI brainstorming sessions&lt;/p&gt;

&lt;p&gt;Convex’s real-time syncing capabilities ensure that changes to work items or AI-generated content are immediately reflected across devices, a critical feature for a collaborative tool like Mappie.ai.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s Next for Mappie?&lt;/strong&gt; 🚀&lt;br&gt;
One feature planned for the future is enabling the AI assistant to reference all existing work items. This would allow it to generate new content or brainstorm ideas while considering the context of previous project data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt; 💡&lt;br&gt;
As product teams work to deliver faster while maintaining clarity and precision, tools like Mappie.ai help bridge the gap between ideation and execution. With real-time sync powered by Convex, Mappie ensures users stay in flow while keeping their data up-to-date and accessible.&lt;/p&gt;




&lt;p&gt;This blog series will continue to explore how developers leverage Convex to build AI and full-stack applications, sharing insights, lessons learned, and featured apps built on Convex.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Questions or thoughts?&lt;/strong&gt; &lt;br&gt;
Do you have feedback or suggestions? We’d love to hear from you! Reach out at &lt;a href="mailto:devx@convex.dev"&gt;devx@convex.dev&lt;/a&gt;. Stay updated on our latest product releases by following @&lt;a href="https://x.com/Convex_dev" rel="noopener noreferrer"&gt;convex_dev&lt;/a&gt; on &lt;a href="https://bsky.app/profile/convex.dev" rel="noopener noreferrer"&gt;Bluesky&lt;/a&gt; and &lt;a href="https://x.com/Convex_dev" rel="noopener noreferrer"&gt;𝕏&lt;/a&gt;, or by joining the Convex Community on &lt;a href="https://discord-questions.convex.dev/" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>convex</category>
      <category>product</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What is a Client?</title>
      <dc:creator>Abhi Vaidyanatha</dc:creator>
      <pubDate>Thu, 22 Feb 2024 22:46:48 +0000</pubDate>
      <link>https://forem.com/convex/what-is-a-client-59e2</link>
      <guid>https://forem.com/convex/what-is-a-client-59e2</guid>
      <description>&lt;h2&gt;
  
  
  Definition
&lt;/h2&gt;

&lt;p&gt;A client is a program or device that requests services or resources from a server in a client-server architecture. It initiates communication, sends requests, and interacts with the server to obtain the desired information or perform specific actions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Client-Server Architecture
&lt;/h2&gt;

&lt;p&gt;In the client-server architecture, the client typically initiates communication by sending a request to the server. This request can be for various services or resources, such as data retrieval, file uploads, or authentication. The server, on the other hand, responds to these requests by providing the requested services or resources.&lt;/p&gt;

&lt;p&gt;The communication between the client and the server typically occurs over a network, using protocols such as HTTP or TCP/IP. The client sends requests to the server, specifying the desired actions or data, and the server responds with the requested information or performs the requested operations.&lt;/p&gt;

&lt;p&gt;This allows for a distributed and scalable approach to software development. It enables the separation of concerns, where the client is responsible for the user interface and user interactions, while the server handles the business logic and data management. This separation allows for easier maintenance, scalability, and flexibility in building complex software systems.&lt;/p&gt;

&lt;p&gt;In TypeScript, you can create clients using various approaches and frameworks, depending on your specific requirements and project preferences. One popular approach is to use the Fetch API, which is built into modern web browsers. The Fetch API provides a powerful and flexible way to make HTTP requests from the client to the server.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are WebSockets?
&lt;/h2&gt;

&lt;p&gt;When you're using Convex, client-server architecture is facilitated through WebSockets, which act as intermediaries between the client and server. They provide bidirectional communication, operating over a single TCP connection, which is ideal for low-latency, high-performance exchange. Unlike the typical request-response model, WebSockets enable real-time, full-duplex communication between the client and the server.&lt;/p&gt;

&lt;p&gt;WebSockets act as a communication channel that allows the server to push data to the client without the need for the client to continuously send requests. This persistent connection eliminates the overhead of establishing new connections for each request, resulting in reduced latency and improved efficiency.&lt;/p&gt;

&lt;p&gt;Convex takes advantage of WebSockets to make your application realtime, as the established WebSocket between your database/cache and application will update your app with new data without needing to refresh the page. This enables live chat functionality, collaborative editing, and general multiplayer capabilities. Whenever new information is available, the app server will update your user's client.&lt;/p&gt;

&lt;h2&gt;
  
  
  Examples
&lt;/h2&gt;

&lt;p&gt;Here are some examples of clients commonly used in TypeScript development:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Web Browsers: Web browsers, such as Chrome, Firefox, and Safari, are the most common type of client in web development. They send HTTP requests to servers and receive responses to display web pages.&lt;/li&gt;
&lt;li&gt;Mobile Applications: Mobile apps developed using TypeScript, such as those built with frameworks like React Native or Ionic, act as clients. They communicate with servers to fetch data, send user inputs, and receive updates.&lt;/li&gt;
&lt;li&gt;Desktop Applications: These applications are installed and run on a user's computer and communicate with servers through APIs, allowing users to fetch data, submit forms, and perform various tasks directly from their desktop.&lt;/li&gt;
&lt;li&gt;Command Line Interfaces (CLIs): TypeScript can be used to build command-line tools or CLIs that act as clients. These clients interact with servers through APIs, enabling developers to perform various tasks from the command line.&lt;/li&gt;
&lt;li&gt;Server-side Applications: In some cases, TypeScript applications can act as both clients and servers. For example, a TypeScript server application may make requests to external APIs or services, acting as a client to retrieve data or perform certain actions.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Comparing Realtime DBs</title>
      <dc:creator>Abhi Vaidyanatha</dc:creator>
      <pubDate>Thu, 22 Feb 2024 22:43:27 +0000</pubDate>
      <link>https://forem.com/convex/comparing-realtime-dbs-407m</link>
      <guid>https://forem.com/convex/comparing-realtime-dbs-407m</guid>
      <description>&lt;p&gt;Realtime databases are a popular choice for developers looking to build applications that require instant updates. They are particularly beneficial for applications that involve collaborative features, messaging systems, live tracking, and real-time analytics. To contextualize this, here are a bunch of examples of applications that greatly benefit from a realtime backend layer:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Chat and Messaging Applications: Realtime databases are ideal for chat and messaging applications where instant message delivery and synchronization are crucial. Users can see messages in real time, enabling seamless and interactive conversations.&lt;/li&gt;
&lt;li&gt;Collaborative Tools: Applications that involve real-time collaboration, such as project management tools, document editing platforms, or whiteboarding applications, can greatly benefit from a realtime database. It allows multiple users to work together simultaneously, seeing each other's changes in real time.&lt;/li&gt;
&lt;li&gt;Live Tracking and Location-Based Services: Applications that require live tracking, such as ride-sharing services, delivery tracking, or asset management systems, rely on realtime databases to provide accurate and up-to-date location information to users.&lt;/li&gt;
&lt;li&gt;Real-Time Analytics and Dashboards: Applications that require real-time data visualization and analytics, such as financial platforms, monitoring systems, or IoT (Internet of Things) applications, can leverage realtime databases to display live data and generate real-time insights.&lt;/li&gt;
&lt;li&gt;Multiplayer Games: Realtime databases are essential for multiplayer games, enabling real-time interactions between players, synchronization of game states, and instant updates of scores and achievements.&lt;/li&gt;
&lt;li&gt;Auction and Bidding Platforms: Applications that involve auctions, bidding, or real-time bidding systems benefit from realtime databases to ensure that bids are instantly reflected, providing a seamless and fair experience for users.&lt;/li&gt;
&lt;li&gt;Social Media Feeds: Social media platforms heavily rely on realtime databases to deliver real-time updates of posts, comments, likes, and notifications to users, creating an engaging and interactive user experience.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Three tools that often appear in the conversation of realtime databases are Convex, Supabase, and Firebase. Here, we'll look past the surface level details and go over the actual developer experience when trying to implement realtime on each of these platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  Convex
&lt;/h3&gt;

&lt;p&gt;Convex stands out by providing realtime capabilities out of the box. With Convex, developers get reliable realtime updates without the need for additional configuration or manual intervention. This is achieved through Convex's intelligent query dependency tracking system. When a dependency in a query changes, Convex automatically updates all relevant queries, ensuring that the data remains up to date in real time.&lt;/p&gt;

&lt;p&gt;In addition to its built-in realtime capabilities, Convex also offers excellent integration with React. Developers can leverage Convex's React support to seamlessly incorporate realtime updates into their React applications. This abstraction of the realtime functionality simplifies the development process and allows developers to focus on building their applications rather than dealing with the intricacies of realtime data synchronization.&lt;/p&gt;

&lt;h3&gt;
  
  
  Supabase
&lt;/h3&gt;

&lt;p&gt;Supabase does technically offer realtime capabilities. However, it requires developers to manually handle refetching data when a row changes. On the other hand, Convex automates this process by updating all queries when a dependency changes.&lt;/p&gt;

&lt;p&gt;Some developers also mention that Postgres has realtime capabilities, but it can be challenging to set up and manage. Supabase's realtime feature is built on top of Postgres and Phoenix PubSub, but it still requires effort to configure. However, there are frameworks emerging that simplify the process and offer similar functionality to what Convex provides.&lt;/p&gt;

&lt;h3&gt;
  
  
  Firebase
&lt;/h3&gt;

&lt;p&gt;Firebase also provides realtime updates, but it follows a similar approach to Supabase, where developers need to handle row-oriented updates.&lt;/p&gt;

&lt;p&gt;When comparing Convex and Firebase, Convex offers better integration with React and abstracts the realtime updates in a more efficient manner. Firebase, on the other hand, pushes the subscription predicate logic to the client, which may not be ideal for all applications. It is worth noting that Convex recommends putting this logic on the server for better security and easier authorization management.&lt;/p&gt;

&lt;h3&gt;
  
  
  Wrap-up
&lt;/h3&gt;

&lt;p&gt;Essentially, consider factors such as ease of setup, automatic updates, integration with React, and the level of control over subscription logic. Supabase, Convex, and Firebase each have their strengths and weaknesses in these area. We're biased, but we believe that Convex offering this out of the box is ultimately a superior approach.&lt;/p&gt;

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