Skip to content

About

Source of help.dosya.dev - the dosya.dev help center guides and site

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

dosya help center

The source of help.dosya.dev, the help center for dosya.dev. Every guide on the site is a Markdown file in this repository, so you can read how an article was written, see when it last changed, and point at the exact line that is wrong.

What is in here

  • src/content/articles/ - one Markdown file per guide. The JSON block at the top holds the title, summary, category, revision, review date and related guides.
  • content-history/ - every published revision of every guide. History is immutable: changing the title, summary, category or slug of a guide requires a new revision.
  • public/screenshots/ - the screenshots used in guides, taken with test data.
  • src/ - the Astro site: layouts, category and search pages, and the sitemap.
  • scripts/ - content tooling. content.mjs builds the search index, llms.txt and the revision registry; audit-content.mjs scores guides for completeness.
  • worker/ - the Cloudflare Worker that serves the built site.

Tech stack

  • Astro 6 - static site generation
  • TypeScript - site code
  • Vitest - content and build checks
  • Cloudflare Workers - hosting

Development

Prerequisites

  • Node.js >= 22
  • npm

Commands

npm install        # Install dependencies
npm run dev        # Start the dev server on http://localhost:4324
npm run build      # Rebuild generated content, then build the site
npm run test       # Run the vitest suite
npm run audit:content

Search on the live site and the "Was this helpful?" widget talk to the dosya.dev API. They are not part of this repository.

How changes reach the site

This repository is a one-way mirror of the help center inside the dosya.dev main repository. We publish to it from there, so a pull request here is not merged directly. When we accept a change, we apply it in the main repository, credit you in the commit, and it appears here with the next sync. See CONTRIBUTING.md.

License

Source-available under the Dosya Source Available License 1.0:

  • You can read and audit the code and the guides, build and run the site, and contribute improvements.
  • You can't redistribute it, republish the guides elsewhere, or offer it as a service.

See LICENSE for the exact terms.

Security

Found a vulnerability? Please report it privately via GitHub private vulnerability reporting rather than a public issue.

The dosya.dev family

Repository What it is License
help.dosya.dev Help center - guides and site Source-available
desktop Desktop client - sync, upload, manage Source-available
cli Command-line interface Source-available
app.dosya.dev Web application Source-available
shared Shared TypeScript types & utilities Source-available
wordpress WordPress plugin - backup, restore, migrate GPL-2.0-or-later
browser-extensions Browser extension - Save to dosya for Chrome, Edge, Firefox Source-available
dosya-js Official JavaScript SDK MIT
dosya-java Official Java SDK MIT

Translations and release checks

English retains its existing URLs. Turkish uses /tr; translations share page components and stable article IDs but have independent revisions. Turkish source files live in src/content/translations/tr/. Only published translations appear in routes, search indexes, sitemap, and language alternates. Drafts never fall back to English content under a Turkish URL.

npm run prepare:content reports missing, draft, current, and stale translations in generated/translation-coverage.json. current means the source revision/digest matches; it is not a claim that a person reviewed the text.

For a release, run npm run build:release. It regenerates content, requires full published English-to-Turkish coverage and matching source digests, validates review evidence, creates local Turkish social images, and builds the site. Normal npm run build remains available for draft development and is not a release sign-off.

Review evidence belongs in translation-review/release.json, keyed by tr:<articleId>. Each entry records contentHash, translationHash (translated metadata and body), sourceHash, and monolingual, meaning objects with accepted, reviewer, and date fields. Native release sign-off can be recorded once for the language in nativeReviews.tr, with the same acceptance fields and corpusHash from releaseCorpusHash(catalog, "tr"). A changed corpus invalidates that sign-off. Per-article native evidence is also accepted. Acceptance must refer to the actual text; a changed digest requires new review. Independent AI passes do not replace the native reviewer required by dosya-translate.

Install the renderer once with npx playwright install chromium in the help package. The renderer uses the help package’s dependencies and bundled public fonts in both repositories. Use npm run og:translations to refresh Turkish images locally. English images remain served from R2; Turkish images are static assets under /og/tr/. Both image generation modes refresh that same Turkish destination. No image upload is needed for the Turkish-only command.

Translation batches and review reports live under translation-review/tr. The monorepo-only scripts/translate-help.mjs tool requires .claude/skills/dosya-translate and the shared language catalogs; the public help mirror builds already assembled Markdown without those authoring resources. Never publish generated drafts directly.

About

Source of help.dosya.dev - the dosya.dev help center guides and site

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages