With all honesty and totally subjective

You ask. We answer.

Ask about whatever you want - Modern Web Development, Jamstack, Headless CMS, Remote work, Agency stuff or just about the weather.

Ask Bejamas Anything

Joshua asks:March 16, 2023

Is WordPress a Headless CMS?

My WordPress site has been slow lately, and I've heard that using a headless CMS can improve speed and make the site more responsive. I'm curious to know if I can use WordPress as a headless CMS to fix these problems without changing to a new platform.

Thom Krupa

WordPress isn't a headless CMS by default, but you can definitely make it one by using its REST API or plugins like WPGraphQL.

If you're dealing with a slow WordPress site and are thinking about going headless, I suggest checking out our case study about the Backlinko website migration from regular WordPress to headless WordPress: Backlinko Case Study. This real-life example shows how going headless can lead to better performance, more flexibility, and easier scaling.

For a deeper dive into Headless WordPress, have a look at our easy-to-follow guide: Headless WordPress. This guide will help you understand the basics of headless setups, why you might want to use WordPress as a headless CMS, and how to make the switch using the REST API or WPGraphQL plugin.

Some of the cool benefits of going with Headless WordPress are:

  1. Faster websites: By separating the front-end from the CMS, your site can load more quickly and feel more responsive.
  2. Flexibility: You can pick the best front-end technology (like React, Angular, or Vue.js) to create an awesome user experience.
  3. Easier updates: Developers can work on the front-end and back-end independently, which makes updates and maintenance simpler.
  4. Better caching and content delivery: You can use Content Delivery Networks (CDNs) and caching more effectively, so your content loads faster for users around the world.

So, even though WordPress isn't a headless CMS out of the box, you can turn it into one using its REST API or plugins like WPGraphQL. Going headless with WordPress can help you fix performance problems, make your site more responsive, and enjoy the perks of a headless CMS. Just keep in mind that you'll need some technical know-how or help from developers to make the switch.

Daniel asks:March 12, 2023

What is the best commenting system for a static site?

I am building a static website and want to add a commenting system, but I'm not sure which one to choose.

Thom Krupa

There are several commenting systems available for static websites, each with its own set of features and trade-offs. The best one for your site will depend on your specific requirements, audience, and preferences. Here are a few popular options to consider:

  1. Disqus: Disqus is a widely-used commenting platform that is easy to integrate with static websites. It offers social login, threaded comments, moderation tools, and spam protection. However, it may display ads and can potentially impact page loading times.
  2. Hyvor Talk: Hyvor Talk is another popular commenting platform with features such as social login, moderation, privacy controls, and customization options. It is privacy-focused and doesn't display ads. However, it is a paid service with a monthly subscription.
  3. Commento: Commento is a lightweight, privacy-focused commenting system that values user privacy and doesn't display ads. It offers features like moderation, import/export, and social login. Commento has a self-hosted option or a paid hosted service.
  4. Staticman: Staticman is an open-source solution that allows you to add comments directly to your static site's repository, effectively turning them into static content. This eliminates the need for third-party services but requires more setup and maintenance compared to other options.

When choosing a commenting system, consider factors like ease of integration, feature set, user experience, privacy, cost, and maintenance requirements. It's essential to evaluate each option based on your specific needs and decide which one aligns best with your project's goals.

Max asks:March 6, 2023

Does ever CDN server goes down?

I'm curious about the reliability of CDN servers and whether they ever experience downtime.

Thom Krupa

While CDN servers are generally designed to provide high availability and redundancy, it's possible for individual servers to experience downtime due to various reasons, such as hardware failures, network issues, or even power outages. However, CDNs are built with multiple layers of redundancy to mitigate the impact of these events:

  1. Redundancy: CDNs have numerous edge servers distributed worldwide. If one server goes down, the network can continue to operate using other available servers.
  2. Load balancing: CDNs distribute traffic among multiple edge servers, reducing the impact of any single server failure on overall performance.
  3. Automatic failover: In the event of a server failure, CDNs can automatically reroute traffic to other functioning edge servers to maintain website availability.
  4. Monitoring and maintenance: CDN providers monitor their networks and perform regular maintenance to minimize the risk of server downtime.

