Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Validate documentation
on:
push:
pull_request:
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
- run: npm ci
- run: npm test
- run: npm run build
- run: npx playwright install --with-deps chromium
- run: npm run test:e2e
10 changes: 10 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
node_modules/
dist/
.env
.env.*
!.env.example
.dev.vars
.research/
*.tsbuildinfo
playwright-report/
test-results/
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
node_modules
dist
package-lock.json
playwright-report
test-results
src/content
1 change: 1 addition & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "singleQuote": true, "trailingComma": "all", "proseWrap": "preserve" }
114 changes: 113 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,113 @@
# docs
# Gothwad Tech · Developer documentation

A central, source-based documentation portal for the Gothwad Tech ecosystem. Built with **React 19, Vite, TypeScript, MDX, and CSS**, with a responsive Cloudflare-inspired interface and a distinct Gothwad identity.

## Included

- 12 product guides and 21 MDX pages in total.
- Accounts deployment and OAuth / PKCE integration, Mail setup and REST reference, PlusTube web, Meet, GrixChat, and additional product orientations.
- Full-text local search with `Ctrl+K` / `⌘K`, keyboard navigation, and no external search service.
- Product category filters, a searchable public-repository inventory, and guide indexes.
- Light/dark themes, responsive mobile navigation, heading anchors, page outlines, and copyable code blocks.
- Source references, contribution links, and clearly labeled documentation boundaries.
- Cloudflare Pages redirects and security/cache headers.
- Content-integrity tests, browser tests, and GitHub Actions validation.

**Coverage is intentionally explicit:** this is a curated initial documentation release, not a claim that every product or deployment is fully documented or verified. See [SOURCES.md](SOURCES.md). No live product infrastructure was changed.

## Local development

Use **Node.js 22.13 or later** (Node 22 LTS recommended).

```bash
npm ci
npm run dev
```

Vite prints the local URL. The dev server listens on `0.0.0.0`; `.e2b.app` preview hosts are allowed. No environment variables or API keys are needed for this documentation site.

```bash
npm test # Metadata, content, links, and deployment-file checks
npm run build # TypeScript check + Vite / MDX production build
npm run preview # Serve the production dist directory
```

### Browser tests

```bash
npx playwright install --with-deps chromium
npm run test:e2e
```

The Playwright configuration starts Vite automatically, or reuses the local development server. The tests cover all 21 guides, search, filters, deep links, anchors, code copy, theme persistence, feedback, repository search, not-found routes, and mobile overflow/navigation. To use an already-installed browser, set `CHROMIUM_PATH` to its executable. `TEST_BASE_URL` can point tests at a separately running production preview.

## Deploy to Cloudflare Pages

1. Push the finished code to the branch you intend to deploy. The current development work is on `arena/14d98888-docs`; production can follow your normal reviewed merge process.
2. In Cloudflare, create a **Pages** project and connect `GothwadTech/docs`.
3. Select the branch that contains this implementation.
4. Configure:

| Setting | Value |
| ---------------------- | ----------------- |
| Framework preset | Vite |
| Build command | `npm run build` |
| Build output directory | `dist` |
| Root directory | Repository root |
| Environment variable | `NODE_VERSION=22` |

5. Deploy and test `/`, `/products`, and a direct guide URL such as `/docs/oauth`.
6. Add your own domain in the project's **Custom domains** settings and complete the DNS instructions Cloudflare supplies.

No runtime Worker, database, or secret is required. `public/_redirects` ensures SPA deep links work. `public/_headers` sets safe static headers and long-lived caching only for hashed assets. This does not deploy the Accounts or Mail Workers; those are separate products with separate guides.

This is a client-rendered SPA. Per-route titles and descriptions are updated in the browser. Prerendered HTML, a production-domain sitemap, and localized content can be added once the production domain and publishing strategy are decided; they are not presented as already implemented.

## Content structure

```text
src/
App.tsx Layout, routing, search, and MDX UI components
data.ts Product and guide metadata
content/*.mdx Source-based documentation
repositories.json Public GitHub inventory snapshot
styles.css Responsive light and dark styles
public/
favicon.svg
_redirects
_headers
tests/
content.test.mjs Content and link integrity
e2e/site.spec.ts Browser interactions and route checks
SOURCES.md Source revisions and coverage boundaries
```

