Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Contentful as base content management solution #1025

Closed
mattyweb opened this issue Mar 16, 2021 · 2 comments · Fixed by #1027
Closed

Add Contentful as base content management solution #1025

mattyweb opened this issue Mar 16, 2021 · 2 comments · Fixed by #1027
Assignees
Labels
Size: 5pt Can be done in 19-30 hours

Comments

@mattyweb
Copy link
Collaborator

Description

Implementing Contentful (www.contentful.com) as the backing headless CMS for the project.

Why Contentful:

  1. License is non-profit/start-up friendly: we get 1 space and 5 users and more content items than we can use for free.
  2. Has good content management workflows: flexible content models, approvers, previews, publish/unpublish, publish in the future
  3. Supports localization: Easy to provide alternate language version (2 languages at free tier)
  4. Supports asset management: can upload, edit, crop, approve images etc.
  5. Good tech: headless CMS behavior, flexible GraphQL query model, React libraries, good integration

One key caveat is that this is not a tailor-made web CMS. It's designed to support any content not just HTML. As a result rendering images in rich text requires some custom code. It's nicely flexible in that regard but a bit of a pain.

Resources

https://github.com/contentful/rich-text/tree/master/packages/rich-text-react-renderer
https://www.contentful.com/blog/2019/05/31/interactive-content-react-rich-text-editor
https://www.contentful.com/developers/videos/learn-graphql/#graphql-fragments-and-query-complexity

Contentful will require a SPACE ID and a TOKEN to be added to the React client configuration.

The master login can be found in 1Password. Key users should be added to the space as different accounts so we can have a true approval process.

@mattyweb mattyweb added the Size: 5pt Can be done in 19-30 hours label Mar 16, 2021
@mattyweb mattyweb added this to the Initial v2 Launch milestone Mar 16, 2021
@mattyweb mattyweb self-assigned this Mar 16, 2021
mattyweb added a commit that referenced this issue Mar 17, 2021
Fixes #1025
- Implementing useContentful hook
- Temp FAQ, Privacy, Blog
@mattyweb
Copy link
Collaborator Author

Quick note: after doing POCs for both approaches, I decided that using markdown was preferable to using the Contentful Rich Text approach. Our content authors are likely already familiar with markdown and the additional flexibility of Rich Text isn't worth the implementation hassles. Actually given that Contentful is now beta testing a new authoring tool, I wouldn't be surprised if Rich Text gets deprecated.

mattyweb added a commit that referenced this issue Mar 17, 2021
@mattyweb
Copy link
Collaborator Author

This task is closed out now. Note that there are separate issues for each of the items. The links in the header and the designs are all intended to be placeholders. Hoping UX and Frontend developers can take it from here!

There are 3 types in the content model implemented in Contentful:

  1. Simple Page (used for Privacy Policy)
  2. FAQ (question-answer pairs)
  3. Blog Post

The space in Contentful is here:
https://app.contentful.com/spaces/dw507zz82496/home

The master credentials are in 1Password. Let me know if I can help.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Size: 5pt Can be done in 19-30 hours
Projects
Development

Successfully merging a pull request may close this issue.

1 participant