While it's possible for individual CDN servers to experience downtime, the robust architecture and redundancy of CDNs ensure that the overall network remains highly available, minimizing the impact of server failures on website performance and availability.

Stig asks:March 5, 2023

Does my website fall under the Jamstack term?

I’m seeking some clarification on the term “Jamstack.” I’m still confused about whether my website falls under the Jamstack category. In short, I have a traditional monolithic WordPress site that I'd like to convert into a static site using an SSG like WP2Static. After generating the static site, I’m thinking of serving it from e.g. Netlify or my web server (statically, for testing).

From what I have read, Jamstack doesn’t exactly have a strict definition (anymore, that is) and is more of an architectural approach than anything. So, I’m wondering if my website can still be considered a Jamstack site, although it doesn’t use any sort of APIs or anything to bring dynamic-like content to the site.

I would appreciate it if you could help me understand if my site can be considered Jamstack or even “Jamstack-like.” Thanks so much for any clarification!

Thom Krupa

I think your website will still be considered Jamstack-like, here is why:- The content for users will be served 100% as static files, directly from the CDN- Request will not hit the server (in your case WordPress)- Even if WordPress for some reason will stop working, the website will still be available for the users.- There is some security risk, you could think of closing your WordPress from direct access, so no one except you will have access to it.

In general, you will benefit from the following:

  • Global distribution will make the website super fast for everyone across the globe.
  • Easy rollbacks
  • Low server workload

Usually, people tend to use a hosted CMS to increase security and availability. You don't have to worry about the server infra and maintenance. But self-hosted WordPress and content consumed by its API or some build process that generates and stores pages as static files I'd consider Jamstack too. Keep in mind that some features (like WP comments) won't work this way.

Michael asks:February 15, 2023

What are the cons of using a traditional CMS?

I've been using a traditional CMS for my website, but I've been hearing a lot about the disadvantages of traditional CMS. I want to know if it's worth considering an alternative.

Thom Krupa

Traditional CMSs have served businesses and individuals well for many years. However, as technology and user demands evolve, certain limitations have become more apparent. Here are some of the cons of using a traditional CMS:

  1. Monolithic architecture: Traditional CMSs tightly couple the front-end presentation with the back-end content management. This limits flexibility, as it is harder to adapt the front-end technologies or integrate the CMS with other services and platforms.
  2. Performance: Due to the monolithic structure, traditional CMSs may suffer from slower performance and longer loading times. This can negatively impact user experience and search engine rankings.
  3. Scalability: As your website grows, it may become challenging to scale efficiently using a traditional CMS. The monolithic architecture can make it difficult to optimize resources or distribute workloads, potentially leading to performance issues.
  4. Security: Traditional CMSs can be more prone to security vulnerabilities, as they often include a large number of plugins and extensions. Updating and maintaining these components can be time-consuming and may expose your site to potential threats.
  5. Customization limitations: Customizing a traditional CMS to meet specific business needs can be challenging and may require significant development resources. This can result in a longer development timeline and higher costs.
  6. Vendor lock-in: Some traditional CMS platforms impose restrictions on hosting or limit your ability to modify the underlying code. This can make it difficult to switch platforms or make significant changes to your website's infrastructure.

Considering these cons, many organizations are now opting for more flexible solutions such as headless CMSs or the JAMstack architecture, which can address many of the limitations of traditional CMSs. However, it's essential to assess your specific needs and resources to determine the right approach for your project.

Emily asks:January 18, 2023

How does a CDN increase the speed of a website?

I've heard that using a CDN can improve website speed, and I want to know how it works and how it differs from a "normal" server.

Thom Krupa