### Add a guide

1. Create `src/content/your-guide.mdx`.
2. Add matching metadata to `docs` in `src/data.ts`. The slug must match the filename.
3. Use `##` headings for the on-page outline and fenced code blocks for snippets.
4. Add `<Callout title="Important">…</Callout>` for warnings or configuration boundaries.
5. Cite verified product source files and update `SOURCES.md` with the reviewed revision.
6. Run tests and the build, then inspect the route, search results, mobile layout, and dark theme.

MDX is compiled at build time and must be reviewed trusted repository content. There is no runtime upload or execution of untrusted MDX. Raw content is also bundled for local full-text search; never put secrets in a guide, even in a hidden component or example.

### Refresh the repository inventory

With your own authenticated GitHub CLI:

```bash
gh repo list GothwadTech --limit 100 \
--json name,description,url,isPrivate,isFork > src/repositories.json
```

Review the output and retain **public repositories only** before committing. This inventory is not fetched from visitors' browsers. Repo descriptions and product documentation are snapshots, not automatic live synchronization.

## Privacy and feedback

Search runs locally. Theme preference and page-helpfulness selections are stored only in the current browser's local storage; feedback is **not sent to a backend**. The interface links to GitHub issues for actionable feedback. The site does not request product tokens, cookies, passwords, or provider keys.

## Source and licensing boundaries

Product documentation is paraphrased from public GothwadTech source files and credits the relevant repositories. Product licenses differ: public source does not imply an open-source license. Browser's source-available restrictions and PlusTube's upstream Flow attribution are explicitly noted. No product secrets or native signing materials are included.
50 changes: 50 additions & 0 deletions SOURCES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Documentation sources and coverage

Reviewed **October 14, 2026 (UTC)** using the public GothwadTech GitHub repositories and the authenticated GitHub CLI. The table records the reviewed source revisions. Central guides are curated paraphrases, not verbatim mirrors or live-updating API contracts.

## Source revisions

