{"id":17332340,"url":"https://github.com/codedealer/mirror-table","last_synced_at":"2026-02-16T14:31:07.888Z","repository":{"id":230441989,"uuid":"666881092","full_name":"codedealer/mirror-table","owner":"codedealer","description":"Display a virtual table top to multiple devices via cloud.","archived":false,"fork":false,"pushed_at":"2026-01-31T01:02:31.000Z","size":1321,"stargazers_count":0,"open_issues_count":11,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-31T15:16:11.486Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://mirror-table.vercel.app","language":"TypeScript","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/codedealer.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-07-15T22:38:28.000Z","updated_at":"2026-01-31T01:02:35.000Z","dependencies_parsed_at":"2025-08-02T21:14:56.710Z","dependency_job_id":"51225456-bf30-41f5-bb50-35f9d16edf29","html_url":"https://github.com/codedealer/mirror-table","commit_stats":null,"previous_names":["codedealer/mirror-table"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codedealer/mirror-table","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedealer%2Fmirror-table","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedealer%2Fmirror-table/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedealer%2Fmirror-table/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedealer%2Fmirror-table/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codedealer","download_url":"https://codeload.github.com/codedealer/mirror-table/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codedealer%2Fmirror-table/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29510130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: 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":[],"created_at":"2024-10-15T14:57:22.221Z","updated_at":"2026-02-16T14:31:07.883Z","avatar_url":"https://github.com/codedealer.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Mirror Table\n\n```\nThis project is in early development stage with some functionality missing or broken\n```\n\nShare a virtual canvas with multiple people. A table, controlled by a host, is mirrored to all connected clients. Each table has a set of scenes consisting of various graphic and text elements. It is built with TTRPG in mind, but can be used for any use case that involves presentation of graphic information.\n\nEvery element on canvas is represented by an asset that is stored on a host's Google Drive ensuring persistence and easy sharing. Real-time updates are handled by Firebase.\n\n## Setup\n\nThis project was built from Vercel Nuxt template, but it is not necessary to deploy it on Vercel. The project can be deployed on any platform that supports Node.js.\n\nMake sure to install the dependencies (pnpm is the recommended package manager):\n\n```bash\npnpm install\n```\n\n## Development Server\n\nWhen working on the application it is recommended to install a lint pre-commit hook:\n\n```bash\npnpm exec husky install # First time only\n```\n\nStart the development server on http://localhost:3000\n\n```bash\npnpm run dev\n```\n\n## Production\n\nBuild the application for production:\n\n```bash\npnpm run build\n```\n\nLocally preview production build:\n\n```bash\npnpm run preview\n```\n\n## Vercel notes\n\nIf you deploy to Vercel, the platform may default to older pnpm/Node versions based on project age. To ensure Vercel uses pnpm 10+ and Node 22 (as required by this repo):\n\n- Make sure `package.json` contains the correct engines (for example: `\"node\": \"\u003e=22.20.0\"` and `\"packageManager\": \"pnpm@10.18.0\"`).\n- Add an explicit install step to `vercel.json` so Corepack is enabled during the build:\n\n```json\n\"installCommand\": \"corepack enable pnpm \u0026\u0026 pnpm install\"\n```\n\n- Additionally, if you see pnpm version errors in Vercel builds, set the environment variable `ENABLE_EXPERIMENTAL_COREPACK=1` in the Vercel dashboard to opt in to Corepack during builds.\n\nThis ensures the build environment matches local development (Node 22 + pnpm 10).\n\nCheckout the [deployment documentation](https://v3.nuxtjs.org/guide/deploy/presets) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedealer%2Fmirror-table","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodedealer%2Fmirror-table","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodedealer%2Fmirror-table/lists"}