-
Notifications
You must be signed in to change notification settings - Fork 0
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
[RFC] Proposal for null Content Management System #1
Comments
Thank you so much for the detailed write up @abhisek, I believe there are many tasks here than one as you described. What do you think would be the next steps. I believe we can start creating a project tasks and do a PoC with Docusaurus and Hugo with other solutions.
|
How about using github pages itself. The entire flow can be managed in github via issues and workflows. We can have reviewers review and approve content also. hugo or jekyll all options will be open. If writers give markdown content insite review will work via issue review. for PDF we will need off site review (as annotations might not work with github) blog.null.community is right now working on github pages via https://github.com/null-open-security-community/null-open-security-community.github.io |
That works cool. I feel Docusaurus, MkDocs, Hugo, Jekyll, etc. is a big thing to choose and experiment as each one has different use cases and we wanted to ensure if that fits our use cases and support for future (Ex: Can some one help with extending, support, writing custom, etc.). Adding some details here for more https://jamstack.org/generators. But defining what we need, future direction would be helpful when picking as @abhisek mentioned. I think PoC would be great start I believe. |
Thanks @madhuakula @anantshri for the suggestions. I do agree that there are some work to do to make an informed decision about the various static CMS generator tooling / frameworks available. I would consider following key personas for the CMS:
As long as the tool / framework provides reasonable separation of concern for [1] and [2] and have an ability to consume and render externalised data (JSON is fine) then I believe we are good. By externalised data, I mean something like this: This data can be built and made available as static files through CI/CD process or (even better) can be pulled using XHR from some API but not absolutely required. This requirement comes from the thought that this CMS may eventually replace Swachalit as the main portal while keeping Swachalit as a backend data source only. @void-null @pankajmouriya Can someone from the community do a POC / survey of the various CMS tools mentioned in https://jamstack.org/generators/ and identify a few choices that meet our requirement and also easy to use? |
@abhisek |
Hello @abhisek talking about headless CMS |
Problem
The current null portal at
https://null.community
is powered by Swachalit which designed primarily as an event management and automation system. It is NOT designed for content management, hence it causes friction and blocker when being used to manage content.Goal
Adopt a technology to ease development, management and publishing of content for null community. The content may include
Refer to null Documentation Project for some of the content created by the community so far.
Design goal for this system includes specifically:
Proposed Solution
Adopt a static content management (website generator) based on markdown and related content such as hugo or alternatives with GitOps as the change and release management workflow.
Content Guidelines
Refer to Diátaxis as a framework for technical documentation. In this line, any content can be categorized into one of the following
While this categories may appear as a limitation of the type of content that can be published, in reality content can be categorized within these broad categories. This model will also bring some sanity and coherence in the type of content published.
Any content developed must have an associated tag to identify the category of the content.
Don't Repeat Yourself
If there are any page that publishes extendable lists such as member list, project list etc. then instead of creating markdown tables or repeating content, consider separating the data from rendering concerns. For example, the data can be defined in a structure file such as
members.json
ormembers.yaml
and themembers.md
page can refer to the data to uniformly render the list. This makes it easy to add a new item.Content Structure
Content Website Generation
Generate a browseable and aesthetically pleasing (or not) website using a static website generator tool based on the document source of truth.
Change Management
main
is the central branch and will be configured as protected and will be the single source of truthmain
after 1 approvalRelease Management
main
will trigger CD workflow to build and publish websiteTechnology Choice
Options
Static Website Generator
CI/CD
Content Hosting and Delivery
Way Forward
The text was updated successfully, but these errors were encountered: