<?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: Pierre Martin 💿</title>
    <description>The latest articles on DEV Community by Pierre Martin 💿 (@pierremartin).</description>
    <link>https://dev.to/pierremartin</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1049455%2F3776c3bf-5288-4541-ad3b-7707416234be.jpeg</url>
      <title>DEV Community: Pierre Martin 💿</title>
      <link>https://dev.to/pierremartin</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pierremartin"/>
    <language>en</language>
    <item>
      <title>Reduce friction by rediscovering your keyboard</title>
      <dc:creator>Pierre Martin 💿</dc:creator>
      <pubDate>Fri, 07 Apr 2023 03:27:00 +0000</pubDate>
      <link>https://dev.to/front-commerce/reduce-friction-by-rediscovering-your-keyboard-4i10</link>
      <guid>https://dev.to/front-commerce/reduce-friction-by-rediscovering-your-keyboard-4i10</guid>
      <description>&lt;p&gt;Hey there! In this post, we'll talk about some awesome benefits that you can enjoy when you start using keyboard shortcuts and the terminal.&lt;/p&gt;

&lt;p&gt;It can really help you navigate in an application or switch between different applications and contexts without any friction. We'll also illustrate the Unix philosophy, and provide tips for gradually adopting these practices.&lt;/p&gt;

&lt;p&gt;I hope you find this helpful!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why using your keyboard more?
&lt;/h2&gt;

&lt;p&gt;As developers, we spend a lot of time typing on our keyboard. For typing code of course, but also for searching, documentation (issue tracker, wiki…) and communicating with others (Slack, Teams, Discord, emails…).&lt;/p&gt;

&lt;p&gt;Now, think about how you switch context between different applications.&lt;/p&gt;

&lt;p&gt;You’re writing code in a text editor, but want to ask a question to a teammate on Slack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do you leave your keyboard to fetch your mouse (or trackpad)?&lt;/li&gt;
&lt;li&gt;do you use “Alt + Tab”?&lt;/li&gt;
&lt;li&gt;do you switch to a different virtual desktop? (using the keyboard)?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When on Slack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;do you use your mouse to select the person or channel you want to write to?&lt;/li&gt;
&lt;li&gt;do you use “Ctrl + K” (or “Cmd + K) to navigate there?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try both approaches: with your mouse, and with your keyboard.&lt;br&gt;
How long does it take between the last character you typed in the editor and the first one you typed in Slack’s message input?&lt;/p&gt;

&lt;p&gt;In this example, you might find that navigating to this new context without removing your fingers from the keyboard leads to a smoother experience. &lt;strong&gt;It removes friction.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When your brain thinks about asking on Slack, within a few keystrokes you’re ready to type your message, and a few keystrokes later you’re back in your text editor, ready to type the next line of code.&lt;br&gt;
Context switching has been reduced to its minimum, helping you to focus on the task at hand.&lt;/p&gt;

&lt;p&gt;This is just an example of context switching, but be aware of it and you’ll see that it happens all day long:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;going back and forth between our code editor and our browser&lt;/li&gt;
&lt;li&gt;searching for information on the internet&lt;/li&gt;
&lt;li&gt;navigating in our emails or issue tracker&lt;/li&gt;
&lt;li&gt;committing our code changes and pushing them to the repository to open a Pull Request&lt;/li&gt;
&lt;li&gt;searching content in a file or a tree of files&lt;/li&gt;
&lt;li&gt;switching to a different project, or directory&lt;/li&gt;
&lt;li&gt;etc…&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;By rediscovering the keyboard shortcuts for each application you use, you can significantly reduce the time it takes to switch between contexts.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Most applications have a variety of keyboard shortcuts that allow you to navigate and perform actions quickly and efficiently.&lt;br&gt;
By taking the time to learn these shortcuts and incorporating them into your workflow, you can streamline your work and reduce friction throughout your day.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why using your terminal more?
&lt;/h2&gt;

&lt;p&gt;I find it important to learn shortcuts for the applications you’re using the major part of your day.&lt;/p&gt;