A CDN (Content Delivery Network) increases website speed through several key mechanisms, differing from a normal server in various aspects.

Key differences between a CDN and a normal server:

  1. Server location: A normal server is typically a single server located in one place, whereas a CDN uses a global network of edge servers distributed worldwide.
  2. Content delivery: A normal server directly serves content to users, while a CDN stores cached versions of your site's content on multiple edge servers.
  3. Performance: A normal server may experience performance issues when handling high traffic, whereas a CDN distributes traffic among multiple servers, maintaining optimal performance.

How a CDN increases website speed:

  1. Edge servers: CDNs use a network of edge servers to store cached versions of your site's content.
  2. Geographical proximity: CDN servers are closer to users than your origin server. When a user requests your site, the CDN serves content from the nearest edge server.
  3. Reduced latency: The shorter distance between the user and the edge server reduces data transfer time, resulting in faster content delivery.
  4. Load balancing: CDNs distribute traffic among multiple edge servers, preventing server overload and maintaining optimal performance.
  5. Content optimization: Some CDNs offer content optimization features, like compression and image optimization. These features reduce file sizes, further speeding up content delivery.

In summary, a CDN improves website speed by leveraging a global network of edge servers, reducing latency, balancing server load, and optimizing content. This approach differs from a normal server, which is typically a single server in one location, serving content directly to users without the benefits of a distributed network.

John asks:May 10, 2022

What issues did you experience with Styled Components?

On this page, you mentioned having issues with styled-components, what were those issues specifically? https://bejamas.io/blog/case-study-avenues/

Currently looking into options for an enterprise client which currently uses sc and trying to learn more about it.

Thom Krupa

The main issue was with performance. JS size grows linear with Styled Components (or every similar CSS-in-JS solution). Currently, we recommend using a library with zero (or near-zero) runtime JS. For example Linaria, Astroturf, or something like Tailwind.

David asks:May 10, 2022

Is Eleventy ready for content-heavy websites?

I read your case study article, Backlinko project some weeks ago, and that is very interesting. I have some ambiguities about parts of it.
About tech stack choice, It's said:

"From the start, Backlinko was quite convinced to use Next.js, but we weren’t sure if that’s the best option for them. [...]
We’ve presented Eleventy as an alternative. At that time, Eleventy was still pretty fresh with no big real-world implementations, mostly personal blogs, and small websites. It was (kind of) risky because the team behind the project is not big and the community is relatively small."

Regarding this, I have some questions:

  1. For Eleventy, I know that the CMS of web.dev website is Eleventy (it has more than 1000 articles); So, do you still think that Eleventy is not suitable/ready for a real-world content-heavy website like Backlinko or things have changed???
  2. In the Backlinko case with combing WordPress and Nextjs, can ACF or Gutenberg be used for writing and structuring posts after this Front-end transition?? and the complex setup (different CMSs and hosts, multiple dependencies, ...) does not make maintenance hard???
Thom Krupa
  1. Currently, Eleventy is much more stable, with the recent SSR and Edge Rendering it’s a very interesting framework and I’d consider it again. But, I’d consider Astro even more. Partial hydration is a great booster for content-heavy websites with a small number of interactive components. We will write about this more soon, so stay tuned.
  2. Yes! We use ACF a lot in the Backlinko project (like 90% of content goes from ACF). I’m not sure about Gutenberg, but if it exposed data in API it will be easy to integrate it with frameworks like Next.js.

    With multiple hosted CMSes, if the config is well-thought, there shouldn’t be a problem with maintenance. In the case of Backlinko, we use just WordPress.

JD Burke asks:May 5, 2020

Does Bejamas consider US-based hires?

I see that Bejamas is very much a distributed/remote-first company, but do you think a US-based SW tester would be something that Bejamas would consider (as opposed to remote in one of the locales/time zones where Bejamas already has people)?

Agata Lesniak

