<?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: Sean Zubrickas</title>
    <description>The latest articles on DEV Community by Sean Zubrickas (@zubricks).</description>
    <link>https://dev.to/zubricks</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%2F957422%2F93197664-f45b-4f29-ad51-e80a9d5b76dc.jpeg</url>
      <title>DEV Community: Sean Zubrickas</title>
      <link>https://dev.to/zubricks</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zubricks"/>
    <language>en</language>
    <item>
      <title>Launch Week Day 5 - Replace Shopify in Your Headless CMS Stack</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Fri, 07 Apr 2023 17:09:37 +0000</pubDate>
      <link>https://dev.to/payloadcms/launch-week-day-5-replace-shopify-in-your-headless-cms-stack-16m</link>
      <guid>https://dev.to/payloadcms/launch-week-day-5-replace-shopify-in-your-headless-cms-stack-16m</guid>
      <description>&lt;h2&gt;
  
  
  To wrap up our second launch week, we're releasing our Ecommerce starter kit. It demonstrates the strength of Payload and how it can be used to power much more than simple website content.
&lt;/h2&gt;

&lt;p&gt;Today, the typical custom ecommerce build workflow is to combine a headless CMS with an ecommerce vendor like Shopify or Medusa. I refuse to discuss Woocommerce so ... you're welcome. We've built projects like that in the past, and while doable, you start to have a kaleidoscope of different vendors / functions / API requests / spaghetti.&lt;/p&gt;

&lt;p&gt;One of the big takeaways from this week's launches is that we want to start to see the web get simpler, not more complex. We want to promote efficiency and reduce the time it takes for developers to build products, and from our own experience, building anything custom with ecommerce is quite the nightmare in today's ecosystem.&lt;/p&gt;

&lt;p&gt;Let's take Sanity and Shopify for example (a popular combination for custom ecommerce). Is it strange to you that both platforms can manage content, but you still need both platforms regardless, even though there's a lot of overlap?&lt;br&gt;
Let's consider an MVP ecommerce build. If you combine Shopify and Sanity, you're really only leveraging Shopify for a few aspects of your MVP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your cart&lt;/li&gt;
&lt;li&gt;The checkout experience&lt;/li&gt;
&lt;li&gt;Processing payments&lt;/li&gt;
&lt;li&gt;Customer authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you leverage these parts of Shopify, and then manage content in Sanity, here's how the workflow will look.&lt;/p&gt;

&lt;h3&gt;
  
  
  From the engineering perspective
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fetch data from Shopify for pricing, product meta, attributes, etc.&lt;/li&gt;
&lt;li&gt;Fetch product landing page content from Sanity&lt;/li&gt;
&lt;li&gt;Combine the two into product landing pages / archives&lt;/li&gt;
&lt;li&gt;Manage separate environments for dev / stage / prod in both Sanity and Shopify, and then somehow keep them in sync&lt;/li&gt;
&lt;li&gt;Create accounts for customers in Shopify, and build the cart from Shopify&lt;/li&gt;
&lt;li&gt;In the cart, merge product meta from Shopify with whatever content is necessary from Sanity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not too bad really. Halfway to microservices hell, but it's doable. We've done similar many times before. But now let's think about it from the marketing / business perspective.&lt;/p&gt;

&lt;h3&gt;
  
  
  From the marketing / business perspective
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;I need to add a new product. What do I do first? Build the product in Shopify, then go build the landing page in Sanity?&lt;/li&gt;
&lt;li&gt;Where do I manage product prices again? That's done in Shopify.&lt;/li&gt;
&lt;li&gt;Where do I manage the product thumbnail image? That's content, right? So Sanity. Wait, no, that's done in Shopify.&lt;/li&gt;
&lt;li&gt;I need to add a new attribute to a product. It needs a description. Content, right? OK - probably sanity. Wait. Nope, that's product meta. Gotta do that in Shopify.&lt;/li&gt;
&lt;li&gt;Rage due to confusion&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  This is harder than it needs to be
&lt;/h3&gt;

&lt;p&gt;When my team built projects like this in the past, frankly they didn't turn out great. We had a hard time ourselves bringing in new devs to the code because it was all a network of inter-connected mysteries. If it's remotely hard for engineers, it's certainly going to be hard for the admin end-users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;But there's a better way. Payload offers so much more than a typical SaaS CMS, which makes this all significantly easier. Let's look at the following examples.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Payload gives you authentication&lt;/li&gt;
&lt;li&gt;You own your APIs and your database so you can write hooks to sync product meta automatically&lt;/li&gt;
&lt;li&gt;You can integrate a payments provider like Stripe seamlessly&lt;/li&gt;
&lt;li&gt;You can use Stripe webhooks thanks to the fact that you can open your own endpoints (on your own server)&lt;/li&gt;
&lt;li&gt;You can do literally ALL product management directly in one place (Payload)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Payload can eliminate Shopify from the mix entirely. Replace Shopify with Stripe, and then you have literally zero overlap between the platforms.&lt;/p&gt;

&lt;p&gt;When an admin logs in to manage products, everything is directly in Payload. When an engineer goes to build a new feature, everything is directly in Payload.&lt;/p&gt;

&lt;h3&gt;
  
  
  Announcing our Ecommerce Starter Kit
&lt;/h3&gt;

