web3-storage / web3.storage

DEPRECATED ⁂ The simple file storage service for IPFS & Filecoin
https://web3.storage
Other
503 stars 119 forks source link

Implement Netlify CMS for blog content management #1632

Closed orvn closed 2 years ago

orvn commented 2 years ago

Implement Netlify CMS, modeling implementation after nft.storage implementation

orvn commented 2 years ago

@dchoi27 does this approach make sense to you?

If so, two good candidates are:

They're from the same company, and Tina is the successor of Forestry.

Also open to other options, like Netlify CMS. I've worked with Forestry a good bit and it's pretty straightforward to integrate.

olizilla commented 2 years ago

blog.ipfs.io has been using forstry.io for a good while now, so that's a +1 for it. see: https://github.com/ipfs/ipfs-blog#for-post-authorseditors

orvn commented 2 years ago

_Update to requirements: I got some clarification to the requirements here. The objective is to include a CMS layer such that it IS fully decoupled from the Github workflow. I've edited my original issue content with some strikethroughs._

Updated requirements

Considerations

There are now some net new considerations that should be discussed.

Approach

Decoupling from Github entirely means that NextJS is no longer the source of truth for (blog) content. Consequently, content will not be built directly into the static site. This means that we need to determine some architecture, i.e., how (and when in the sequence) content is added.

Note: An approach I'm not considering here is using a totally different web stack for the blog on a subdomain (e.g., a separate repo, or a standalone Wordpress site)

Constraints

CMS Options

With that said, we can go over some CMS options

Self-hosted, headless JS CMSs

I've used the first two in the past, but they would need to be run somewhere: they're open source and headless.

CMS services that offer a REST API

Excluded from evaluation

I've excluded two types of CMS's here:

If anyone has any others to add that would satisfy the requirements feel free to comment or add to the lists.

JeffLowe commented 2 years ago

Per decision made by Mikeal, we'll be using NetlifyCMS across the board (in NFT & Web3 sites and blogs). More details regarding approach and decision are in this doc https://www.notion.so/Content-Release-Cycle-Improvement-Rec-2656dcf910a94b33881b973ec4d6f1ca We'll have a PR on the NFT side soon that you can follow to align the wip web3 blog to support this approach.

orvn commented 2 years ago

Per decision made by Mikeal, we'll be using NetlifyCMS across the board (in NFT & Web3 sites and blogs). More details regarding approach and decision are in this doc https://www.notion.so/Content-Release-Cycle-Improvement-Rec-2656dcf910a94b33881b973ec4d6f1ca We'll have a PR on the NFT side soon that you can follow to align the wip web3 blog to support this approach.

@JeffLowe ah okay, so we'll be making an additional repo for the content, yes? Any idea if the NFT.Storage and Web3.Storage content repos will be combined into a sort of content monorepo? Or will there be multiple content management repos?

JeffLowe commented 2 years ago

Likely best to have separate repos one for web3 and one for nft. We're investigating whether it makes sense to have one segmented intance...but likely best to separate web3 from nft content.

JeffLowe commented 2 years ago

Original description scope for archival purposes: The blog (#1415) is largely available to ship, however, any edits must be made directly to the markdown files.

Benefits

A content management system would make the process of publishing content more streamlined, as well as put the focus on the writing, rather than editing posts in a code editor (wysiwyg editors would display formatting immediately, rather than having to wait for build previews, or building the website locally).

Type of CMS

(Edited, see my second comment in this issue for more information)

It's probably best not to fully abstract blog content from Github. For this reason, most external CMS systems (i.e., where the content would live somewhere else and then need to be pulled into the site during run time or build time) aren't ideal.

The ideal solution IMO is an external service that functions as a layer on top of Github, enhancing the current workflow.

Ideal flow

The path with the fewest hurdles but the most amount of gain looks something like this

(Edit: Added strikethroughs to some areas because we do want to fully decouple the blog content from the Github Workflow)

JeffLowe commented 2 years ago

Netlify CMS demo'd last week and fully functional. Ready for blog launch.