Skip to content

NullCipherr/portfolio-content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

portfolio-content

Central SSOT repository for multilingual portfolio content served as raw Markdown and JSON

Content Languages Delivery


Documentation

Este repositório é a fonte única de verdade (SSOT) para conteúdo de portfólio consumido por múltiplas interfaces.

Repositórios consumidores principais:

Base raw pública:

  • https://raw.githubusercontent.com/NullCipherr/portfolio-content/main

Preview

Este projeto não possui frontend próprio.

Ele publica conteúdo bruto para consumo por aplicações externas via HTTP:

  • content/pt/about.md
  • content/pt/bio-short.md
  • content/pt/skills.json
  • content/pt/projects.json
  • meta/projects-meta.json

Overview

portfolio-content separa conteúdo de apresentação das aplicações consumidoras.

O projeto prioriza:

  • Centralização de textos institucionais e técnicos;
  • Estrutura estável e previsível para múltiplos clientes de UI;
  • Versionamento de conteúdo por idioma;
  • Contratos simples para consumo via fetch;
  • Evolução de conteúdo sem alterar código de interface.

Features

  • Bios em Markdown (about, bio-short, bio-long) por idioma.
  • Skills estruturadas por categoria em JSON.
  • Projetos estruturados com metadados de links, tags e resumo.
  • Ordem e destaque de projetos via meta/projects-meta.json.
  • Compatibilidade multiportfólio com portfolio-os e portfolio-terminal.

Architecture

Fluxo de consumo de alto nível:

  1. Repositório mantém conteúdo em content/{locale} e meta/.
  2. Aplicações consumidoras (portfolio-os e portfolio-terminal) fazem fetch dos arquivos raw.
  3. Cada cliente aplica parsing/normalização para seu modelo interno.
  4. projects-meta.json define featured e order para ordenação consistente.
  5. UI renderiza conteúdo conforme idioma, layout e experiência alvo.

Performance

Boas práticas recomendadas para consumidores:

  • Cache em memória no ciclo de vida do app;
  • Revalidação controlada (quando necessário);
  • Fallback local para indisponibilidade de rede;
  • Parsing leve (Markdown + JSON) com validação de contrato.

Technical Decisions

  • Formato híbrido: Markdown para texto editorial e JSON para dados estruturados.
  • Contrato orientado a conteúdo: foco em legibilidade e portabilidade.
  • Sem backend obrigatório: distribuição via raw.githubusercontent.com.
  • IDs estáveis em projetos para compatibilidade entre versões de UI.

Roadmap

  • Adicionar validação automática de schema para JSONs (CI).
  • Versionar contratos de conteúdo (v1, v2) quando necessário.
  • Adicionar novos idiomas mantendo compatibilidade retroativa.
  • Incluir changelog específico de conteúdo editorial.

Tech Stack

  • Formatos: Markdown, JSON
  • Hospedagem: GitHub
  • Entrega: Raw GitHub URLs
  • Versionamento: Git

Project Structure

.
├── content/
│   ├── pt/
│   │   ├── about.md
│   │   ├── bio-short.md
│   │   ├── bio-long.md
│   │   ├── skills.json
│   │   └── projects.json
│   └── en/
│       ├── about.md
│       ├── bio-short.md
│       ├── bio-long.md
│       ├── skills.json
│       └── projects.json
├── meta/
│   └── projects-meta.json
└── README.md

Getting Started

Prerequisites

  • Git
  • Conta no GitHub

Edit and publish

git clone git@github.com:NullCipherr/portfolio-content.git
cd portfolio-content
# edite os arquivos em content/ e meta/
git add .
git commit -m "chore(content): atualiza dados do portfólio"
git push origin main

Environment Variables

Este repositório não exige variáveis de ambiente para publicação de conteúdo.


NPM Scripts

Não aplicável neste repositório (sem runtime Node obrigatório).


CI/CD

Recomendado para evolução do projeto:

  • validação de JSON em pull request;
  • validação de links essenciais;
  • bloqueio de merge em caso de contrato inválido.

Deployment

Publicação automática ocorre pelo próprio GitHub (branch main).

Os consumidores devem ler os arquivos por raw.githubusercontent.com.

Exemplo:

https://raw.githubusercontent.com/NullCipherr/portfolio-content/main/content/pt/projects.json

License

Seguir a licença definida para o repositório portfolio-content.


Contributing

Contribuições editoriais e estruturais são bem-vindas.

Recomendações:

  • manter consistência entre pt e en;
  • não quebrar contratos JSON existentes;
  • preservar IDs de projetos;
  • documentar mudanças relevantes no commit.

About

Multilingual portfolio content SSOT (Markdown/JSON) for multiple portfolio experiences, delivered via raw.githubusercontent.com.

Topics

Resources

Stars

Watchers

Forks

Contributors