&lt;p&gt;Today, we're officially announcing our &lt;a href="https://github.com/payloadcms/template-ecommerce" rel="noopener noreferrer"&gt;Ecommerce starter kit&lt;/a&gt; which gives you everything you need to get an ecommerce store up and running instantly with Payload + NextJS. Oh, and it's completely free and open-source.&lt;/p&gt;

&lt;p&gt;No Shopify necessary. No microservices hell. You can even instantly deploy the starter to Payload Cloud, which hooks you up with everything you need to run in production.&lt;br&gt;
With this starter, you get all of the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Deep integration with Stripe, including automatic two-way sync via Stripe webhooks&lt;/li&gt;
&lt;li&gt;Manage content for your entire ecommerce store in one place&lt;/li&gt;
&lt;li&gt;Next.js frontend ready to go with products, attributes, pricing, and more&lt;/li&gt;
&lt;li&gt;Customer authentication built with Payload and tied automatically to Stripe customers&lt;/li&gt;
&lt;li&gt;Shopping cart out of the box&lt;/li&gt;
&lt;li&gt;Lots, lots more&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  This is specifically cool for agencies
&lt;/h3&gt;

&lt;p&gt;Coming from an agency background, I share many of the struggles that engineers in an agency face.&lt;/p&gt;

&lt;p&gt;Each project you take on is subtly different, and you might find yourself scrambling to find the perfect tech stack for each one. You can quickly end up managing a smattering of products, each with entirely different stacks.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Project A needs a simple donation form, so let's go with Contentful and a simple Stripe payment form&lt;/li&gt;
&lt;li&gt;Project B needs to sell licenses to a digital product, so let's use Sanity and Shopify for licensing and digital downloads&lt;/li&gt;
&lt;li&gt;Project C is just a brochure marketing site, so let's use Webflow&lt;/li&gt;
&lt;li&gt;Project D is an enterprise site, so let's use Contentstack&lt;/li&gt;
&lt;li&gt;Project E has subscriptions, so let's build a custom backend with Laravel and use Stripe Subscriptions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each one of these projects will be a learning experience and your engineering efficiency will suffer big time. And then fast forward a year—you have to onboard new engineers into these projects completely separately, and you'll end up with a bunch of engineers that never really understand any of the projects because they're all totally different. Revisit a project a few months later and you'll need to spend 2 days getting back up to speed with the mania that you built.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I think one of Payload's biggest shining points is that we can handle every single project in the list above. The fact that we're half application framework and half CMS is what enables all of this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In an agency setting, imagine if you could flatten your stack. What if each project could build off the last, seamlessly? What if you could write a feature, and then the next time a client comes asking for a similar feature, you literally just re-use what you already have, but bill them as if you had to build it?\&lt;/p&gt;

&lt;p&gt;That's the dream. And that's what we're trying to give you.&lt;/p&gt;

&lt;p&gt;This ecommerce kit is the beginning of lots more to come, but it's one that we're very excited about. It'll make you build better products, save money, and be happy with your engineering workflow to top it all off.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Give the new &lt;a href="https://github.com/payloadcms/template-ecommerce" rel="noopener noreferrer"&gt;ecommerce kit&lt;/a&gt; a shot today.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ecommerce</category>
      <category>webdev</category>
      <category>programming</category>
      <category>headless</category>
    </item>
    <item>
      <title>Launch Week Day 4 - The Future of Headless</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Fri, 07 Apr 2023 17:09:10 +0000</pubDate>
      <link>https://dev.to/payloadcms/launch-week-day-4-the-future-of-headless-453o</link>
      <guid>https://dev.to/payloadcms/launch-week-day-4-the-future-of-headless-453o</guid>
      <description>&lt;h2&gt;
  
  
  The tech ecosystem, especially frontend, changes at light speed. It gets overwhelming to try and keep up. But I kinda love change and I think it's once again time for change in the CMS world.
&lt;/h2&gt;




&lt;blockquote&gt;
&lt;p&gt;Don't wanna read this whole monologue? Then skip right to the good stuff. Spoiler alert, you can now &lt;a href="https://github.com/payloadcms/next-payload" rel="noopener noreferrer"&gt;deploy Payload serverlessly&lt;/a&gt; on Vercel within an existing NextJS app.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;a href="https://twitter.com/steventey" rel="noopener noreferrer"&gt;Steven Tey&lt;/a&gt; and I dove into the topics covered in this blog post on a livestream yesterday.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/TWkR-OPXKRU"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Back in ~2015, I was an early advocate for headless CMS because I wanted our agency to be able to use React for the frontends of the sites we built. I had a big pitch I'd give to my clients about the value of "headless" CMS, and they bit. But now we're taking a second to re-evaluate that pitch.&lt;/p&gt;

&lt;p&gt;In my pitches, I would fire off the benefits of headless CMS, focusing on ideas like separation of concerns, more maintainable architecture, and the ability to deliver omnichannel content from a single source of truth.&lt;/p&gt;

&lt;p&gt;But in retrospect, I had to gloss over the unfortunate side-effects of headless. The simple fact is that I was pushing my technical agenda on our clients simply because I wanted to use React. Granted, we built some killer stuff for our clients and React enabled that.&lt;/p&gt;

&lt;p&gt;Lots of the other upsides to headless CMS were true, for sure. A CMS should obviously be API-first nowadays. That's a given that doesn't even need to be stated anymore. But I can count on one hand the amount of times we used a headless CMS for OmNiChAnNeL content. Most all of our headless CMS builds were just used to power a single website. Actually reading about how some of the big headless CMS position themselves as thought leaders around decentralized / omnichannel / content hub / etc. just makes me laugh at this point.&lt;/p&gt;

&lt;p&gt;Anyway, our move to headless certainly posed struggles for us along the way, especially early on. Here's a few:&lt;/p&gt;

&lt;h3&gt;
  
  
  Keeping CMS changes in sync with the frontend
&lt;/h3&gt;

&lt;p&gt;When we'd update a content model on the CMS side, we'd need to very deliberately think about how to deploy all of our changes to the CMS at the exact same time as our changes to our frontend to minimize downtime and prevent breaking code.&lt;/p&gt;

&lt;p&gt;Doesn't matter if we used Contentful, Sanity, Wordpress, whatever—the CMS being separate meant that we had to orchestrate deployments with caution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sharing TypeScript types
&lt;/h3&gt;

&lt;p&gt;A good CMS (like Payload 😈) can generate TypeScript interfaces for you which could theoretically be re-used on your frontend. But, with the separation of the CMS and the frontend, you have a few equally bad options to share these types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manually copy / paste types from the CMS to the frontend repo&lt;/li&gt;
&lt;li&gt;Publish a third-party types package that can be leveraged for both backend and frontend (still need to copy / paste)&lt;/li&gt;
&lt;li&gt;Use a monorepo and get wild with scripts to automate your copy/pasting&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Rough edges to do with "preview"
&lt;/h3&gt;

&lt;p&gt;Back in the monolithic CMS days you'd log into your CMS and then browse around on your frontend. You'd have a nice little "admin bar" that was purpose-built to give connectivity to your frontend and your backend, but we've lost a lot of that with the move to headless.&lt;/p&gt;

&lt;p&gt;There are "headless" CMSs like Storyblok who give you a full frontend visual editor, but... is that still headless? Cool in any way you look at it for sure, but I question if a CMS can call itself "headless" if it literally gives you a preview environment for your website - the "head".&lt;/p&gt;

&lt;h3&gt;
  
  
  You need to have a strong engineering team
&lt;/h3&gt;

&lt;p&gt;Lots of the pushback I would hear from my clients, and rightfully so, is something like this:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What happens if you and your team go away? Will we be stuck with a beautiful engineering masterpiece with no one smart enough / cost-effective enough to work on it? If we use WordPress, we can grab a developer off the street that works for cheap."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This always reminded me of Ducatis. Beautiful machines, but RIP if you have to work on one. If you've got a crazy dev environment that has three separate services all combined, sharing code in separate NPM packages, the onboarding for a developer coming into the project is gonna be steep.&lt;/p&gt;

&lt;p&gt;Let's take a second to remember that we're doing this to ourselves. All for the sake of a website in most all cases.&lt;/p&gt;

&lt;h3&gt;
  
  
  It's time for things to get simpler
&lt;/h3&gt;

&lt;p&gt;Over the past quarter, the Payload team has been thinking about all of the above quite a bit. My thesis on the topic is that the whole web dev ecosystem perpetually swings back and forth from complexity to simplicity. Someone comes up with new tech, and it's complex, but worth it. And then people get tired of the complexity and want something simpler. And then someone makes it simpler. Repeat for the rest of our lives.&lt;/p&gt;

&lt;p&gt;I think right now we are swinging back toward simplicity. Case in point: I'm personally tired of manually solving for headless CMS "rough edges" if we're just building a simple website.&lt;/p&gt;

&lt;p&gt;Many of you already know that one of Payload's core pillars is simplicity. Is there a way that we can solve some of the above complexity issues with Payload?&lt;/p&gt;

&lt;h3&gt;
  
  
  Where we're going at Payload
&lt;/h3&gt;

&lt;p&gt;We envision a way to make Payload embeddable in just about any environment - be it an Express server, serverless functions, or edge functions. We want it to be portable so that you can install it within your website itself, no matter if your website is running Svelte, Next, Remix, Vue, Gatsby, whatever. If your environment can run Node, it should be able to run Payload.&lt;/p&gt;

&lt;p&gt;We want to promote simplicity once again. Building a website? Make it easy on yourselves, not harder. Install Payload in the same repo as your frontend. Share types, simplify dev ops, take some of the rocket science away.&lt;/p&gt;

&lt;p&gt;To realize this vision, the Payload team and I have dedicated much of the last few months to simplifying, streamlining, and modularizing our codebase so that it can be run directly in as many different types of projects as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  The first steps
&lt;/h3&gt;