Indeed, we are a distributed team that works fully remotely from anywhere in the world. That means we are not looking for new folks who are based in Central Europe only. We've already started doing it - take a look at our Team page and meet our international bunch of Jamstack enthusiasts we have on board :).

Marco asks:April 30, 2020

Why we put Cloudflare CDN in front of Vercel CDN?

I have a question about your last case study about Bejamas website: I'm confused about why you put the Cloudflare CDN in front of Vercel... Isn't it a CDN too? And using two CDN how can you manage cache headers?

Thom Krupa

Vercel uses Cloudflare CDN under the hood, there is a way to bypass it and use Cloudflare explicitly what we did. The first reason is that we wanted to use other Cloudflare features like Workers which are available only when you use the official Cloudflare CDN. We use Cloudflare as both DNS Server and Proxy. Cache-headers can be managed in Cloudflare settings panel via Page Rules. Right now we manage them through the Cloudflare API in a Worker.

Update 2023: We use now Vercel CDN.

Marco asks:April 30, 2020

How long takes the build time of your website?

Thom Krupa

First, the context - we use Gatsby, we need to generate ~3100 image thumbnails, execute ~70 queries and build 60 pages. It takes almost 14 mins on Vercel without Gatsby's build caching. We're experimenting with Gatsby Cloud and it looks very promising. The fresh build takes about 5-6 mins and concurrent (with build cache and already generated thumbnail) 3-4 mins.

David asks:April 30, 2020

Is the only advantage of Gatsby over Next.js its plugin ecosystem?

Since Next.js 9.3 came out, and SSG is now a priority of that framework, I've started to think that the 'only' thing Gatsby has over Next is its plugin system.. but if you don't need anything specific for your static site that Gatsby’s plugin system has, or prefer building and maintaining important functionality in-house, why would one choose Gatsby over Next at this point?

Thom Krupa

With the Next.js 9.3 update, it looks very promising as both SSG and dynamic, SSR dynamic pages. We’re testing it in a couple of projects. However, the Gatsby plugin ecosystem is huge and still growing. It has its cons but overall it standardizes content query (everything should be fetched via source plugin - so you fetch content via internal GraphQL). Next.js is less opinionated in terms of how you should fetch data.

I really like Next's approach to constant JS optimization. The bundle size gets smaller with every release. Gatsby seems to not care about this that much (there are some plans, but no ETA tho).

So - if you already are familiar with Gatsby and its ecosystem I’d pick it for simple blog/website projects (that don’t need any dynamic pages). I’d bet on Next.js if you are entering the Jamstack world and want to use React-based SSG.

Dennis asks:April 29, 2020

How to animate my code and UX design

I'm curious to know how to animate my code and UX design. So they move, especially for a UX design project.

Thom Krupa

At Bejamas we use a bunch of different tools, depending on the project and the animation we want to achieve. Basic animations and transitions can be done in vanilla CSS - Animate.css is a helpful tool. Sometimes we use Lottie for more advanced animations. Personally, I used GSAP in a couple of projects and can recommend it. We’ve also used react-pose and the newest version developed by Framer called motion.

Christopher asks:March 14, 2023

Why did you choose the Jamstack approach over others?

Thom Krupa

We tried to explain that in our introduction to Jamstack post. The best thing about it is that it is not about a specific technology but a web dev approach with a ton of benefits both for us as devs and our clients and their businesses. On top of it all, we get to learn new stuff with every project we are involved in.

newsletter abstract background

Sign up for newsletter

Get the most interesting questions and answers in your mailbox

Alex asks:March 9, 2023

Is it worth it to create a custom CMS?

I'm exploring web development and considering building my own custom CMS. While I'm hoping it'll be a great learning experience, I'm also curious about whether a custom CMS could be worth using in real-world projects.

Thom Krupa

Creating a custom CMS can be a rewarding learning experience that exposes you to various aspects of web development, such as backend, database, and frontend technologies. However, when it comes to real-world projects, using an existing CMS is often more practical and cost-effective. Here's a breakdown of the advantages and disadvantages of each approach:

