{"id":50500852,"url":"https://github.com/singi-labs/barazo-web","last_synced_at":"2026-06-02T11:03:49.780Z","repository":{"id":337541610,"uuid":"1153568033","full_name":"singi-labs/barazo-web","owner":"singi-labs","description":"Barazo default frontend","archived":false,"fork":false,"pushed_at":"2026-03-06T02:08:18.000Z","size":1434,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-06T03:36:43.146Z","etag":null,"topics":["atprotocol","forum","frontend","nextjs","shadcn-ui","tailwindcss"],"latest_commit_sha":null,"homepage":"https://barazo.forum","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/singi-labs.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":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-09T12:59:59.000Z","updated_at":"2026-03-06T01:53:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/singi-labs/barazo-web","commit_stats":null,"previous_names":["atgora-forum/atgora-web","barazo-forum/barazo-web","singi-labs/barazo-web"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/singi-labs/barazo-web","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singi-labs%2Fbarazo-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singi-labs%2Fbarazo-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singi-labs%2Fbarazo-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singi-labs%2Fbarazo-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/singi-labs","download_url":"https://codeload.github.com/singi-labs/barazo-web/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singi-labs%2Fbarazo-web/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33818585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-02T02:00:07.132Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["atprotocol","forum","frontend","nextjs","shadcn-ui","tailwindcss"],"created_at":"2026-06-02T11:03:48.755Z","updated_at":"2026-06-02T11:03:49.775Z","avatar_url":"https://github.com/singi-labs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cpicture\u003e\n  \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/singi-labs/.github/main/assets/logo-dark.svg\"\u003e\n  \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/singi-labs/.github/main/assets/logo-light.svg\"\u003e\n  \u003cimg alt=\"Barazo Logo\" src=\"https://raw.githubusercontent.com/singi-labs/.github/main/assets/logo-dark.svg\" width=\"120\"\u003e\n\u003c/picture\u003e\n\n# Barazo Web\n\n**Default frontend for Barazo forums -- accessible, themeable, replaceable.**\n\n[![Status: Alpha](https://img.shields.io/badge/status-alpha-orange)]()\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![CI](https://github.com/singi-labs/barazo-web/actions/workflows/ci.yml/badge.svg)](https://github.com/singi-labs/barazo-web/actions/workflows/ci.yml)\n[![Node.js](https://img.shields.io/badge/node-24%20LTS-brightgreen)](https://nodejs.org/)\n[![TypeScript](https://img.shields.io/badge/typescript-5.x-blue)](https://www.typescriptlang.org/)\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nThe default frontend for Barazo forums. Communicates with the [barazo-api](https://github.com/singi-labs/barazo-api) backend exclusively via REST API. Forum admins can customize the theme or replace this frontend entirely. WCAG 2.2 AA compliant from first commit.\n\n---\n\n## Tech Stack\n\n| Component           | Technology                                                       |\n| ------------------- | ---------------------------------------------------------------- |\n| Framework           | Next.js 16 / React 19 / TypeScript (strict)                      |\n| Styling             | TailwindCSS                                                      |\n| Components          | shadcn/ui (Radix primitives) for admin; custom forum components  |\n| Colors              | Radix Colors (12-step system) + Flexoki (accent hues)            |\n| Icons               | Phosphor Icons (6 weights)                                       |\n| Typography          | Source Sans 3 / Source Code Pro (self-hosted, zero external DNS) |\n| Syntax highlighting | Shiki + Flexoki theme (SSR, dual light/dark)                     |\n| Testing             | Vitest + vitest-axe + @axe-core/playwright                       |\n| Accessibility       | WCAG 2.2 AA from first commit                                    |\n| SEO                 | JSON-LD, OpenGraph, sitemaps, SSR                                |\n\n---\n\n## Features\n\n**19 pages:**\n\n| Route                    | Page                                                      |\n| ------------------------ | --------------------------------------------------------- |\n| `/`                      | Topic list (home)                                         |\n| `/[handle]/[rkey]`       | Topic detail with threaded replies                        |\n| `/[handle]/[rkey]/edit`  | Edit topic                                                |\n| `/new`                   | Create new topic                                          |\n| `/c/[slug]`              | Category view                                             |\n| `/search`                | Full-text search                                          |\n| `/profile/[handle]`      | User profile                                              |\n| `/settings`              | User preferences (maturity, notifications, cross-posting) |\n| `/notifications`         | Notification center                                       |\n| `/accessibility`         | Accessibility statement                                   |\n| `/admin`                 | Admin dashboard                                           |\n| `/admin/categories`      | Category management                                       |\n| `/admin/moderation`      | Moderation queue                                          |\n| `/admin/users`           | User management                                           |\n| `/admin/settings`        | Community settings                                        |\n| `/admin/content-ratings` | Content maturity settings                                 |\n| `/admin/plugins`         | Plugin management (placeholder)                           |\n| `/api/health`            | Health endpoint                                           |\n| Dynamic                  | Sitemap, robots.txt, OpenGraph image generation           |\n\n**26 components:**\n\n- Forum: topic-list, topic-card, topic-view, topic-form, reply-card, reply-thread, category-nav\n- Editor: markdown-editor, markdown-content, markdown-preview\n- Interaction: reaction-bar, search-input, pagination, notification-bell, confirm-dialog, report-dialog\n- User: user-profile-card, reputation-badge, ban-indicator, self-label-indicator\n- Navigation: breadcrumbs, skip-links, theme-toggle, theme-provider\n- Layout: forum-layout, admin-layout\n\n**Core capabilities:**\n\n- Dark/light theme toggle\n- Block/mute user controls (portable via PDS)\n- Age gate dialog (GDPR minimum age 16)\n- Self-label indicators on posts\n- Breadcrumb navigation with JSON-LD structured data\n- OpenGraph image generation per topic\n- Sitemap + robots.txt\n- Skip links for keyboard navigation\n\n---\n\n## Planned Features\n\n- Plugin management UI (page exists, functionality pending)\n- Stripe billing dashboard integration\n- PWA (push notifications, offline, add-to-home-screen)\n- AI feature UI (semantic search, AI moderation dashboard, translation)\n- Cross-community search aggregator UI\n\n---\n\n## Quick Start\n\n**Prerequisites:** Node.js 24 LTS, pnpm, [barazo-api](https://github.com/singi-labs/barazo-api) running (or mock handlers).\n\n```bash\ngit clone https://github.com/singi-labs/barazo-web.git\ncd barazo-web\npnpm install\n\n# Run development server\npnpm dev\n```\n\nOpen [http://localhost:3001](http://localhost:3001) to view in the browser.\n\n---\n\n## Development\n\n```bash\npnpm test           # Run all tests\npnpm lint           # ESLint + a11y rules\npnpm typecheck      # TypeScript strict mode\n```\n\nThree-tier accessibility testing:\n\n1. **Static analysis:** eslint-plugin-jsx-a11y (strict mode)\n2. **Unit tests:** vitest-axe on rendered components\n3. **Integration:** @axe-core/playwright in CI\n\nSee [CONTRIBUTING.md](https://github.com/singi-labs/.github/blob/main/CONTRIBUTING.md) for branching strategy, commit format, and code review process.\n\n**Key standards:**\n\n- TypeScript strict mode (no `any`, no `@ts-ignore`)\n- Test-driven development (TDD)\n- WCAG 2.2 AA from first commit\n- Semantic HTML (`\u003cnav\u003e`, `\u003cmain\u003e`, `\u003carticle\u003e`, `\u003caside\u003e`)\n- Keyboard navigation on all interactive elements\n- Conventional commits enforced\n\n---\n\n## Related Repositories\n\n| Repository                                                       | Description                                   | License  |\n| ---------------------------------------------------------------- | --------------------------------------------- | -------- |\n| [barazo-api](https://github.com/singi-labs/barazo-api)           | AppView backend (Fastify, firehose, REST API) | AGPL-3.0 |\n| [barazo-lexicons](https://github.com/singi-labs/barazo-lexicons) | AT Protocol lexicon schemas + generated types | MIT      |\n| [barazo-deploy](https://github.com/singi-labs/barazo-deploy)     | Docker Compose deployment templates           | MIT      |\n| [barazo-website](https://github.com/singi-labs/barazo-website)   | Marketing + documentation site                | MIT      |\n\n---\n\n## Community\n\n- **Website:** [barazo.forum](https://barazo.forum)\n- **Discussions:** [GitHub Discussions](https://github.com/orgs/singi-labs/discussions)\n- **Issues:** [Report bugs](https://github.com/singi-labs/barazo-web/issues)\n\n---\n\n## License\n\n**MIT**\n\nSee [LICENSE](LICENSE) for full terms.\n\n---\n\nMade with ♥ in 🇪🇺 by [Singi Labs](https://singi.dev)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsingi-labs%2Fbarazo-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsingi-labs%2Fbarazo-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsingi-labs%2Fbarazo-web/lists"}