With all honesty and totally subjective

You ask. Bejamas answers.

Ask about whatever you want - Jamstack, Remote work, Agency stuff or just about the weather (Pst... in Wroclaw right now).

Ask Bejamas Anything

Ivan asks:March 28, 2021

What is your favorite static site generator?
thom

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 a project in question. And when considering the project needs one (or more) of these static site generators is always in play.

Christopher asks:March 14, 2021

Why did you choose the Jamstack approach over others?
thom

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 our Jamstack newsletter!

Get exclusive web development case studies in your mailbox!

JD Burke asks:May 6, 2020

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:May 6, 2020

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

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

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

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 allows 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 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.

Dennis asks:April 29, 2020

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

At Bejamas we use a bunch of different tools, depends 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 projects and can recommend it. We’ve also used react-pose and the newest version developed by Framer called motion.

Dennis asks:April 29, 2020

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

On the Bejamas website we use flat files (.mdx) as 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 headless-cms directory. Each file contains content of one CMS.

David asks:April 29, 2020

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

With the recent 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, Gatsby plugins 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. 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/websites 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.

Vladyslav asks:April 29, 2020

Do you host your website on Cloudflare Workers Sites?
thom

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

Marco asks:April 29, 2020

How long does it take your gatsby build time?
thom

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. Fresh build takes about 5-6 mins and concurrent (with build cache and already generated thumbnail) 3-4 mins.

John asks:April 29, 2020

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

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 completly and your website will still work. It doesn’t generate HTML like WordPress and other “traditional” CMS do.

Marco asks:April 29, 2020

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

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.