Building a custom CMS for learning and potential real-world use:

Pros:

  1. Learning experience: Developing a custom CMS can help you gain hands-on experience with different programming languages, frameworks, and tools, ultimately improving your skills as a developer.
  2. Understanding core concepts: Crafting a CMS from scratch can deepen your understanding of core web development concepts and best practices.
  3. Unique features: A custom CMS allows you to implement specific features and functionality that might not be available in off-the-shelf solutions.

Cons:

  1. Time-consuming: Building a CMS from scratch can be a lengthy and complex process, which might not be the most efficient use of your time if you want to learn quickly or deploy a project promptly.
  2. Cost and resource efficiency: Developing and maintaining a custom CMS can be expensive in terms of development time, effort, and ongoing maintenance compared to using and customizing an existing CMS solution.
  3. Limited support and community: A custom CMS might lack the extensive documentation, community support, and regular updates that established CMS solutions typically provide.

Using an existing CMS for real-world projects:

Pros:

  1. Cost and resource efficiency: Leveraging an existing CMS can save you time, effort, and resources compared to building a custom solution.
  2. Support and community: Existing CMS solutions usually come with extensive documentation, community support, and regular updates, which can be beneficial for troubleshooting issues and keeping your system up to date.
  3. Customization options: Many CMS platforms offer a wide range of plugins, themes, and customization options, allowing you to tailor the system to your specific needs.

Cons:

  1. Limited control and flexibility: Using an existing CMS might not provide the same level of control and flexibility as building a custom solution, potentially limiting your ability to implement unique features or integrations.

In conclusion, while building a custom CMS can be an excellent learning experience and potentially offer unique features, using an existing CMS is generally more practical and cost-effective for real-world projects. If you are interested in exploring different headless CMS options, I recommend checking out our Discovery Hub, which includes reviews and comparisons of various headless CMS solutions. This resource can help you better understand the available options and make an informed decision about which CMS best suits your needs. Consider your goals, resources, and the specific needs of your project to determine the best approach.

Laura asks:March 5, 2023

Would you use GraphQL for a small project?

I am working on a small project and considering using GraphQL, but I am unsure if it's the right choice.

Thom Krupa

GraphQL is a powerful query language that provides a flexible, efficient, and type-safe way to request and manipulate data. While it has many advantages, there are cases where it might not be the best fit for a small project. Here are some reasons why you might not choose GraphQL for a small project:

  1. Complexity: GraphQL introduces a new layer of complexity to your project, as it requires learning a new syntax, understanding the GraphQL schema, and setting up a GraphQL server. If your project is small and doesn't require the level of flexibility GraphQL provides, using a simpler REST API might be more suitable.
  2. Limited resources: Implementing GraphQL could take additional time and effort, particularly if your team is unfamiliar with the technology. For small projects with limited resources or tight deadlines, this additional overhead might not be worth it.
  3. Overkill for simple use cases: GraphQL shines when dealing with complex data requirements, such as fetching data from multiple sources or requesting only specific fields. If your project has simple data requirements with few endpoints and minimal data manipulation, using GraphQL might be overkill.
  4. Ecosystem and tooling: While the GraphQL ecosystem is growing, it might not yet have the same level of maturity, libraries, or tooling as other established technologies. Depending on your project's requirements, you might find that the available GraphQL tools and libraries are not sufficient or robust enough for your needs.
  5. Caching: GraphQL has different caching strategies compared to REST APIs, and it can be more complex to implement caching effectively. If your small project relies heavily on caching for performance, you might prefer to use a REST API that has more straightforward caching mechanisms.

Ultimately, whether you choose GraphQL for your small project depends on your specific use case, team familiarity, and project requirements. Carefully consider the benefits and trade-offs of using GraphQL to determine if it's the right choice for your project.

