{"id":28305142,"url":"https://github.com/robert-wettstaedt/grnyte","last_synced_at":"2026-04-14T03:33:00.777Z","repository":{"id":243700362,"uuid":"776694043","full_name":"robert-wettstaedt/grnyte","owner":"robert-wettstaedt","description":"Privacy-first boulder area management platform with multi-tenant architecture","archived":false,"fork":false,"pushed_at":"2026-04-06T17:36:42.000Z","size":6778,"stargazers_count":3,"open_issues_count":20,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-06T19:24:11.403Z","etag":null,"topics":["bouldering","climbing","drizzle-orm","postgresql","svelte","sveltekit","tailwind","typescript"],"latest_commit_sha":null,"homepage":"https://grnyte.rocks","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/robert-wettstaedt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-03-24T08:05:19.000Z","updated_at":"2026-04-06T17:36:08.000Z","dependencies_parsed_at":"2024-12-10T22:17:53.435Z","dependency_job_id":"97f83b19-45f6-494d-a4be-a8a603742baf","html_url":"https://github.com/robert-wettstaedt/grnyte","commit_stats":null,"previous_names":["robert-wettstaedt/crag-track-app","robert-wettstaedt/grnyte"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/robert-wettstaedt/grnyte","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robert-wettstaedt%2Fgrnyte","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robert-wettstaedt%2Fgrnyte/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robert-wettstaedt%2Fgrnyte/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robert-wettstaedt%2Fgrnyte/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/robert-wettstaedt","download_url":"https://codeload.github.com/robert-wettstaedt/grnyte/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/robert-wettstaedt%2Fgrnyte/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31781292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"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":["bouldering","climbing","drizzle-orm","postgresql","svelte","sveltekit","tailwind","typescript"],"created_at":"2025-05-24T01:12:29.084Z","updated_at":"2026-04-14T03:33:00.772Z","avatar_url":"https://github.com/robert-wettstaedt.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./static/android-chrome-512x512.png\" width=\"128\" alt=\"grnyte Logo\" /\u003e\n\u003c/p\u003e\n\n# grnyte\n\nPrivacy-first boulder area management platform with multi-tenant architecture.\n\n[Website](https://grnyte.rocks) | [Demo](https://demo.grnyte.rocks)\n\n## Architecture\n\n**grnyte** is built for boulder area developers who need to balance collaboration with access protection. Using Supabase's Row Level Security (RLS), the platform provides complete data isolation between regions while enabling seamless collaboration within trusted communities.\n\nPerfect for managing sensitive bouldering areas on private land where public exposure could compromise access agreements.\n\n## Key Technical Features\n\n- 🔒 **Multi-tenant architecture with RLS** - Complete data isolation between regions, invitation-only access control\n- 🏔️ **Professional area management** - Organize areas, sectors, and problems with detailed topos and grading systems (FB/V grades)\n- 📊 **Structured data vs spreadsheets** - Replace scattered Excel files with proper database schema and real-time collaboration\n- 📈 **Session tracking and analytics** - Log ascents, track progress, and visualize development over time\n- 📸 **Media integration** - Link photos and videos from self-hosted file storage (Nextcloud support)\n- 🔐 **Privacy-first design** - Keep sensitive area data private within your community until ready for public platforms\n- 📤 **Data portability** - Export capabilities for eventual migration to public platforms when appropriate\n- 🚀 **Self-hostable** - Full control over your data with Docker deployment and self-hosted Supabase instance\n\n## Use Cases\n\n- **Private land development**: Manage areas with sensitive access without public exposure\n- **Local community collaboration**: Replace email chains and version conflicts with real-time updates\n- **Data migration**: Import existing problem lists from Excel/CSV files\n- **Professional documentation**: Maintain detailed records with proper backup and version control\n- **Access protection**: Keep coordinates and beta private until landowner relationships are secured\n\n## Installation\n\n1. Ensure you have a Supabase instance running, either in the cloud or locally.\n2. Copy [`.env.example`](./.env.example) to `.env` and fill in the necessary information about your Supabase instance and Nextcloud.\n\n   ```bash\n   npm run generate\n   npm run migrate\n   ```\n\n## Integration\n\nWhen areas are established and access is secured, data can be exported to public platforms:\n\n- 8a.nu\n- 27crags\n- The Crag\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobert-wettstaedt%2Fgrnyte","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frobert-wettstaedt%2Fgrnyte","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frobert-wettstaedt%2Fgrnyte/lists"}