A fully git-based, headless video and audio podcast platform. No web interfaces, no databases, no CMS. Content lives in a git repository, media assets in S3-compatible storage, and everything is controlled from the terminal and text editor. AI coding tools handle the heavy lifting of implementation.
Many organizations – NGOs, associations, initiatives, editorial teams, political organizations, as well as companies – produce large amounts of structured digital content: internal documentation, policies, protocols, resolutions, position papers, as well as external artifacts such as letters, invitations, or documents following a strict corporate design (for example via Typst or Markdown templates).
From a technical perspective, Git, Markdown, CI/CD, and AI are well suited to manage this content in a versioned, auditable, and highly automated way. In practice, however, these workflows often fail due to accessibility: GitHub is powerful, but for many contributors it is too complex, English-only, and cognitively overwhelming.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| type standardFunction = (arg1: number, arg2: number) => number | |
| // Should be okay | |
| const add: standardFunction = (arg1, arg2) => arg1 + arg2 // Types can be inferred from 'standardFunction' | |
| const addLater = ( | |
| arg1: number, | |
| arg2: number | |
| ): (() => Promise<number>) => async () => arg1 + arg2 // Return type of promise can be inferred from type definition of 'addLater' | |
| // Should not be okay |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import * as R from 'ramda' | |
| import * as React from 'react' | |
| import { ReactElement } from 'react' | |
| import { connect } from 'react-redux' | |
| import { State } from 'src/selectors' | |
| import * as urlJoin from 'url-join' | |
| import * as selectors from '../../../selectors' | |
| const API_URL = | |
| process.env.REACT_APP_API_URL || | |
| `https://api.example.com/.netlify/functions` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| diff --git a/node_modules/scrypt/index.js b/node_modules/scrypt/index.js | |
| index 7b13a79..1e40d76 100644 | |
| --- a/node_modules/scrypt/index.js | |
| +++ b/node_modules/scrypt/index.js | |
| @@ -1,6 +1,6 @@ | |
| "use strict"; | |
| -var scryptNative = require("./build/Release/scrypt") | |
| +var scryptNative = require("./build/Release/scrypt.node") | |
| , Crypto = require("crypto") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| declare module 'bn.js' { | |
| type Endianness = 'le' | 'be'; | |
| class BN { | |
| constructor( | |
| inputNumber: number | string | number[] | Buffer, | |
| base?: number, | |
| endian?: Endianness | |
| ); | |
| clone(): BN; | |
| toString(base?: number, length?: number): string; |