Developer newsletter: The state of headless CMS and community resources
![An illustration of a person sitting with a newspaper with code written on its cover, a dog sitting at their heels.](https://images.ctfassets.net/fo9twyrwpveg/3btZ3AjphR4MRbWaWcYcDm/dba063e44fef84836d4d51d32702ec1a/BLOG_DevNewsletter_March.png?fm=jpg&q=90&w=1536)
Happy March, Contentful community!
I'd like to start this newsletter with a request. Last month, we spent some time revamping our awesome-contentful list on GitHub — it's a public collection of useful Contentful tools. We're looking for more shell scripts, apps, libraries, code starters and other utilities!
Can you think of projects that are valuable for the community? Let us know via Slack or Twitter. I’ll add them to awesome-contentful
Now, are you ready for new Contentful community resources? Let's jump in!
We code live!
Every Tuesday at 8:00 a.m. PT / 11:00 a.m. ET / 5:00 p.m. CET, our DevRel team and guests hang out on YouTube Live and Twitch to talk about GraphQL, Contentful tools and web development.Â
The last livestreams were all about IOT and the React Framework Next.js.
![Screenshot of a Contentful live coding session](https://images.ctfassets.net/fo9twyrwpveg/4DeijueqwDOVMIZ86Q45rp/d599fa6441718a9ae61b78b6a020255d/pasted_image_0__8_.png)
We also have exciting topics lined up for March:
March 9 – Next.js and incremental builds with Salma
March 16 – Intro to the Contentful App Framework with Felix Boenke
March 30 – Updating content models for whitep4nth3r.com with Salma
Follow us on Twitch and YouTube to get notified when we're going live.
Exciting things from the internet
How to make your code blocks accessible on your website
You might have noticed that our new team member Salma is a vivid streamer. Last week, she rebuilt her website with Next.js and took some time to share how she made her code blocks accessible.
How I cut GTA Online loading times by 70%
A fascinating journey of a developer reverse engineering "GTA Online" to find out that some performance bottlenecks are due to parsing large JSON files.
For React devs: Before You memo()
Too much rendering harms React application's performance. Dan Abramov shared some wisdom about performance optimization in React applications that don't include the usage of memoization (useMemo()
/memo()
).
Community
Highlights of the previous community hangout
We hosted two online community meetups for the Contentful community last month. We had five (!) guests sharing knowledge about what they're building. You can watch both editions online:
I love hanging out with everyone. Let me share two of the highlights that I enjoyed most.
![Screenshots of two online Contentful community hangouts](https://images.ctfassets.net/fo9twyrwpveg/N63YSdTt39aJZMBF6utrJ/3fee577c22bbe4fca737a007e206461a/pasted_image_0__9_.png)
Lee Robinson from Vercel shared some great insights on Web Vitals and how Next.js helps to achieve a green Lighthouse score (starts at 16min) and Ante Šepić shared what's new on ContentModel.io, a platform to view and share content models (start at 1h 15min).
Panel discussion on March 16:Â The state of headless CMS with me, Stefan Judis
![Screenshot of the State of Headless CMS panel discussion event on Modern Web](https://images.ctfassets.net/fo9twyrwpveg/6i1JXrsFjEsRvPA7O5YMQm/910c10bc871f3dc0ff6f8eae5ec877fd/pasted_image_0__10_.png)
March 16 (8:00 a.m. PT / 11:00 a.m. ET / 5:00 p.m. CET) our friends from This Dot are hosting a panel discussion with multiple headless CMS vendors. I'll be part of the conversation, and I'm sure there will be great stories about how developers are building with content APIs. Mark your calendars and find out more at moderndotweb.com.
Project of the month: gatsby-starter-contentful-console-ui
![Screenshot of page built with Gatsby started, project of the month in March 2021](https://images.ctfassets.net/fo9twyrwpveg/5BoZHNdV9bG4LPyTpEAPtk/19c96ae8b3d721fd0bf10fb036a9b7c3/pasted_image_0__11_.png)
Arturo Alviar released a new Gatsby starter. It comes with a setup script and integrates ChakraUI. If you're looking for a new blog setup, check this one out. Thank you, Arturo!
Contentful corner
awesome-contentful on GitHub
![A banner that reads Awesome Contentful with emojis and the Contentful logo on it](https://images.ctfassets.net/fo9twyrwpveg/50e5mT4tKXG0gCWoFBWdjA/831b885b9fefc435635f4e75ae0c4d8f/pasted_image_0__12_.png)
As we mentioned, we revamped our awesome list on GitHub and we'd love to add more tools and projects. It currently includes apps, starters and tooling — but we'd like to include more. If you built something on top of Contentful that's worth sharing, please answer this email or submit a pull request!
An app to generate Typescript types
![Screenshot of Contentful app that generates Typescript type](https://images.ctfassets.net/fo9twyrwpveg/23zgjnczdBVEGuXm8xTHp8/c2aad7ca0ed8953075870ba721577662/pasted_image_0__13_.png)
Marco Link built an app to generate and retrieve TypeScript types right in the Contentful UI. Install the app, copy the types and have fun!Â
But here’s the best thing: Marco's app relies on a separate package in case you want to automate type generation. I love it!
Contentful tip of the month: Unique fields
![Screenshot of a user enabling a unique field in the Contentful web app](https://images.ctfassets.net/fo9twyrwpveg/7bqOO1aGNTBefEDENeE5Il/3c78a676797d8f5909bd098229b3d1d0/pasted_image_0__14_.png)
Did you know that you can configure fields to be unique across entries of a content type? Go to the field configuration and check "Unique field." This prevents your editors from adding the same values to multiple entries.
New features are now presented on YouTube, too.
Short and sweet: Shy started publishing videos covering new features on YouTube. Hit subscribe and see you there!
![Screenshot of a Youtube video where Shy presents Contentful's new features](https://images.ctfassets.net/fo9twyrwpveg/2p4WLZblJdRsWOyQz1feOc/b7b6f2b9276fb3b24b14459f548165dc/pasted_image_0__15_.png)
Contentful changelog
Take a look at the Contentful developer changelog to learn what’s new. In February, we shipped some very nice things!
Embargoed assets
It's now possible to restrict public access to assets based on customer requirements. When activated, assets are served from a ***.secure.ctfassets.net domain, which requires incoming requests to be authenticated by attaching a dynamically generated signature before fetching the asset file.
![A flowchart showing how embargoed assets restrict users from accessing certain assets](https://images.ctfassets.net/fo9twyrwpveg/1Mgjm18BM9ufaxQJYzaJgK/41edbe296a45234ee1921e6f1b8da1cb/pasted_image_0__16_.png)
Number and date comparison filters for "sys" properties
We added new filters to our GraphQL API. You can now filter for sys properties such as firstPublishedAt
, publishedAt
and publishedVersion
.
More convenience for rendering your fields
We added a new package to our open source field editors: @contentful/default-field-editors
. These new components allow you to extend the Contentful field location without worrying about the field type. Drop in the new component and the correct field type editor will be rendered automatically.
App Installation events
Apps using App Events can now listen for their own installation events (i.e installation, updating, and uninstallation). This allows you to perform any setup or cleanup actions required to use an app (e.g. removing data and references).
Stay safe, and talk with you next month!
That’s it for March! Visit our developer portal to stay up to date. It includes developer blog posts, videos and our newsletter. Let us know via Slack or Twitter how we can continue to help you make awesome things.
If you enjoyed this newsletter, sign up to receive the next one in your inbox!