| Repository | Reviewed revision | Source material | Coverage |
| --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
| [accounts](https://github.com/GothwadTech/accounts) | [`a00407a5ac48`](https://github.com/GothwadTech/accounts/tree/a00407a5ac48376fce237bf96696d133d4792f74) | README; docs/SETUP.md, OAUTH.md, ARCHITECTURE.md | Local setup, deployment, OAuth, configuration. Code examples strengthen state validation and preserve the API base path. |
| [mail](https://github.com/GothwadTech/mail) | [`3d31be6c9148`](https://github.com/GothwadTech/mail/tree/3d31be6c9148918e01952f6fbe5e41bb25276e82) | README; docs/SETUP.md, MAIL.md | Local setup, Worker/Pages deployment, SSO troubleshooting, REST endpoints, documented limits. |
| [gothwadtech](https://github.com/GothwadTech/gothwadtech) | [`5e12d5de5bc8`](https://github.com/GothwadTech/gothwadtech/tree/5e12d5de5bc8743c0cf79a11a38226f6417f8234) | README; recursive repository tree | Web platform orientation. Corporate marketing claims are not reproduced as measured guarantees. |
| [tubeweb](https://github.com/GothwadTech/tubeweb) | [`bcd3d70eeed6`](https://github.com/GothwadTech/tubeweb/tree/bcd3d70eeed6f27f413203aed5eba2eb9ec5a87e) | README; recursive repository tree | Website setup, Pages deployment, JSON release-data pipeline, upstream attribution. |
| [meet](https://github.com/GothwadTech/meet) | [`dd2e84d9c9f2`](https://github.com/GothwadTech/meet/tree/dd2e84d9c9f2c1431aca0fbde7d1ea6e508e4eea) | README; package.json | Local setup, meeting verification, Pages deployment, browser/network limitations. |
| [grixchat](https://github.com/GothwadTech/grixchat) | [`5a5757f791ec`](https://github.com/GothwadTech/grixchat/tree/5a5757f791ecb0108f3b5a2c1374c69491969680) | README; package.json | Mock and real development paths, API architecture, SQL ordering, Pages Functions. |
| [ai](https://github.com/GothwadTech/ai) | [`678cb7438a79`](https://github.com/GothwadTech/ai/tree/678cb7438a79cba72152a98764a10639b7f34c66) | README; repository description | Short local-development orientation only. Public API and hosted architecture not verified. |
| [launcher](https://github.com/GothwadTech/launcher) | [`bc9568b8f11d`](https://github.com/GothwadTech/launcher/tree/bc9568b8f11d6745a3e1984936bd03112d2240be) | README | Android prerequisites, debug/release builds, CI orientation, signing boundaries. |
| [browser](https://github.com/GothwadTech/browser) | [`3c3f21046c91`](https://github.com/GothwadTech/browser/tree/3c3f21046c916dbb37993d575389377f60880a1d) | README | Product and installation orientation only; proprietary source restrictions called out. |
| [manager](https://github.com/GothwadTech/manager) | [`3c3949acf7dd`](https://github.com/GothwadTech/manager/tree/3c3949acf7ddf675177728d60a4b83e15a56d7d2) | README | Android build prerequisites and safe test/release orientation. |
| [education](https://github.com/GothwadTech/education) | [`60ebeff1b872`](https://github.com/GothwadTech/education/tree/60ebeff1b87238b90d70f13538c1c8c232fd1997) | README | Role-based product overview, local setup, explicit production-verification boundary. |
| [Clashdrive](https://github.com/GothwadTech/Clashdrive) | [`7ece22222721`](https://github.com/GothwadTech/Clashdrive/tree/7ece222227219b38b358cc030ce8a0d4ad5a3e8e) | README | Bun setup, Telegram storage architecture, sharing and session cautions. |
| [store](https://github.com/GothwadTech/store) | [`8a395713d305`](https://github.com/GothwadTech/store/tree/8a395713d3052ea6541a2b9e0b14de8d8f77a506) | Recursive repository tree; repository description | Inventory only; no README was available at review. No public API or deployment contract inferred. |

## Central portal

`quickstart`, `architecture`, `cloudflare`, `security`, and `contributing` are editorial guides for the actual implementation in this repository and the source-described product boundaries. The API page covers Accounts OAuth and the documented Mail API, not every internal endpoint across every product.

The `tubeapp` README and public repository metadata were also reviewed for product context. App-specific Android release details are delegated to that repository instead of guessed from the website build.

## Repository inventory

`src/repositories.json` contains a snapshot of 39 public repositories returned by `gh repo list GothwadTech`. The directory links to undetailed repositories with **Repository only** coverage labels. A repository appearing here is not a claim that it is active, production-ready, or open-source. Additional repositories, prototypes, forks, and policy-only projects have not received full technical guides in this initial release.

No source files from the `keystore` repository were accessed or imported. Only public repository metadata appears in the inventory.

## Important distinctions

- Accounts' frontend has no Vite build; publish `web/`. This docs site and the documented Vite web products publish `dist/`.
- Mail uses a separate Supabase project and its current documented flow is shared-cookie SSO. Do not claim the optional future OAuth callback is required for this flow.
- Mail attachment metadata is stored, not attachment bytes.
- Accounts' server-to-server base and browser sign-in URL are distinct in the Mail deployment guide.
- OAuth examples add explicit state validation and avoid dropping `/api` when constructing authorization URLs. They are illustrative integration code, not an official SDK package.
- Accounts' listed Drive scopes do not prove a production Drive API or integration with Clash Drive.
- Meet's static frontend still needs WebRTC signaling/connectivity. No load or capacity guarantee is made.
- Browser's public repository declares proprietary/source-available restrictions.
- PlusTube derives from Flow by A-EDev and contributors; attribution is retained.
- Product backends and live domains were not deployed or end-to-end tested during this docs-site implementation. Local docs-site tests are not product integration tests.

## Maintaining this record

For an update, review the changed upstream source, record its commit, adjust affected MDX pages, and rerun the tests. Do not copy raw API keys, session responses, user data, private environment files, or signing materials into documentation.
24 changes: 24 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#f97316" />
<meta
name="description"
content="Build with Gothwad Tech. Explore product documentation, integration guides, API references, and step-by-step deployment instructions."
/>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>Gothwad Tech Developers · Documentation</title>
<script>
try {
document.documentElement.dataset.theme =
localStorage.getItem('gothwad-theme') || 'light';
} catch {}
</script>
</head>
<body>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Loading
Loading