Gatsby
Hi StackSharers, your help is dearly needed as we're making a move to which we will commit for the next few years.
Problem: As our Marketing team gets growing needs to publish content fast and autonomously, we're trying to add a CMS to our stack.
Specs:
This CMS should have fairly advanced marketing features: either natively built, and/or be open source, so we can either find third parties' plugins suiting our needs or build our own plugins homebrew.
"Advanced marketing features" like these: Non-devs should be able to handle content autonomously, Should have a non-dev friendly interface, should allow creating a library of reusable components/modules, should show the preview before publishing, should have a calendar with all publications, should show the history/tracking, should allow collaborating (Google Docs like), should display characters limit optimized for SEO.
Solution: We're considering an SSG + Headless CMS combination. We're fairly confident for the SSG (Gatsby), but we're still uncertain which CMS we should choose.
Of all the content management systems out there, contentful seems to be the most flexible. It consist of an user interface with an API a front end app can retrieve data from.
It makes no assumptions about how your data is presented or structured, and you can form any kind of content in the interface. Architectural portfolio with square footage attributes? Check. Carousel section on a page? Check. A blog? No problem. Entire landing pages consisting of sections that have child items in them and attributes for each child? Not an issue. Image hosting / cdn and resizing? No problem. Character limits? Widely supported. Multilingual? Easy peasy
There are two parts of the interface. Content types and content items. Content types is just a definition of how a content item is structured, you can add fields such as title, unique id, image, rich text, lists of child content items, etc. And then the API will just return a list of content items in JSON array or object format.
There is service integration with common apps, or data sources.
Because it’s just an API call, you can use literally any tech stack with it. It won’t stop you from using MySQL or any other technology alongside it. No messing about compilation, Java, maven, like with AEM. No being constrained to the CMS’s programming language or hosting environment like with Wordpress (to an extent, wp has an API too). You can integrate it with any app, whether it be serverless, on a vm, or inside a docker container.
Downside is the front end is really up to you. It’s just a cms for structuring your data. No preview though. How you present it is not handled by contentful. It is it’s greatest strength and not a weakness though
Hi Kamil, Have you considered Adobe Experience Manager (AEM)? It is not completely open-source but is built on top of many open source modules - like Apache Sling, Apache Felix, has a great deal of open-sourced core components, supports SPA - React and Angular Recently and can be deployed as a cloud service. Good luck in your search!
I was just hired to help an enterprise event production company with their web tools. Due to COVID they are streaming 100% online and need to make hundreds of mini-sites/small-scale apps for each event. They are currently using Squarespace and just making a sub-dir for each new event I i.e., our-squarespace-account/{some-awesome-stream}. This becomes a nightmare when there are several sub-events and events span several days etc.
I am trying to plan a service with the following: - Top level view of all sites we create - Ability to develop a new site locally and push up either to our domain or a custom domain - Each mini-site will be bespoke, but a CMS is needed for producers to edit content and change basic info - Some kind of interactivity and capture of email and name is a must (this can be a separate service) - Eventually, building a client dashboard for them to see statistics - Piecemeal rollout and development of these services
Currently, I have narrowed down using Gatsby as an ssg to make an event page (cloning from one of a few templates). Then I would customize and push it to a Netlify hosted site. I am running into problems with the structure. I want my company to be an umbrella site so we have a top-level view of every site we create, but each client only has access to a simple cms for their event. Content changes should be easy to make via a CMS.
I know this is a lot, so thanks in advance for the input!
I haven't used Strapi (which looks REALLY COOL), but I've done some non-production hobby-work in NextJS, KeystoneJS, and Parse. For what you're doing - the thin stack of Strapi/Gatsby/Netlify might be enough - but if you ever get beyond basic CMS integration & content display, and need more robust data-sharing, login management, and customized usage tracking or display logic - you might need something a little more robust like Next.js, Keystone, and/or a backend like Parse.
For the "thin-stack" model - you'd likely need to generate a common config/ENV file that sits at the root of each of your sites. These should likely contain generation / CMS access keys (unique to each site) to request data for each deploy build to collect page/site content from the (presumably centralized) CMS.
If you're looking at high-volume of sites, with limited staff, you're going to want to automate access generation and deployment at some point. You might want to look into some orchestration tools to help with some of the deploy / generation / API / CMS key stuff. I've used Azure DevOps in production, and Vercel has an interesting approach I use for hobby/prototype work, and I think Heroku might have some options as well.
Good luck! Hope you kill it!
Hi i used Gatsby strap and other Graphql solutions. i would do an kind of backend where you do your umbrella and or data entry. (i would use meteor for that and do an Graphql service with its data.,..) then you can model all you need in JS and in react you show depending on your requirements. And for provisioning iAd do a kind of hook which does bring together the Gatsby template data and whatever they need. my solution would enable you also to provide some backend services coming from umbrella if needed. but maybe i got your requirements wrong. It is also possible to do all in Strapi,react and Nodejs maybe https://www.youtube.com/watch?v=Oc_ITwxiG-Y&t=4760s gives you a 2nd idea thomas
Hi everyone, I'm trying to decide which front-end tool, that will likely use server-side rendering (SSR), in hopes it'll be faster. The end-user will upload a document and they see text output on their screen (like SaaS or microservice). I read that Gatsby can also do SSR. Also want to add a headless CMS that is easy to use.
Backend is in Go. Open to ideas. Thank you.
If your purpose is plain simply to upload a file which can handle by backend service than Gatsby is good enough assuming you have other content pages which will benefit from faster page loads for those Headless CMS driven pages. But if you have more logical/functional aspects like deciding content/personalization at server side of web application than choose NextJS.
I'm creating a website with React in my free time, and this is my first time doing this. So far, I've worked with React and React Router, but migrating to Next.js or Gatsby would cover Routing and SEO, which I currently cannot work with. Most things I read say that Next.js is the best solution, but I am trying to decide whether it is worth the time and effort to recreate the site for SEO and speed purposes. Does anyone have suggestions?
Routing in Next is trivial. NextJS allows 3 modes of use: static, generated on the server side or on the client side (SPA). For the first two just overwrite two methods to generate the pages on the server side (static generation) or generate them on the fly (SSR). If I want to add some logic that also works on the client side, the static page or generated on the server side is re-hydrated on the client side (the SPA part is added by latching onto the static part through meta-data transparent to the client. If Javascript is turned off the first two work without problems, to the advantage of indexing. In the case of static pages the speed is practically instantaneous. I highly recommend NextJS on Vercel.
Seems that it is more of a personal or business decision that you need to make. If SEO is important to the project then your SPA react site might not meet the project's needs. Using Next or Gatsby will probably give the GoogleBot more to index than create-react-app.
I choose to use Gatsby to make my personal site as a new developer back in 2019. But since then most of my projects have used Next because of my interest in making apps and APIs.
If I were you, I'd dive into the issues around SEO and React and figure out what the GoogleBot needs. From some quick reading it seems possible to get some SEO coverage without using Next. And it's a good way to prep for using Next in your project.
https://www.bacancytechnology.com/blog/react-seo-for-web-applications https://www.shareitsolutions.com/blog/seo-problems-react
Thanks for sharing such informative blog. It really helped me a lot to learn new things about Oracledbr. Keep on sharing informative and useful stuffs. Great blog!
Thank you a lot, I appreciate your advice, which gave me a clear vision on what I need to do.
I have been building a website with Gatsby (for a small group of volunteers). I track it in GitHub and push it to Amazon S3.
I am satisfied with it as a single user; however, I would like to get non-technical teammates to be able to post Markdown blog posts. I tried to teach them to add mdx files, git push, gastby build, and publish with gatsby-plugin-s3, but I am getting a fair amount of resistance :).
So I wonder if there are tools, preferably using Node.js, that allow multi-user blog authors a la wordpress, i.e. with an interface for non technical bloggers, but producing static/pre-rendered web pages.
(PS: I am considering having a node/express.js server where they could upload their mdx file and the server would re-build push and publish for them, without having them install anything, but I'd like to know if something already exists before jumping into this endeavor)
If you're after Markdown I would look at https://www.netlifycms.org. I've used it on several projects to allow clients to use Markdown to publish and it integrates really well with Gatsby. You can create your own content structures using it then implement them into your templates. These are all the widgets you can use: https://www.netlifycms.org/docs/widgets/
This keeps it strictly static file driven with no database or need for express etc.
Thank you, I was skeptical at first, but now that I read more about it, that is a great answer! Before you answered I started to go the route of ghost.js and see how the gatsby build could source from my ghost server, but that would be an endeavor. netlifyCMS seems to acheive what I wanted much more directly. Will continue to learn about it. Thank you!