{"id":18917782,"url":"https://github.com/tus/tus.io","last_synced_at":"2026-03-12T00:30:15.989Z","repository":{"id":7525479,"uuid":"8876720","full_name":"tus/tus.io","owner":"tus","description":"The tus.io website","archived":false,"fork":false,"pushed_at":"2025-02-15T08:47:27.000Z","size":62615,"stargazers_count":215,"open_issues_count":10,"forks_count":73,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-02-15T09:27:02.463Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tus.io","language":"XSLT","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2013-03-19T11:12:19.000Z","updated_at":"2025-02-15T08:45:11.000Z","dependencies_parsed_at":"2023-09-29T08:17:15.379Z","dependency_job_id":"7b3acaf6-1a93-4ce9-9cab-4ed0b1d81d3e","html_url":"https://github.com/tus/tus.io","commit_stats":{"total_commits":959,"total_committers":55,"mean_commits":"17.436363636363637","dds":0.5245046923879041,"last_synced_commit":"3d580e0daf141af58b0f81e66477cbe95f6d7095"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tus%2Ftus.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tus%2Ftus.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tus%2Ftus.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tus%2Ftus.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tus","download_url":"https://codeload.github.com/tus/tus.io/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239914930,"owners_count":19717760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-11-08T10:28:08.108Z","updated_at":"2026-03-12T00:30:15.940Z","avatar_url":"https://github.com/tus.png","language":"XSLT","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tus.io\n\n## Development\n\n**Getting ready**\n\n- `git clone github.com/tus/tus.io \u0026\u0026 cd tus.io`\n- `yarn install`\n- `yarn dev`\n\nThe site is automatically published to GitHub Pages on any commits to the `main`\nbranch.\n\n**Philosophy/rules**\n\n- Do not hydrate components unless strictly necessary\n  - This reduces the amount of JavaScript shipped to users' browsers.\n- Write scoped CSS as much as possible.\n  - Avoids CSS collisions.\n  - Makes CSS dependencies explicit, allowing for easier editing.\n  - Astro components and CSS Modules import for Preact components make this\n    easy.\n- Write semantic HTML.\n- Use Astro components for static reusable components.\n- Use Preact components for interactive components.\n\n## Content editing\n\nPage content is located in `src/pages`. Routing is file-based, meaning that both\nthe directory and names of files determine the URL of the page. For example,\n`src/pages/docs/clients/node.md` will be available at `/docs/clients/node`.\n\nIt is possible to write pages in Markdown, MDX or Astro. The latter two allow\nfor interactive features, such as embedding Preact components. If you want to\nuse an interactive component on a page, make sure you\n[instruct Astro to hydrate](https://docs.astro.build/en/core-concepts/framework-components/#hydrating-interactive-components)\nthe component. See `src/pages/demo.mdx` for an example of how that would look.\n\nContent collections, currently blog posts, features and protocols, are placed in\n`src/content`. Pages are not automatically generated from content collections.\nInstead, the content collections are consumed in pages, for instance in\n`src/pages/blog/index.astro` for the blog feed page. Route generation for single\nblog posts is handled in `src/pages/blog/[...slug].astro`. The pages are\ngenerally also where layouts are applied.\n\nNot automatically generating pages is useful because content collections can be\nused in various ways. The features collection for instance, does not have pages,\nbut it's Markdown contents are instead rendered on the homepage.\n\nThe protocols contents are generated by `yarn inject` and should not be edited\nmanually.\n\n## Directory structure\n\n- `src/pages` - Pages\n- `src/components` - Reusable components\n- `src/content` - Content collections and their configuration\n- `src/layouts` - Layouts\n- `src/styles` - Global styles\n- `src/assets` - Any images placed here and linked to from `img` tags in Astro\n  templates, Markdown image definitions, or imported from `.ts(x)` files will be\n  automatically optimized by Astro\n- `src/lib` - Utility functions\n- `src/types` - Type definitions\n\n## Releasing a new version of the `tus` protocol\n\nAssuming `tus/tus-resumable-upload-protocol` has been updated with the new\nversion.\n\n- Add the new version to `./scripts/inject-protocol.sh`\n- `chmod +x ./scripts/inject-protocol.sh`\n- `yarn inject`\n- Commit the changes and push\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftus%2Ftus.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftus%2Ftus.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftus%2Ftus.io/lists"}