Skip to content
This repository has been archived by the owner on Sep 24, 2022. It is now read-only.

Define technical components for entire system. #7

Open
bwklein opened this issue Jul 21, 2021 · 6 comments
Open

Define technical components for entire system. #7

bwklein opened this issue Jul 21, 2021 · 6 comments

Comments

@bwklein
Copy link
Member

bwklein commented Jul 21, 2021

General specs for each component of a system.

  • Content - storage tech, source control, file management, and source file formats (Github, GitLab, Headless CMS, etc.)
  • Transformer - source to target formats (MD -> HTML or ADOC -> HTML & PDF or MD -> HTML -> PDF with goldmark, pandoc, asciidoctor, etc.)
  • Assembler - target formats organized into a coherent structure/relations (Hugo, Antora, SSGs, SvelteKit, Next.js, etc.)
  • Distribution - web server, file sharing, embedded system, etc. (Netlify, S3+Cloudfront, CDNs, etc.)
  • Automations - CI/CD or something to glue the components together. (GitLab CI/CD, Github Actions, Netlify Builds/Deploy, etc.)
  • Others?

The idea here is to identify the requirements for a complete system that can be replaced per implementation.

@bwklein
Copy link
Member Author

bwklein commented Feb 3, 2022

Setup the Netlify template to help someone clone to a new repo and host their site on Netlify.
https://templates.netlify.com/

@mgan59
Copy link

mgan59 commented Feb 9, 2022

Liking the list here you started. Especially Distribution indicating if it has an easy deploy option/template for Netlify, Vercel, Heroku, or S3+Cloud front. Think everything else here is good and I think you've done a great job covering the various characteristics 💯

I think once we model a few of these out we may see some boundaries that may help tight the scope -- for instance assembler versus automations think there could be some blurring between them. and I think Content may also need to indicate what format it is stored (markdown, asciidoc, etc) so that it matches the transformer(s) category.

@bwklein
Copy link
Member Author

bwklein commented Mar 10, 2022

for instance assembler versus automations think there could be some blurring between them

Here is an example that comes to mind:

  • Content
    • storage tech = GitLab
    • source control = Git, with 'staging' and 'main' branches for editorial flow.
    • file management = GitLFS for binary files (images, videos, zips, PDF, xlsx, docx) in 'uploads' folder
    • source file formats = HTML, CSS, JS, JSON, CSV, YAML, TOML, MD, ADOC
  • TGDP Templates
    • Hugo 'archetypes'
    • Content Types/Templates in FrontMatter CMS extension configuration
  • Transformer
    • sources = MD, ADOC
    • targets = HTML, PDF
    • tech = Goldmark (built into Hugo), Asciidoctor
  • Assembler
    • Hugo
  • Automations
    • Netlify Builds with Webhook trigger on GitLab repo branch changes
  • Distribution
    • web server = Netlify
    • images/videos = Imgix, with the folder /uploads/ set as the Imgix 'Source'
  • Project

@mgan59
Copy link

mgan59 commented Mar 10, 2022

I drafted one for Docusaurus

  • Content
    • source control = git
    • storage tech = GitProviders: ['gitlab', 'github']
    • file management = Standard File System
    • source file formats = md, mdx
  • TGDP Templates
    • Docusaurus reads from /docs with sub-folders as categories so it would support a taxonomy of docs/guides or docs/how-tos from TGDP.
    • Supports Front-Matter Capabilties: tags, title, keywords, etc
  • Transformer
    • sources = MD, MDX
    • targets = HTML
    • tech = Typescript, Remark
  • Assembler
    • Docusaurus -- custom cli docusaurus build
  • Automations
    • Netlify Builds with Webhook trigger on GitProvider repo branch changes
    • Github Action available for github-pages
  • Distribution
    • Self-Hosted: S3+Cloudfront or alternative cloud-provider.
    • JAM-Stack: Netlify, Vercel, etc.
    • StaticFiles: images from /public folder are bundled as part of build and can be configured.
  • Features
    • Search: Algolia
    • Additional/Custom Pages: Yes
    • Multi-Version Docs: ?
  • Project

@mgan59
Copy link

mgan59 commented Mar 10, 2022

Potential version for the gitbabel starter-kit

for instance assembler versus automations think there could be some blurring between them

Here is an example that comes to mind:

  • Content
    • source control = git
    • storage tech = GitProviders: ['github']
    • content-management = Standard File System & GraphQL
    • source file formats = md, mdx, graphql
  • TGDP Templates
    • Supports .gitbabel/config in repository see docs to auto-index templates.
    • Supports Front-Matter Capabilties: tags, title, topicType which gitBabel supports topicType and can map TGDP template files to indicate their type such as reference, guides, tutorial
  • Transformer
    • sources = MD
    • targets = HTML
    • tech = TailwindCSS, NextJS, ApolloGraphQL
  • Assembler
    • NextJS + gitBabel
  • Automations
    • Netlify Builds with Webhook trigger on GitProvider repo branch changes
    • Github Action available for github-pages
    • Github App - required if pull-request, issues, and other github markdown streams to be accessed.
  • Distribution
    • Self-Hosted: S3+Cloudfront or alternative cloud-provider.
    • JAM-Stack: Netlify, Vercel, etc.
    • StaticFiles: images from /public folder are bundled as part of build and can be configured.
  • Features
    • API / Search: GraphQL
    • Additional/Custom Pages: Yes
    • Code-Syntax Highlighting: Yes / Prism
    • Multi-Repository: Yes
    • Multi-Version Docs: Yes
    • Preview-Branch-Support: Yes. [paid]
    • Authentication: Github OAuth [paid]
  • Project

@sivaraam
Copy link

sivaraam commented Mar 12, 2022

About the technical components for docusaurus:

  • Multi-Version Docs: ?

I suppose Docusaurus does support multiple versions of docs. See Versioning | Docusaurus

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants