{"id":48833236,"url":"https://github.com/kychee-com/kychon","last_synced_at":"2026-04-14T21:31:24.248Z","repository":{"id":348693093,"uuid":"1194023187","full_name":"kychee-com/kychon","owner":"kychee-com","description":"AI-powered membership/community portal template","archived":false,"fork":false,"pushed_at":"2026-04-14T09:56:20.000Z","size":40415,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-14T10:16:33.417Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Astro","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/kychee-com.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":"2026-03-27T20:45:48.000Z","updated_at":"2026-04-14T09:56:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kychee-com/kychon","commit_stats":null,"previous_names":["kychee-com/wildlychee"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/kychee-com/kychon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kychee-com%2Fkychon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kychee-com%2Fkychon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kychee-com%2Fkychon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kychee-com%2Fkychon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kychee-com","download_url":"https://codeload.github.com/kychee-com/kychon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kychee-com%2Fkychon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31817123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","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":[],"created_at":"2026-04-14T21:31:20.510Z","updated_at":"2026-04-14T21:31:24.240Z","avatar_url":"https://github.com/kychee-com.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Kychon\n\n[![Tests](https://img.shields.io/badge/tests-205%20passed-brightgreen?style=flat-square)](https://github.com/kychee-com/kychon)\n[![License: MIT](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](LICENSE)\n[![Biome](https://img.shields.io/badge/linter-Biome-60a5fa?style=flat-square\u0026logo=biome\u0026logoColor=white)](https://biomejs.dev)\n[![Platform: Run402](https://img.shields.io/badge/platform-Run402-ff6b35?style=flat-square)](https://run402.com)\n[![AI Native](https://img.shields.io/badge/AI-built--in-a855f7?style=flat-square)](https://kychon.com/#ai)\n\nA forkable, AI-powered membership portal built on [Run402](https://run402.com). One deploy gives your community a full-featured site with member directory, events, forum, resources, committees, and built-in AI moderation and translation.\n\n**Live demo:** [eagles.kychon.com](https://eagles.kychon.com)\n**Marketing site:** [kychon.com](https://kychon.com)\n\n## Features\n\n- **Member Directory** - Searchable profiles with custom fields and tier badges\n- **Events \u0026 RSVP** - Create events, collect RSVPs, send reminders\n- **Forum** - Categories, topics, replies with reactions\n- **Resources** - File library with categories and member-only access\n- **Committees** - Working groups with members, chairs, and descriptions\n- **Announcements** - Pinned posts with reactions and activity feed\n- **AI Moderation** - Built-in content moderation via Run402 (free, no API key)\n- **AI Translation** - Built-in auto-translation via Run402 (no API key)\n- **Inline Editing** - Admins edit content directly on the page\n- **i18n** - Full internationalization with translation files\n- **Config-Driven** - Rebrand, toggle features, restructure via database config\n- **Dark Mode** - System-aware with manual toggle\n\n## Tech Stack\n\n- **Frontend:** Vanilla JS, HTML5, CSS3 (no frameworks, no build step)\n- **Runtime:** Node.js edge functions on Run402\n- **Database:** PostgreSQL via Run402 (PostgREST)\n- **Auth:** Google OAuth + password (Run402 built-in)\n- **Testing:** Vitest + happy-dom + fast-check\n- **Linting:** Biome\n- **Deploy:** One-command deploy via `deploy.js`\n\n## Quick Start\n\n```bash\n# Install dependencies\nnpm install\n\n# Set up Run402\nnpm install -g run402\nrun402 init\nrun402 tier set prototype\n\n# Provision and deploy\nrun402 projects provision --name \"my-portal\"\nRUN402_PROJECT_ID=\u003cyour_project_id\u003e SUBDOMAIN=\u003cyour-name\u003e node deploy.js\n```\n\nYour portal is live at `\u003cyour-name\u003e.run402.com`.\n\n## Project Structure\n\n```\nkychon/\n├── deploy.js              # One-command deploy to Run402\n├── schema.sql             # All tables (idempotent migrations)\n├── seed.sql               # Default config + sample data\n├── site/                  # Static frontend\n│   ├── *.html             # One HTML file per page\n│   ├── css/               # Theme variables + component styles\n│   ├── js/                # One JS file per feature\n│   └── custom/            # Brand config + i18n strings\n├── functions/             # Serverless edge functions\n├── marketing/             # Marketing site (kychon.com)\n├── demo/                  # Demo seed data (Eagles, Silver Pines, etc.)\n├── tests/                 # Unit + integration tests\n├── docs/                  # Full spec + platform docs\n└── openspec/              # Change management artifacts\n```\n\n## Development\n\n```bash\n# Run tests\nnpx vitest run\n\n# Lint + format check\nnpx biome check .\n\n# Type check\nnpx tsc --noEmit --project jsconfig.json\n\n# All three at once\nnpm run check\n```\n\n## Customization\n\nKychon is designed to be customized by AI agents. Three tiers:\n\n1. **SQL only** (80%) - Rebrand, toggle features, restructure via `site_config` table\n2. **HTML/CSS** (15%) - Visual and layout changes\n3. **Full fork** (5%) - New tables, edge functions, page types\n\nSee [CUSTOMIZING.md](CUSTOMIZING.md) for the agent guide.\n\n## Demo Portals\n\n| Portal | Description | URL |\n|--------|-------------|-----|\n| The Eagles | Good Samaritans of Wichita | [eagles.kychon.com](https://eagles.kychon.com) |\n| Silver Pines | Senior center with accessibility focus | demo/silver-pines/ |\n| Barrio Unido | Spanish-language community center | demo/barrio-unido/ |\n\n## Architecture\n\nThe central design principle: **an AI agent's API is SQL for config and file editing for code.**\n\n- **Config-driven**: `site_config` table holds branding, theme, feature flags, nav structure\n- **Schema-driven pages**: Homepage sections are database rows, not hardcoded files\n- **Inline editing**: The page IS the admin - admins get edit overlays on the same URLs\n- **Feature flags, not plugins**: All features ship, toggle with booleans in `site_config`\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkychee-com%2Fkychon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkychee-com%2Fkychon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkychee-com%2Fkychon/lists"}