&lt;p&gt;We've simplified our code so that the Payload Local API is as barebones as possible. No HTTP overhead, no GraphQL bloat, just Node methods that are strongly typed and hit your database directly. It's almost like an ORM but it gives you an admin panel as well. This allows you to bring Payload into any project, even if it's not Express-based.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Yesterday, we announced that you can now deploy &lt;a href="https://github.com/payloadcms/next-payload" rel="noopener noreferrer"&gt;Payload serverlessly&lt;/a&gt;, within an existing NextJS app, on Vercel. &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a first step, but it's a monumental shift from the "headless CMS" paradigm. You can now use Payload directly in Next server components to get strongly typed data, hitting your database directly, without any HTTP overhead. It's kinda like we're giving an optional "head" back to the headless CMS.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Here's a NextJS server component
const Page = async ({ params: { slug } }) =&amp;gt; {
  const payload = await getPayload();

  // Zero HTTP overhead - this doesn't hit a REST API,
  // it goes straight to your database
  const pages = await payload.find({
    collection: "pages",
    where: {
      slug: {
        equals: slug,
      },
    },
  });

  const page = pages.docs[0];

  if (!page) return notFound();

  return (
    &amp;lt;React.Fragment&amp;gt;
      &amp;lt;AdminBar adminBarProps={{ collection: "pages", id: page.id }} /&amp;gt;
      &amp;lt;Hero {...page.hero} /&amp;gt;
      &amp;lt;Blocks blocks={page.layout} /&amp;gt;
    &amp;lt;/React.Fragment&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Being able to deploy Payload within your app, wherever your app is running, will solve for basically all of the above complexities that I mentioned. It'll be faster, simpler, and require less black magic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Future goals
&lt;/h3&gt;

&lt;p&gt;We're going to keep chasing this idea of simplicity. In the future, you'll be able to do this for any type of app. It doesn't need to be React or even Next. Our goal is to let you install Payload wherever you need it, and simplify your stack.&lt;/p&gt;

&lt;p&gt;We're also already working on being able to deploy Payload within edge functions. We've got a bit of work to go on that, but it'll happen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Serverless not your thing? Can't deal with cold starts?
&lt;/h3&gt;

&lt;p&gt;Then you can combine Payload and NextJS into a &lt;a href="https://github.com/payloadcms/nextjs-custom-server" rel="noopener noreferrer"&gt;single server-based repo&lt;/a&gt; as well. You can even &lt;a href="https://payloadcms.com/blog/launch-week-day-1-payload-cloud-is-here" rel="noopener noreferrer"&gt;deploy it on Payload Cloud.&lt;/a&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  There are edge cases, of course
&lt;/h3&gt;

&lt;p&gt;I've been going on about how most people always deploy CMS in a website, blah blah. But that doesn't mean that Payload is going to lose track of our API-based DNA. There are lots of cases where deploying a CMS separately will still be the move, and any CMS should have omnichannel capabilities nowadays via REST / GraphQL / etc. no matter where or how it's deployed. I just think that is a given at this point.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;It's time the headless CMS paradigm moved back toward simplicity. With our launch of the &lt;code&gt;next-payload&lt;/code&gt; package, we're taking an important first step towards restoring simplicity.&lt;/p&gt;

&lt;p&gt;I'm not sure of what the word should be that describes what I'm trying to get to but I hate coining new words for obvious concepts.&lt;/p&gt;

&lt;p&gt;Some other CMS use the word "composable", but I feel like that's obvious if you're working with an API-based CMS. But what is true composability? Microservice / SaaS hell? Yes, let me go sign up for a SaaS CMS, then go sign up for a forms provider, then go sign up for Hubspot, then go sign up for a mail service, and then deploy my site on Next / Vercel. All just for a website? I don't care how big the site is, that doesn't sit right with me. Actually that makes me kinda want to puke.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let's fix the complexities inherent with headless CMS and see how far we can take this idea of simplicity. Let's make our jobs easier. That'll allow us to deliver better products.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>webdev</category>
      <category>headless</category>
      <category>serverless</category>
      <category>cms</category>
    </item>
    <item>
      <title>Launch Week Day 3 - Bulk Operations</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Wed, 05 Apr 2023 14:23:52 +0000</pubDate>
      <link>https://dev.to/payloadcms/launch-week-day-3-bulk-operations-6lp</link>
      <guid>https://dev.to/payloadcms/launch-week-day-3-bulk-operations-6lp</guid>
      <description>&lt;h2&gt;
  
  
  The long awaited new feature lets editors edit, delete and publish many documents of a collection all at once.
&lt;/h2&gt;

&lt;p&gt;We’ve improved the editor experience by adding selection in the collection list view and new controls to Edit, Delete, and if drafts are enabled, Publish, and Unpublish. We also added API endpoints to handle the changes and also extended the local API for programmatic access. The new features are available in v1.6.24 and later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Delete, Publish, Unpublish Many
&lt;/h3&gt;

&lt;p&gt;The workflow for these are all much the same, select a bunch of documents and go for it. You’ll get a prompt to make sure you are happy with your life choices before submitting. The changes are all handled in one request. After submitting, the UI shows the number of updated documents. If there are any errors that occur due to validation or any faults in a hook on the backend, the number of documents that didn’t get updated due to error is also shown. The results are more detailed in the HTTP response or local API for your apps to deal with.&lt;/p&gt;

&lt;h3&gt;
  
  
  Edit Many
&lt;/h3&gt;

&lt;p&gt;The editing experience for multiple documents in a collection allows the editor to choose which fields to update. You can access all fields within a nested structure with the field selector and input your changes before saving. Fields that are hidden, unique or read-only are not available, and you can also configure the admin.disableBulkEdit option to remove certain fields.&lt;/p&gt;

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

&lt;p&gt;When drafts are enabled for a collection, you also have the choice to publish or save as draft. That gives you three ways to submit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save updates the published document or most recent draft document in place without changing any statuses.&lt;/li&gt;
&lt;li&gt;Publish takes your changes, adds it to the most recent document version and publishes the results.&lt;/li&gt;
&lt;li&gt;Draft saves a draft version of your changes along with the most recent version of each document and does not affect what you currently have published.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Filter and Select All
&lt;/h3&gt;

&lt;p&gt;Instead of selecting individual rows in the list, an editor can select all documents in the list. The select-all option can be used with the existing search and filter options to only include all documents matching certain criteria. With this, the bulk edit, publish, unpublish and delete workflows will use the query to perform the operation against all the matching items.&lt;/p&gt;

&lt;h3&gt;
  
  
  API Changes
&lt;/h3&gt;

&lt;p&gt;The new functionality extends to the backend and local API as well. &lt;/p&gt;

&lt;p&gt;There are new REST endpoints for collections to allow for bulk delete and updates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PATCH /api/pages&lt;/li&gt;
&lt;li&gt;DELETE /api/pages
Each endpoint takes a query in the same form as a GET request would to make our changes against. The local APIs have also been extended to take either an id or where query.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const result = await payload.update({
      collection: 'posts',
      where: {
        id: { in: ids },
      },
      data: {
        title: 'Doc Title',
      },
    });

// result: 
// { 
//    docs: [{...}]
//    errors: []
// }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Try it out
&lt;/h2&gt;

&lt;p&gt;Update your own Payload project or head on over to the &lt;a href="https://demo.payloadcms.com" rel="noopener noreferrer"&gt;public demo&lt;/a&gt; and give it a shot.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>typescript</category>
      <category>cms</category>
    </item>
    <item>
      <title>Launch Week Day 2 - Community Help</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Tue, 04 Apr 2023 15:03:07 +0000</pubDate>
      <link>https://dev.to/payloadcms/launch-week-day-2-community-help-2l0g</link>
      <guid>https://dev.to/payloadcms/launch-week-day-2-community-help-2l0g</guid>
      <description>&lt;h2&gt;
  
  
  Being able to find solutions easily and leverage an active community all sharing knowledge together has a huge impact on both the quality of your code and the quality of your life.
&lt;/h2&gt;

&lt;p&gt;With this in mind, we’re excited to introduce our new &lt;a href="https://payloadcms.com/community-help" rel="noopener noreferrer"&gt;Community Help archive.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Community Help builds upon our active and supportive communities on Discord and GitHub. With over 500 resolved threads, there's a good chance that your question has been asked before, a similar issue has been encountered or a code example that you are looking for has been shared.&lt;/p&gt;

&lt;p&gt;But the problem up until now was that GitHub Discussions are terrible for SEO for some reason, and Discord help threads are locked behind needing to download yet another app. &lt;/p&gt;

&lt;p&gt;So to make this information way more accessible, we’re directly fetching all this data from Discord/GitHub and displaying it on the Payload website’s Community Help page. (p.s. don’t forget we are open source so feel free to check out how we did this!)&lt;/p&gt;

&lt;p&gt;To help you find what you need faster, we've integrated Algolia Search to index every question, answer, and comment. This lets you use keywords to search on any part of the thread so you won’t miss out on anything relevant. You can also view the thread directly in your browser without needing to visit or sign up for external sites.&lt;/p&gt;

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

&lt;p&gt;The first thing most of us do when we need help is turn to a search engine (i.e…. we bing it….just kidding). But when’s the last time you ever landed on a GitHub discussion from Google? Think about it… You might land on an issue, but rarely on a discussion. &lt;/p&gt;

&lt;p&gt;With all of our GitHub Discussions and Discord community help threads output as static pages in our NextJS site, over time, we’re also hoping to start to see way more results from the Payload community directly in your Google search results.&lt;br&gt;
This section of our site will continue to evolve and become more powerful as our archive of answers expands. &lt;/p&gt;

&lt;p&gt;We’re extremely grateful for our enthusiastic and engaging community and this would not be possible without them. A few of you are absolute maniacs about helping each other and we just want to take a second to say - - THANK YOU. &lt;/p&gt;

&lt;p&gt;Head over to the &lt;a href="https://payloadcms.com/community-help" rel="noopener noreferrer"&gt;Community Help page&lt;/a&gt; and let us know what you think!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>github</category>
      <category>discord</category>
    </item>
    <item>
      <title>Launch Week Day 1 - Payload Cloud is here</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Tue, 04 Apr 2023 15:01:21 +0000</pubDate>
      <link>https://dev.to/payloadcms/launch-week-day-1-payload-cloud-is-here-563f</link>
      <guid>https://dev.to/payloadcms/launch-week-day-1-payload-cloud-is-here-563f</guid>
      <description>&lt;h2&gt;
  
  
  &lt;a href="https://payloadcms.com/cloud" rel="noopener noreferrer"&gt;Payload Cloud&lt;/a&gt; is now available, and completely free through beta (July 1). It's by far the most seamless way to deploy Payload for production.
&lt;/h2&gt;

&lt;p&gt;If you browse through our &lt;a href="https://t.co/30APlsQUPB" rel="noopener noreferrer"&gt;Discord community help&lt;/a&gt; forums, a big slice of the questions people ask are around deployment-related issues. &lt;/p&gt;

&lt;p&gt;We want to make it easier for those of you that don't want to deal with that racket (me included). Of course, Payload will always be open-source and able to be self-hosted, but starting today, you've got a better option.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is Cloud?
&lt;/h3&gt;

&lt;p&gt;Today, we're launching the public beta of &lt;a href="https://payloadcms.com/cloud" rel="noopener noreferrer"&gt;Payload Cloud&lt;/a&gt;. It's a deployment platform that works just like Vercel, but for regular Mongo + Express apps that run a server. Connect your GitHub repo and boom — we deploy everything you need for production instantly. It's not a SaaS CMS — instead, it's &lt;strong&gt;your&lt;/strong&gt; CMS, deployed for you. We just give you the plumbing.&lt;/p&gt;

&lt;p&gt;Every piece of infrastructure that we deploy — database, S3 storage, compute, email — is exposed to you, and you can do with it what you need. We just make it easy and tailor the experience to CMS-related expectations. No more vendor hell.&lt;/p&gt;

&lt;h4&gt;
  
  
  Everything is free until July 1
&lt;/h4&gt;

&lt;p&gt;We are releasing Cloud as a beta, and that means you get everything for free until July 1. We'll foot the infrastructure bills for you until then in exchange for you helping us ensure our infrastructure is solid.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Cloud gives you
&lt;/h2&gt;

&lt;p&gt;Even on the &lt;a href="https://payloadcms.com/cloud-pricing" rel="noopener noreferrer"&gt;smallest Standard tier&lt;/a&gt;, we've done the hard stuff for you. Out of the box, you get the following:&lt;/p&gt;

&lt;h3&gt;
  
  
  Cloudflare CDN
&lt;/h3&gt;

&lt;p&gt;Your app will sit behind Cloudflare which means that you get everything that Cloudflare provides, like DDoS protection, automatic SSL certificates, a global CDN with caching, and custom domain support.&lt;/p&gt;

&lt;p&gt;We've worked tirelessly with Cloudflare to even allow you to use &lt;strong&gt;apex&lt;/strong&gt; domains, which is rare. &lt;/p&gt;

&lt;p&gt;I should take a second here to shine some light on this.&lt;/p&gt;

&lt;p&gt;Have you ever tried to deploy an app to Heroku or DigitalOcean's App Platform on your root domain? Let's say, &lt;code&gt;example.com&lt;/code&gt; - NOT a sudomain like &lt;code&gt;www.example.com&lt;/code&gt;. With most DNS providers, you can't. That's because &lt;code&gt;example.com&lt;/code&gt; is an "apex" domain, and with most DNS providers, you need to point your apex domain to a static IP like a DigitalOcean droplet. So you're forced to jump through all sorts of hoops or just make a compromise.&lt;/p&gt;

&lt;p&gt;But with Payload Cloud, we've configured our Cloudflare implementation with static IP support — so if you want to deploy your CMS and your frontend together, and host it directly on an apex domain, Payload Cloud gives you a static IP to point your domain to.&lt;/p&gt;

&lt;h3&gt;
  
  
  MongoDB Atlas
&lt;/h3&gt;

&lt;p&gt;We work closely with Mongo and have partnered with them to automatically provision a database for you, running on Atlas. Payload Cloud allows you to rely on the Atlas platform's speed, stability, and scale instantly. Your database is yours. We give you the credentials. Do with it what you will.&lt;/p&gt;

&lt;h3&gt;
  
  
  S3 file storage
&lt;/h3&gt;

&lt;p&gt;Store your files on S3 with your own bucket access. Among other things, the new &lt;code&gt;@payloadcms/plugin-cloud&lt;/code&gt; package will handle storing all of your files on S3 seamlessly for you when deployed to Payload Cloud. As with Mongo Atlas, we give you the creds, and you can do what you want with your files. They're yours.&lt;/p&gt;

&lt;h3&gt;
  
  
  App layer with automatic deploys
&lt;/h3&gt;

&lt;p&gt;No more &lt;code&gt;pm2&lt;/code&gt;. No more push / pull to a DigitalOcean droplet. Just connect your repo, and automatically deploy your code on push. Manage environment variables, monitor runtime logs, and more completely out of the box.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploy your frontend, too
&lt;/h2&gt;

&lt;p&gt;I have a theory about the state and future of headless CMS. The "headless" concept came about because people wanted to bring their own frontend. Of course, the omnichannel content aspect of headless is great, but let's not kid ourselves—many of you are just powering the content for a single website / app.&lt;/p&gt;

&lt;p&gt;That's the funny thing about web development—the whole ecosystem is like a pendulum. It swings back and forth from complexity to simplicity and right now I think we're swinging back to simplicity. &lt;/p&gt;

&lt;p&gt;If the majority of us are all just powering websites with headless CMS, how about we allow ourselves to combine the frontend and backend again? The CMS can still be API-based and "headless", but if we could combine the two, we can regain some of the seamlessness that we had with monolithic solutions. It's more "composable" than "headless".&lt;/p&gt;

&lt;p&gt;That would allow us to once again do stuff like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build more efficiently and get our jobs done with less effort&lt;/li&gt;
&lt;li&gt;Deploy updates to the CMS and the frontend in tandem with each other&lt;/li&gt;
&lt;li&gt;More easily manage environments and feature sets&lt;/li&gt;
&lt;li&gt;Share TS interfaces from backend to frontend without having a third shared &lt;code&gt;utils&lt;/code&gt; NPM package or similar&lt;/li&gt;
&lt;li&gt;Build a better admin UX between frontend and backend using things like showing an "admin bar" while the user is logged in and browsing the frontend&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the coolest parts about Payload Cloud is that if you want, you can deploy your entire stack (CMS and frontend) directly on one service. You no longer need to deploy your CMS separately from your frontend if you don't want to. This can be huge for cases where you, as engineers, want to simplify and work as efficiently as possible.&lt;/p&gt;

&lt;p&gt;At its core, Payload Cloud is built to deploy Express + Mongo apps. Nothing more. So that means you can combine your Next + Payload apps directly in one and deploy it once. Put Remix and Payload in the same server. Run Sveltekit and Payload next to each other. Roll your own React frontend with Vite and deploy it seamlessly next to Payload.&lt;/p&gt;

&lt;p&gt;Make your job easier. There are lots of possibilities here.&lt;/p&gt;

&lt;p&gt;Through the rest of this week, we've got more announcements that make Payload able to be "composed" within your other apps, but this is definitely one of the side-effects of Payload Cloud that I'm most excited about.&lt;/p&gt;

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

&lt;p&gt;This is the very beginning for &lt;a href="https://payloadcms.com/cloud" rel="noopener noreferrer"&gt;Payload Cloud&lt;/a&gt;. Over the next few months until our exit from public Beta on July 1, we've got lots more coming.&lt;/p&gt;

&lt;h3&gt;
  
  
  Free tier
&lt;/h3&gt;

&lt;p&gt;First up, we want to launch our free tier. To do so, we need to keep working on how to reduce our own cost for this, because surprise surprise, there is no free lunch. Someone's paying for free stuff and it's gonna be us. We're happy to do so, because we want to make the developer experience for Payload as beautiful as possible. But we need to make sure that this is scalable and affordable, so we're going to try and revisit this as soon as we can.&lt;/p&gt;

&lt;h3&gt;
  
  
  Email out-of-the-box
&lt;/h3&gt;

&lt;p&gt;We're working with &lt;a href="https://resend.com/" rel="noopener noreferrer"&gt;Resend&lt;/a&gt; to give you a full, modern email service for every Cloud installation. This is almost done and will be a fast-follow to our beta launch today.&lt;/p&gt;

&lt;h3&gt;
  
  
  Programmatic CDN and purging
&lt;/h3&gt;

&lt;p&gt;We want give you a way to utilize Cloudflare's CDN for everything, programmatically, across your app + frontend. Even Payload API responses. In the future, the &lt;code&gt;@payloadcms/plugin-cloud&lt;/code&gt; package will automatically cache all applicable API responses, and will dynamically invalidate CDN cache when documents change. We'll also be exposing a way for you, as a developer, to programmatically purge CDN cache as you need.&lt;/p&gt;

&lt;h3&gt;
  
  
  On-demand backups
&lt;/h3&gt;

&lt;p&gt;Right now, MongoDB Atlas manages automated backups for you, so backups do exist out of the box already today. But we want to expose them to you via our UI, to allow you to manage and create your own backups at your discretion. We also want to extend the "backup" idea to connect to files as well, so that when you take a backup, or one is scheduled, we give you a tidy little package containing your DB and your files, ready to go for use somewhere else.&lt;/p&gt;

&lt;h3&gt;
  
  
  Environment management
&lt;/h3&gt;

&lt;p&gt;We're going to be releasing a full suite of environment management controls that will allow you to sync your DB and your files from project to project seamlessly. That will allow you to build multiple environments like &lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;stage&lt;/code&gt;, and &lt;code&gt;prod&lt;/code&gt;, while being able to seamlessly migrate files + data from one environment to another.&lt;/p&gt;

&lt;h3&gt;
  
  
  Usage monitoring UI
&lt;/h3&gt;

&lt;p&gt;We have usage monitoring and reporting on our side, but we want to build this into the admin UI so that you can be informed of your usage in a simple and consistent manner directly within the Payload Cloud UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  This is only the beginning
&lt;/h2&gt;

&lt;p&gt;Over time, Payload Cloud will continue to evolve to be the best way to deploy Express + Mongo apps. It's only going to get better from here, and we need your help in making it so.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ready to dive in?
&lt;/h2&gt;

&lt;p&gt;Deploy your app in minutes — &lt;a href="https://payloadcms.com/new" rel="noopener noreferrer"&gt;get started&lt;/a&gt; with Payload Cloud!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>Redirects in Payload — Retaining SEO Value and Avoiding 404s</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Wed, 08 Mar 2023 13:20:42 +0000</pubDate>
      <link>https://dev.to/payloadcms/redirects-in-payload-retaining-seo-value-and-avoiding-404s-23ed</link>
      <guid>https://dev.to/payloadcms/redirects-in-payload-retaining-seo-value-and-avoiding-404s-23ed</guid>
      <description>&lt;h3&gt;
  
  
  If you're re-platforming to Payload (hooray!) you need to have a proper approach for redirects in place to ensure a successful migration.
&lt;/h3&gt;

&lt;p&gt;Having bulletproof redirect functionality in place will ensure you retain your current SEO value on existing pages and avoid any 404s. Google (mainly) and other search engines have gotten much more strict about how they rank websites, specifically those that have 404s, or pages that lead to nowhere.&lt;/p&gt;

&lt;p&gt;Additionally, the marketing team has likely done a lot of work building up their SEO ranking, and it's extremely important to keep that in place after a migration.&lt;/p&gt;

&lt;p&gt;Surprisingly, many headless content management systems don't offer redirect functionality out of the box, and you're stuck with the hassle of building this yourself.&lt;/p&gt;

&lt;p&gt;We've been there, and that's exactly why we built our redirects plugin. It's easy for you to integrate and even easier for marketers or content managers to use which lets you focus on the rest of your project.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To make it easy to familiarize yourself with our redirects plugin, we've built an example with it already installed. Clone down the &lt;a href="https://github.com/payloadcms/payload" rel="noopener noreferrer"&gt;Payload repo&lt;/a&gt; if you haven't already, and look in the examples folder for redirects. There is a straightforward readme that will get you up and running in minutes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  For the purposes of this post, I've already got our redirects example up and running so let's dive in!
&lt;/h4&gt;

&lt;p&gt;As you can see in the screenshot below, the redirects plugin creates a new collection called Redirects, which is where you'll create and manage all of your redirects.&lt;/p&gt;

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

&lt;p&gt;Now, if you take a look at the example below, you'll see our payload.config is pretty straightforward. We have a pages collection, and when we go to setup our redirects we will have the ability to select documents from that collection.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import redirects from '@payloadcms/plugin-redirects'
import path from 'path'
import { buildConfig } from 'payload/config'

import { Pages } from './collections/Pages'
import { Users } from './collections/Users'
import { MainMenu } from './globals/MainMenu'

export default buildConfig({
  collections: [Pages, Users],
  cors: ['http://localhost:3000', process.env.PAYLOAD_PUBLIC_SITE_URL],
  globals: [MainMenu],
  typescript: {
    outputFile: path.resolve(__dirname, 'payload-types.ts'),
  },
  plugins: [
    redirects({
      collections: ['pages'],
    }),
  ],
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you click into one of the redirects you'll see two fields.  The fields themselves are pretty straightforward - you have a From URL field, which is the URL string that will be matched up against the requested path, and the To URL field, which is conditional, and provides the option to link to a custom URL or internal doc.&lt;/p&gt;

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

&lt;p&gt;The nice thing is that don't need to know all the ins and outs of how the plugin works, but we suspect you're going to dig around anyway and we're all for that.&lt;/p&gt;

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

&lt;p&gt;We understand that redirects aren't the most exciting thing in the world, but being able to simply drop this into your project will make things much easier. With our redirects plugin, you've got a solution for almost any scenario you'll be up against.&lt;/p&gt;

&lt;p&gt;I hope you found this post helpful and that you can start utilizing this powerful plugin for your Payload project. Cheers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learn More
&lt;/h3&gt;

&lt;p&gt;To learn more about the official redirects plugin, Payload CMS and Next.js, take a look at the following resources:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/payloadcms/plugin-redirects" rel="noopener noreferrer"&gt;Redirects Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://payloadcms.com/docs" rel="noopener noreferrer"&gt;Payload CMS Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/docs" rel="noopener noreferrer"&gt;Next.js Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://nextjs.org/learn" rel="noopener noreferrer"&gt;Learn Next.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Get Started
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;yarn add @payloadcms/plugin-redirects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Like what we're doing? Give us a star on GitHub
&lt;/h3&gt;

&lt;p&gt;We're trying to change the CMS status quo by delivering editors with a great experience, but first and foremost, giving developers a CMS that they don't absolutely despise working with. All of our new features are meant to be extensible and work simply and sanely. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/payloadcms/payload" rel="noopener noreferrer"&gt;Stop by GitHub&lt;/a&gt; and give us a star!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Announcing the Write for the Community Program</title>
      <dc:creator>Sean Zubrickas</dc:creator>
      <pubDate>Thu, 16 Feb 2023 12:41:43 +0000</pubDate>
      <link>https://dev.to/payloadcms/announcing-the-write-for-the-community-program-2i7m</link>
      <guid>https://dev.to/payloadcms/announcing-the-write-for-the-community-program-2i7m</guid>
      <description>&lt;h2&gt;
  
  
  Payload's Write for the Community program offers a unique opportunity to reward developers for contributing to an open-source project.
&lt;/h2&gt;

&lt;p&gt;Our community has been instrumental in the breadth of features we've added to Payload over the past few years. We'd like to keep that momentum going and make it a worthwhile endeavor for all involved. That's precisely why we created the Write for the Community program.&lt;/p&gt;

&lt;p&gt;The WFC program evolved from a handful of successful collaborations with a few of our contributors. This program will encourage developers and content creators to share their knowledge and expertise with the Payload community. By contributing articles, tutorials, and other types of content, participants can help make Payload more accessible, user-friendly, and feature-rich, and get rewarded in the process.&lt;/p&gt;

&lt;h3&gt;
  
  
  What's in it for me, exactly?
&lt;/h3&gt;

&lt;p&gt;Whether it's an article, repo, or both, we'll make it worth your while. Exact compensation will be determined by the value of the contribution. We're determined to expand our library of resources, and this program will help make that possible.&lt;/p&gt;

&lt;p&gt;In addition to the monetary rewards, you'll have the opportunity to showcase your skills and expertise, gain exposure, and build your professional network. By contributing to the Payload community, contributors can establish themselves as thought leaders and experts on Headless CMS and web development.&lt;/p&gt;

&lt;h4&gt;
  
  
  Read all about the program &lt;a href="https://payloadcms.com/write-for-the-community" rel="noopener noreferrer"&gt;here&lt;/a&gt;.
&lt;/h4&gt;




&lt;h3&gt;
  
  
  Like what we're doing? Give us a star on GitHub
&lt;/h3&gt;

&lt;p&gt;We're trying to change the CMS status quo by delivering editors with a great experience, but first and foremost, giving developers a CMS that they don't absolutely despise working with. All of our new features are meant to be extensible and work simply and sanely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/payloadcms/payload" rel="noopener noreferrer"&gt;Stop by GitHub and give us a star!&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Get up and running with one line
&lt;/h3&gt;

&lt;p&gt;Getting started with Payload is easy—and free forever. Just fire up a new terminal window and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx create-payload-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>news</category>
      <category>writing</category>
      <category>community</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
