{"id":28461215,"url":"https://github.com/cryptpad/blueprints","last_synced_at":"2026-03-01T14:33:04.755Z","repository":{"id":234427969,"uuid":"788886288","full_name":"cryptpad/blueprints","owner":"cryptpad","description":"CryptPad research \u0026 development repository","archived":false,"fork":false,"pushed_at":"2024-12-06T10:21:38.000Z","size":2450,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-10-19T23:47:39.457Z","etag":null,"topics":["algorithms","cryptography","cryptpad","diagrams","research"],"latest_commit_sha":null,"homepage":"https://blueprints.cryptpad.org","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cryptpad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":null,"open_collective":"cryptpad","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2024-04-19T09:26:04.000Z","updated_at":"2024-12-06T10:11:25.000Z","dependencies_parsed_at":"2024-04-30T15:49:01.016Z","dependency_job_id":null,"html_url":"https://github.com/cryptpad/blueprints","commit_stats":null,"previous_names":["cryptpad/blueprints"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cryptpad/blueprints","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptpad%2Fblueprints","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptpad%2Fblueprints/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptpad%2Fblueprints/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptpad%2Fblueprints/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cryptpad","download_url":"https://codeload.github.com/cryptpad/blueprints/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cryptpad%2Fblueprints/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29970990,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T14:11:48.712Z","status":"ssl_error","status_checked_at":"2026-03-01T14:11:48.352Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","cryptography","cryptpad","diagrams","research"],"created_at":"2025-06-07T03:07:59.018Z","updated_at":"2026-03-01T14:33:04.641Z","avatar_url":"https://github.com/cryptpad.png","language":"TeX","funding_links":["https://opencollective.com/cryptpad"],"categories":[],"sub_categories":[],"readme":"## Usage\n\nEnter the subdirectory with all the 11ty config:\n```sh\ncd .app\n```\n\nInstall 11ty nd dependencies:\n```sh\nnpm i\n```\n\nRun the development server:\n```sh\nnpm run dev\n```\n\nStatic site builds to the `.app/dist` folder which is ignored by GIT\n\n## Organization\n\nThis folder contains the templates and the content to generate the different\npages from the Blueprints summary website.\n\n### `index.njk`\n\n\u003c!-- XXX Document \"automatically generated mermaid.js roadmap diagram\" --\u003e\n\nThis file contains the home page of the project with automatic roadmap\ngeneration.\n\n#### Roadmap\n\nThe roadmap appearing on the home page is automatically generated as a\n`mermaid.js` graph using the metadata of the different pages.\nFor instance, the `document/recommendations/contact_verification.md` page\ncontains the following metadata:\n\n```yaml\ntags: roadmap\nid: contact-verification\nlinkto: [reduce-trust, secret-sharing, revocation]\n```\n\n- `tags: roadmap` includes the generated page in the `roadmap`’s 11ty\n  collection, in practice creating the node in the roadmap.\n- `id: contact-verification` specify the `id` of the node, used to link other\n  nodes to it.\n- `linkto: [reduce-trust, secret-sharing, revocation]` specify the `id`s of the\n  nodes which the “contact verification” node links to.\n\n### Pages\n\nPages are markdown (`.md`) files containing… the content of the file.\n\nTheir metadata contains information that serves multiple purposes, as shown in\nthe roadmap section above:\n- `title`: the title of the page.\n- Right sidebar: some of these metadata are used to populate the sidebar:\n  - `author`: the author of the page.\n  - `authors`: the authors of the page if many, in a YAML array.\n  - `date`: the publication date (in\n    [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-mm-dd`) of\n    the page that will be converted in `dd-mm-YYYY` in the sidebar.\n  - `revision`: the version number of the document.\n  - `pdf`: the absolute path from the root of this Git repository of a related\n    portable document file. More information available below.\n  - `showtoc`: a Boolean value specifying whether the table of content should be\n    generated and included in the sidebar.\n  - `comment`: extra comments to be added.\n\n### Security recommendations\n\nIn `document/recommendations/`, the pages are also markdown files, including the\n`term` property in their metadata indicating if it is a `short`, `medium` or\n`long` term recommendation.\n\n### User stories\n\nAs user stories follow the [same\ntemplate](https://en.wikipedia.org/wiki/User_story#Common_templates), they are\ngenerated as such in the yaml header of the markdown files.\n\nFor instance, in `document/user-stories/delegated-upload-quotas.md`:\n\n```yaml\ncategory: Honest user stories\n[…]\ngoal: people can submit images/files as part of their response\ntitle: Delegated upload quotas\nwhat: add an upload question to my form\nwho: registered form author\n```\n\nRenders as\n\n\u003e As a **registered form author**, I want to **add an upload question to\n\u003e my form** so that **people can submit images/files as part of their\n\u003e response**. \n\nThe values common to every user story are:\n- `category: Honest user stories`: indicates to 11ty that the file is a user\n  story.\n- `title`: indicates the title of the user story that appears on top of the user\n  story page.\n- `who`: the kind of user, appears as “As **[who]**,”.\n- `what`: what the user wants to do, renders as “I want to **[what]**”.\n\nThen the last part of the sentence is defined by one of these properties:\n- `goal`: renders as “so that **[goal]**.”\n- `why`: renders as “because **[why]**”.\n- `problem`: renders as “but **[problem]**”.\n- `solution`: renders as “so I **[solution]**”.\n\nAn extra part can be added using the `inline` property to be added as is at the\nend of the sentence.\n\nMore fields can be added in the `extra` property and only appear in the user\nstory page (and not the listing).\n\nThese are rendered verbatim except for the following formatted sections:\n- `issues`: GitHub issues related to the user story, it requires two field to be rendered properly:\n  - `reference`: the GitHub reference in the [issue\n    list](https://github.com/cryptpad/cryptpad/issues).\n  - `title`: the title of the issue that will appear in the link.\n- `acceptance criteria`: the acceptance criteria to mark an user story as\n  “solved“, it needs the following fields:\n  - `title`: the name of the criterion.\n  - `done`: a boolean value that indicates if the issue is solved or not\n    (ignored for the moment).\n\n### Portable documents\n\nPortable document files can be linked to a page and will appear in the right\npanel.\n\nThey must appear in the `_assets/` directory at their right location and this\nlocation should be listed in the `pdf` property in the yaml header of the page.\n\nFor example, in `document/whitepaper.md`:\n```yaml\npdf: /_assets/document/whitepaper/main.pdf\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptpad%2Fblueprints","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcryptpad%2Fblueprints","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcryptpad%2Fblueprints/lists"}