&lt;p&gt;For developers, these applications would be something like: a text editor, a browser, an instant messaging app and of course (don’t underestimate it) your operating system!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;During your career, you’ll change the applications you use.&lt;/strong&gt;&lt;br&gt;
Your team could switch from Slack to Teams, you’ll move away from WebStorm to VSCode, you change job and the new company uses Linear instead of Jira, Outlook instead of Gmail…&lt;/p&gt;

&lt;p&gt;Every time, it will mean that you will have to learn new shortcuts again. &lt;strong&gt;These changes don’t occur very often, so it is acceptable.&lt;/strong&gt; After all, you spend most of your day using these applications so the investment on learning how to use them efficiently is worth it.&lt;/p&gt;

&lt;p&gt;There are however a lot of tasks (you may not yet realize it) you can perform outside those applications.&lt;/p&gt;

&lt;p&gt;What if I told you that you can invest time in learning how to reduce friction:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;for your most common tasks&lt;/li&gt;
&lt;li&gt;in a way that is gradually adoptable in your current workflow&lt;/li&gt;
&lt;li&gt;with the ability to improve continuously without ever restarting from scratch&lt;/li&gt;
&lt;li&gt;… for the rest of your career (and your life)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;This is exactly what your terminal allows.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You’ll be able to achieve a wide range of tasks thanks to the ecosystem of tools embracing a simple yet powerful philosophy: &lt;strong&gt;the Unix philosophy!&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  The Unix philosophy
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Write programs that do one thing and do it well.&lt;br&gt;
Write programs to work together.&lt;br&gt;
Write programs to handle text streams, because that is a universal interface.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The &lt;a href="https://en.wikipedia.org/wiki/Unix_philosophy"&gt;Unix philosophy&lt;/a&gt; is a set of guidelines that emphasizes simplicity, modularity, and the use of small, specialized tools that can be combined to perform complex tasks.&lt;br&gt;
It encourages the use of plain text for data storage and communication, and favors the use of pipes and filters to process data.&lt;/p&gt;

&lt;p&gt;It offers a number of benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;flexibility&lt;/strong&gt;: text streams can be manipulated in many different ways. It removes the barrier of what you can do. You’ll be able to combine small simple programs together, in order to achieve exactly what you want to do, and make it more complex if needed. A “pipeline” of commands is also more resilient to changes: if data, source or process change you can adapt by changing only one “step”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;improved efficiency&lt;/strong&gt;: automate things or find information by typing a command in your terminal is often faster than navigating in an application and going through several screens and forms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;greater control over your data&lt;/strong&gt;: manipulating text allows you to interact with lots of systems and APIs, you’re not locked-in a specific vendor and can create bridges between most of your tools… as soon as you can get data in a textual format (i.e: output a list of files, get data from an API call, output Git history as text…)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;portability&lt;/strong&gt;: these tools are widely available on different systems. Your skills and knowledge are valid in different contexts: you can use them on servers, on your current laptop… and the next ones.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By focusing on small, specialized tools that can be combined in different ways, you can tailor your daily environment to your specific needs and preferences.&lt;/p&gt;

&lt;p&gt;Over time, you’ll bring new tools or change some of them without having to learn everything again.&lt;/p&gt;

&lt;p&gt;You’ll improve your environment and adapt practices &lt;strong&gt;incrementally and continuously&lt;/strong&gt;, as you make complex tasks easier to perform or automate repetitive processes. Weeks after weeks, you’ll work more efficiently.&lt;/p&gt;
&lt;h2&gt;
  
  
  OK, I’m sold! What’s next?
&lt;/h2&gt;

&lt;p&gt;Great! I’m glad that you want to reduce friction in your daily activities.&lt;br&gt;
&lt;strong&gt;I suggest that you start now, with baby steps.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Be aware of your hand position at every time, and learn to detect when your fingers are about to leave your keyboard. &lt;strong&gt;That’s the trigger!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever this trigger occurs, stop and start asking yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what was I about to do?&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;is it possible to achieve this without leaving the keyboard?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;search in your application “Keyboard shortcuts” help page&lt;/li&gt;
&lt;li&gt;search on internet&lt;/li&gt;
&lt;li&gt;… or ask ChatGPT!
Here is a prompt you can use as a base:&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;I want you to act like a Unix user, and explain each tool individually.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q:&lt;/strong&gt; how would you get the content from a JSON URL (&lt;a href="https://dummyjson.com/users"&gt;https://dummyjson.com/users&lt;/a&gt;) and filter the first five "names" starting with a "S", sorting them alphabetically and outputting them as uppercased text in a file in the &lt;code&gt;/tmp&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A: let's think step by step&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;After a few trial/errors you could end up with this one-liner:&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://dummyjson.com/users | jq &lt;span class="nt"&gt;-r&lt;/span&gt; &lt;span class="s1"&gt;'.users[] | select(.lastName | startswith("S")) | .lastName'&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; | &lt;span class="nb"&gt;tr&lt;/span&gt; &lt;span class="s1"&gt;'[:lower:]'&lt;/span&gt; &lt;span class="s1"&gt;'[:upper:]'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; /tmp/names.txt
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;
&lt;li&gt;&lt;p&gt;try to do it with a shortcut or a command, and note it down to try to remember it next time. You can also use &lt;a href="https://quickref.me/"&gt;cheat sheets&lt;/a&gt; (I personally started with physically printed cheat sheets on my desk!).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll be surprised to see how many shortcuts exist in the tools you already use, and you will start discovering terminal commands or new programs&lt;/p&gt;

&lt;p&gt;This article is already long enough. In a future article I’ll go through some of the shortcuts and commands I use on a daily (hourly?) basis.&lt;/p&gt;

&lt;p&gt;Follow this space!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Front-Commerce is getting a Remix</title>
      <dc:creator>Pierre Martin 💿</dc:creator>
      <pubDate>Tue, 21 Mar 2023 10:24:00 +0000</pubDate>
      <link>https://dev.to/front-commerce/front-commerce-is-getting-a-remix-njh</link>
      <guid>https://dev.to/front-commerce/front-commerce-is-getting-a-remix-njh</guid>
      <description>&lt;p&gt;We are thrilled to announce that we’re &lt;em&gt;Remixing&lt;/em&gt; Front-Commerce!&lt;/p&gt;

&lt;p&gt;As you may already know, our goal for 2023 is to significantly enhance the developer experience and web performance of Front-Commerce projects. We aim to improve the Core Web Vitals of every storefront built with Front-Commerce and &lt;strong&gt;achieve the best performance in the market&lt;/strong&gt;. This will benefit both merchants and their customers.&lt;/p&gt;

&lt;p&gt;To achieve this, we have decided to adopt new foundations for our product. These foundations will be based on &lt;strong&gt;&lt;a href="https://remix.run/"&gt;Remix&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;We are excited about the possibilities this new version brings, and we hope you will love using it!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Remix?
&lt;/h2&gt;

&lt;p&gt;Let’s start with the Remix homepage description:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Remix is a full stack web framework that lets you focus on the user interface and work back through web standards to deliver a fast, slick, and resilient user experience. People are gonna love using your stuff.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Remix is an open source framework created by Ryan Florence and Michael Jackson, well known in the React ecosystem for maintaining React Router, the most widely used routing library for React.&lt;/p&gt;

&lt;p&gt;The company supporting the Remix core team’s activities &lt;a href="https://shopify.engineering/remix-joins-shopify"&gt;was acquired in October 2022 by Shopify&lt;/a&gt;, and Remix is now used as foundations for Shopify’s Hydrogen framework. This acquisition and actions taken since the merger makes us confident in Remix’s open source future. We’re glad to be part of this community and contribute to the project too!&lt;/p&gt;

&lt;p&gt;As we write this announcement, Remix is only compatible with React. Based on React Router primitives, &lt;strong&gt;Remix adds support for everything involving a network request between a client and a server:&lt;/strong&gt; SSR, client side navigation, forms, sessions, cookies…&lt;/p&gt;

&lt;p&gt;It also provides a compiler and a development server aiming to provide a top-notch Developer Experience, fast builds and optimized production bundles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Remix?
&lt;/h2&gt;

&lt;p&gt;We have been closely following the space of JS full-stack frameworks since our first version in 2016, and Front-Commerce's primitives were inspired by several of them. While Next.js has become the most widely used framework, we found that Remix is a simple yet efficient framework that aligns perfectly with our vision for web applications. Let me explain its most important features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Web standards and progressive enhancement
&lt;/h3&gt;

&lt;p&gt;Remix is focused on web standards. It doesn’t reinvent them.&lt;/p&gt;

&lt;p&gt;This is a Progressive Web Application’s essence: to deliver a web application that works and leverage Web APIs to improve the user experience by making it reliable and more capable.&lt;br&gt;
Remix adheres to these principles and progressively enhances applications with JavaScript, while ensuring that idiomatic Remix applications can also work without any JavaScript executed in the browser!&lt;br&gt;
Front-Commerce will remain a SPA for now, but a side effect of using Remix is the ability to allow MPA use cases (without client-side Javascript) in the future.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Our vision with Front-Commerce is to ensure your frontend will last. Web APIs don’t change.&lt;/strong&gt; Being based on standard Web APIs means that we’re writing code that could last for decades. Even if Remix disappears, having APIs designed around standards ensures greater portability.&lt;/p&gt;

&lt;p&gt;We also believe that it improves the developer experience. The industry (cloud providers, frameworks, libraries) is moving towards shared primitives based on these standards. We are confident that, in the next few years, more and more people will be accustomed to the use of these standard APIs.&lt;br&gt;
Developers will thus more easily understand how to use Front-Commerce and could leverage a wider ecosystem of libraries in their applications.&lt;/p&gt;

&lt;p&gt;Ultimately, another benefit of this approach is that it leads to less code being shipped in the browser which greatly improves performance!&lt;/p&gt;

&lt;h3&gt;
  
  
  Simplicity
&lt;/h3&gt;

&lt;p&gt;One can learn Remix within a few hours. Its API is small, and already influenced several frameworks in our industry. We believe that most frontend developers will be familiar with the concept of &lt;em&gt;routes&lt;/em&gt;, &lt;em&gt;loaders&lt;/em&gt; and &lt;em&gt;actions&lt;/em&gt; in the future. With a better knowledge of web standards too, developers will feel at home when using Front-Commerce.&lt;/p&gt;

&lt;p&gt;We really hope that &lt;em&gt;Remixing&lt;/em&gt; Front-Commerce will make it &lt;strong&gt;a more natural and pleasant tool to use on a daily basis to build eCommerce projects&lt;/strong&gt;. We’re also taking this as an opportunity to rework some of our own APIs to embrace the Remix philosophy, and have simpler primitives where possible.&lt;/p&gt;

&lt;p&gt;Using Remix means that we can remove a lot of code from our codebase! With less code to maintain, and less stuff to document, we will have more time to focus on our core value proposition: &lt;strong&gt;enabling developers to build fully customized, composable storefronts leveraging every feature from best-of-breed technologies.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Edge-first
&lt;/h3&gt;

&lt;p&gt;Another advantage of Remix is that it is edge-first, yet server-agnostic.&lt;/p&gt;

&lt;p&gt;Front-Commerce has always been a node/express application, and Front-Commerce Remixed will remain focused on this environment in its first version.&lt;/p&gt;

&lt;p&gt;The web platform evolves, and so does the hosting ecosystem. Edge computing is gaining popularity for good reasons, and you can be sure that we’ll keep an eye (and more) on this. We’re excited to be able to investigate new deployment targets such as Deno Deploy, Architect, Cloudflare, Fastly, Netlify, Vercel, Fly.io among others.&lt;/p&gt;

&lt;p&gt;Using Remix as our new foundation will allow us to explore this area without breaking changes!&lt;/p&gt;

&lt;h3&gt;
  
  
  A (far) future without React?
&lt;/h3&gt;

&lt;p&gt;Remixing Front-Commerce allows us to remove many external dependencies from the client-side bundle. We were able to replace Formsy with Remix’s Form, Apollo Client with Remix’s loaders/actions and many more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React is now the main external JS dependency of our bundle (in terms of size)&lt;/strong&gt;, and in our mission to provide the best web performance on the market we know that it could be our next bottleneck.&lt;/p&gt;

&lt;p&gt;Choosing Remix and betting on web standards allows us to reduce our dependency on React. While we still think that JSX is a good abstraction and are happy with the React library, we're also excited about innovations in frontend frameworks over the past few years.&lt;/p&gt;

&lt;p&gt;In a near future, &lt;a href="https://github.com/remix-run/remix/discussions/4562"&gt;Remix will very likely be compatible with Preact&lt;/a&gt; (a smaller and faster React alternative) and you can be sure that we’ll be one of the first to play with this.&lt;/p&gt;

&lt;p&gt;We aim for Front-Commerce projects to outlast frontend libraries. While it's impossible to predict which library will become "the next React", we see many promising technologies emerging, such as Qwik, Solid, Million, Lit, and WebC (among others). These technologies are challenging the current status quo.&lt;/p&gt;

&lt;p&gt;By choosing Remix as our new foundation, we can reduce our dependency on React (while Next.js is becoming even more tied to this library). This is a first step towards a possible future without React that is accessible to all Front-Commerce projects, without the need to throw years of work away!&lt;/p&gt;

&lt;h3&gt;
  
  
  A growing community
&lt;/h3&gt;

&lt;p&gt;Remix is an open source framework with a community of developers who are dedicated to web standards and simplicity.&lt;/p&gt;

&lt;p&gt;This community is friendly and supportive, and we want to contribute as much as we can to it. We’ll be happy to participate in conferences, make code contributions, engage with the community on Discord, and more. If you are part of this community, don’t hesitate to get in touch with us!&lt;/p&gt;

&lt;p&gt;The popularity of Remix is growing, with more and more developers using it to build their projects. We’re doing our best to ensure that Front-Commerce is an idiomatic Remix app that will make developers feel at home, and could also help to learn how to structure bigger apps with Remix.&lt;/p&gt;

&lt;p&gt;We also had discussions with our partners and teams interested in Front-Commerce over the past few months, and we have found that most (if not all) of them are excited about Remix and our choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  What else does this new version bring?
&lt;/h2&gt;

&lt;p&gt;We will not go into too much detail in this article and will be publishing dedicated articles in the next few weeks about these topics.&lt;/p&gt;

&lt;p&gt;The key information to keep in mind is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Front-Commerce specific concepts (and code) remain unchanged.&lt;/li&gt;
&lt;li&gt;This version is focused only on technical aspects (such as "plumbing", Remix, better primitives...), and has feature parity (it won't add new features or remove any).&lt;/li&gt;
&lt;li&gt;We’ve taken this opportunity to remove code that has been deprecated since our latest major version (4 years ago!).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  GraphQL on the server
&lt;/h3&gt;

&lt;p&gt;Remix will replace Front-Commerce's "middle stack," including routing, server-side rendering (SSR), and HTTP interactions. This means that GraphQL queries and mutations will now take place only on the server, respectively in Remix's loaders and actions.&lt;/p&gt;

&lt;p&gt;This is great for web performance because it allows the removal of a major frontend dependency from the bundle: Apollo Client. By default, Front-Commerce will not use any client-side GraphQL queries and will instead use Remix loaders, actions, and fetchers.&lt;/p&gt;

&lt;p&gt;However, this does not mean we are giving up on GraphQL. In fact, &lt;strong&gt;GraphQL is great for composable commerce because it allows a unified view of all your data, independent of the platform or service used&lt;/strong&gt;. This enables progressive migration use cases and ensures that a Front-Commerce project can outlive many replatformings.&lt;/p&gt;

&lt;p&gt;Front-Commerce still allows you to expose your GraphQL API to the web if desired. Although it is not the default, it could be useful if you have other applications using it or want to migrate some parts of your application progressively at your own pace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Full-stack typing with TypeScript
&lt;/h3&gt;

&lt;p&gt;Over the past few years, the JavaScript ecosystem has adopted TypeScript, and many tools have added first-class TypeScript support. This has led to massive improvements in developer experience (DX).&lt;/p&gt;

&lt;p&gt;In the Front-Commerce core, we have gradually introduced typing over the years (with JSDoc for backwards compatibility). With this new version, we are taking this to a whole new level.&lt;/p&gt;

&lt;p&gt;Front-Commerce combines Remix, &lt;a href="https://the-guild.dev/graphql/codegen"&gt;GraphQL Code Generator&lt;/a&gt;, and your custom GraphQL schema to provide a perfect setup that improves both the DX and safety of your applications.&lt;/p&gt;

&lt;p&gt;TypeScript has become a core component of a Front-Commerce project, but we want to ensure that it can be incrementally adopted. You can keep using &lt;code&gt;*.js&lt;/code&gt; (or &lt;code&gt;*.jsx&lt;/code&gt;) files or rename/create &lt;code&gt;*.ts&lt;/code&gt; (or &lt;code&gt;*.tsx&lt;/code&gt;) files to leverage this new feature.&lt;/p&gt;

&lt;h3&gt;
  
  
  Composability with a New Extension API
&lt;/h3&gt;

&lt;p&gt;Front-Commerce projects are modular by nature. Integrators can create applications by combining different features and integrations provided by Front-Commerce, allowing them to quickly get up to speed.&lt;/p&gt;

&lt;p&gt;Since 2016, we have consistently increased our feature coverage and supported services. We have added many extension points based on real use cases from our customers.&lt;/p&gt;

&lt;p&gt;Front-Commerce enhances Remix by providing a consolidated API that can be used to register extensions, which can improve your eCommerce project in many different ways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GraphQL modules that extend or customize the GraphQL schema&lt;/li&gt;
&lt;li&gt;New routes, themes, and overrides&lt;/li&gt;
&lt;li&gt;Payment methods and components&lt;/li&gt;
&lt;li&gt;Analytics plugins&lt;/li&gt;
&lt;li&gt;...and many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are also turning our core repository into a Monorepo and using this Extension API ourselves to distribute every &lt;code&gt;@front-commerce/*&lt;/code&gt; package as a Front-Commerce extension that can be added to a standard Remix app!&lt;/p&gt;

&lt;h2&gt;
  
  
  What About Existing Front-Commerce Projects?
&lt;/h2&gt;

&lt;p&gt;When we say that a Front-Commerce project will last, we are serious about it. The first Front-Commerce projects went live in 2018 and are regularly updated to our latest version. We want to keep it that way.&lt;/p&gt;

&lt;p&gt;We are not throwing away all of our codebase (or yours). We are only changing the foundations that we have maintained for you over the years.&lt;/p&gt;

&lt;p&gt;For this reason, the new version includes specific features that target existing Front-Commerce projects to ensure a smooth migration path:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Codemods that will automatically convert your code to remove most of the tedious work (new import paths, etc.)&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;@front-commerce/compat&lt;/code&gt; extension that you can use if you have highly customized React components or pages that you do not want to rework immediately&lt;/li&gt;
&lt;li&gt;Dedicated documentation with a migration guide that will contain all the details&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Remixing your Front-Commerce application should take days, not weeks. We are accepting the challenge!&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Is it ready?
&lt;/h2&gt;

&lt;p&gt;We have been diligently iterating on this &lt;em&gt;remix&lt;/em&gt; over the past few months. We are now excited to share it with you as early as possible so that we can improve this new version based on &lt;strong&gt;feedback from the field&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The first alpha versions will be released very soon, and the first Front-Commerce Remixed projects will go into production in a few months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your next Front-Commerce project can start with this new version, and you will be able to migrate your existing projects in production later this year.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We are thrilled to embark on this new journey with Remix! We invite all Front-Commerce developers to embrace this change with us and welcome new teams aboard.&lt;/p&gt;

&lt;p&gt;As always, we are available to discuss this further and will share more details with you over the next few months. Happy remixing!&lt;/p&gt;

</description>
      <category>react</category>
      <category>graphql</category>
      <category>typescript</category>
      <category>remix</category>
    </item>
  </channel>
</rss>