Jane asks:February 20, 2023

How do I choose the right CDN provider for my website's needs and audience?

I'm considering using a CDN for my website, but I'm not sure how to choose the best provider for my specific needs and audience.

Thom Krupa

Choosing the right CDN provider involves evaluating factors like performance, features, and support to ensure the chosen solution aligns with your website's needs and audience. Here are some steps to guide you:

  1. Determine your requirements: Identify your website's specific needs, such as global reach, support for dynamic content, or protection against security threats.
  2. Evaluate performance: Compare providers based on metrics like time to first byte (TTFB) and total download time. You can find comparisons, such as Netlify vs Vercel on our website.
  3. Consider integrated solutions: Hosting providers like Netlify and Vercel offer much more than just CDN services. They provide an integrated solution that includes hosting, deployment, and CDN as one layer, which may simplify your workflow and provide better performance.
  4. Stay within your existing ecosystem: If you or your team already uses a major cloud provider like AWS, Azure, or GCP, it might be beneficial to stay within their ecosystem and use their CDN services for easier integration and management.
  5. Assess features: Evaluate CDN providers based on features like cache control, content optimization, and security options to ensure they meet your needs.
  6. Check support and documentation: Review the provider's support options, documentation, and community resources to ensure you'll have access to assistance when needed.
  7. Analyze pricing: Compare pricing plans across providers, taking into account your expected traffic, bandwidth usage, and required features.
  8. Test with your audience: If possible, perform real-world tests to measure the performance of different CDN providers with your target audience.

For a detailed comparison of hosting providers, including features and performance, check out our Discovery Hub post. By considering these factors and conducting thorough research, you can choose a CDN provider that best aligns with your website's needs and audience. Keep in mind that integrated solutions like Netlify and Vercel or staying within your existing cloud provider ecosystem can offer a more comprehensive set of services and easier management.

Samantha asks:January 19, 2023

Is Sitecore a Headless CMS?

I am exploring different CMS options for my company's website, and I heard about Sitecore, but I am not sure if it's a headless CMS or not.

Thom Krupa

Yes, Sitecore is a headless CMS, although it is more than just that. Sitecore is a robust, feature-rich digital experience platform (DXP) that offers a variety of services and features, including content management, digital marketing, and e-commerce capabilities. With its headless architecture, Sitecore allows developers to create and manage content separately from the presentation layer. This means that content can be delivered through various channels, such as web, mobile, or IoT devices, using APIs.

Sitecore's headless approach provides several advantages, including:

  1. Flexibility: Developers can use their preferred front-end technology stack to create a unique, customized user experience.
  2. Scalability: The decoupled architecture allows for better performance and easier scaling of your web application.
  3. Omnichannel support: With a headless CMS like Sitecore, you can deliver your content to various platforms and devices, ensuring a consistent experience across all channels.

However, it's worth noting that Sitecore may not be the best fit for every project due to its complexity and licensing costs. When considering Sitecore or any headless CMS, you should carefully evaluate your specific needs and resources to determine if it's the right choice for your organization.

David asks:October 18, 2022

Does Partial Hydration make Astro special?

I really had not heard about Astro, so I checked it (It has gained good traction after a short period of its inception!). But I couldn't find a real-world case study with that framework. Do you investigate it further? 

Also, I know that React and Preact have partial hydration implementation, therefore what makes Astro special?

Thom Krupa

We actually built a website on Astro, check out the case study.

React and Preact partial hydration are not exactly the same as Astro's hydration. It's very tough (and maybe impossible right now) to do this with pure React. I know the Facebook team is working on a solution more related to React Server Components that will enable some kind of partial hydration but the concept is a bit different.

Astro is great if you want to reduce the amount of client-side JavaScript but still want to use modern frameworks like React, Vue, or Svelte. I'd take a look at https://qwik.builder.io/ and Qwik City.

Toren asks:May 10, 2022

Why we use React at Bejamas?

Looking through the discover pages and job requirements it looks as if Bejamas primarily uses React over other front-end frameworks.

Is there a significant advantage, or is it simply sufficient for any job?
I've personally been working with Vue+Quasar.

Thom Krupa

React is the most versatile framework and for sure the most popular right now. We use it for most projects, but we experiment with Svelte and Vue.js too, especially for smaller, more experimental projects.

Ivan asks:March 28, 2021

What is your favorite static site generator?

Thom Krupa

Given that many of our projects have been done with React static site generators the obvious answer would be one of them. With that being said, for us, the best actually refers to the SSG that works the best for the project in question. And when considering the project needs one (or more) of these static site generators is always in play.

Marco asks:April 30, 2020

Does Headless CMS support advanced layouts?

I'm looking at JAMStack for a few weeks and coming from WordPress (doing a lot. of WP websites as a freelancer), my biggest concern would be related to any page that needs an advanced layout when working with a customer-owner of his content.

By using a headless CMS (Forestry.io randomly - which looks amazing), how do you deal with customers that may need an editor with an advanced layout (like Visual Composer, Divi Builder, etc)?

Does a JAMStack website with a Headless CMS mean that we can't provide an advanced layout in the hand of our editorial team? Is the answer to design and prepare a new template for every new page?

Thom Krupa

There are plenty of different options on the market. Some git-based CMS like Forestry or NetlifyCMS are simpler, but some like Sanity or Contentful allow you to build really advanced layouts and structure and organize data in the way you want. I’d compare those CMS to Advanced Custom Fields in WordPress, you can create blocks, multiple nested fields, relations, create your own fields, and so on. I’d say you can build much more advanced and custom layouts than in WordPress and don't lose your mind. I used to work on some larger, custom-designed projects in WordPress and even tho I love ACF I've always felt it's a bit hacky.

The closest user experience to things like Visual Composer or Divi Builder is Storyblok - it gives editors a live preview similar to WordPress Page Builders. A very interesting project in that space is Tina CMS which enables real-time, on-page editing.

If you structure fields and components correctly in any Headless CMS you can create templates and give editors the freedom to build custom pages without the need to custom-code them every time.

You can read more about those different CMS in our recent post - there are some screenshots and videos of the inside UI and editing experience.

John asks:April 30, 2020

Are GIT-based CMS are considered as Headless CMS?

Git-based CMSs like Forestry aren't they a part of, or attached to, font-end code base in git? I mean why are we considering them as headless CMSs?

Thom Krupa

Good question! Naming things is a tough nut to cract, especially in fast, evolving web-dev space. If we define Headless CMS as a CMS that is decoupled from the frontend then Forestry or Netlify CMS seem to fit since they don't generate any templates nor HTML. They just edit the file in the repo. If you connect it with something like Gatsby, you can treat those flat files (md, mdx, yml, json and so on) as your "internal content API". It's true it's not easy to make that API available everywhere, but often you don't need that.

Forestry runs on managed servers and treats your repository as content source. You can switch it to other Git-based CMS or remove completely and your website will still work. It doesn't generate HTML like WordPress and other "traditional" CMS do.

Vladyslav asks:April 30, 2020

Do you host your website on Cloudflare Workers Sites?

Thom Krupa

Yes we do! More about how we built our website you can read here.

---

Update 2022: We moved our website to Vercel.

Dennis asks:April 29, 2020

How to organize content in Gatsby?

I would like to design my website to look like the desktop view of the Headless CMS post with a dashboard on the left. The dashboard makes it easy to look at other content. How is this done on Gatsby? Or is it created using any of the CMS like Contentful?

Thom Krupa

On the Bejamas website, we use flat files (.mdx) as a content source. We have integrated Forestry CMS (which is git-based) to make it easier to edit content for the marketing team. Navigation on the left is a custom-build component based on the list of files in the `headless-cms` directory. Each file contains the content of one CMS.