What is Praxis
Praxis is the in-house engineering system that runs tryway.cc — this website, its publishing pipeline, and the AI assistant answering questions in the corner of your screen. The name comes from praxeology, the study of purposeful human action: systems should encode deliberate decisions, not accumulated accidents.
Praxis is not a framework we sell. It is the standard we hold our own work to — published here so prospective clients can inspect exactly how we build, instead of taking adjectives on faith. Every claim on this page is verifiable against the live site you are browsing.
Design principles
| Principle | What it means in practice |
|---|---|
| Zero runtime dependencies | The production worker is a single JavaScript file with no npm packages, no client-side framework, no build-step magic at request time. Fewer moving parts, nothing to patch on someone else's schedule. |
| Content as code | Every article is a Markdown file in a versioned source tree. Pages are generated by a deterministic build; the artifact is never edited by hand. Rebuilding from sources always reproduces the site. |
| Server-side rendering only | Every page arrives as complete HTML from the edge. No hydration, no loading spinners, no JavaScript required to read content. Interactive extras (language toggle, AI chat) layer on top and degrade gracefully. |
| Determinism separated from judgment | Anything scriptable (building, verifying, deploying, indexing) is one idempotent command. Human judgment is spent only where it matters: content, design, and what to publish. |
| Single source of truth | Colors come from one design-token file. The footer, navigation, and desensitization rules each live in exactly one place. Duplication is treated as a defect, because copies drift. |
Architecture
Praxis is organized in five layers, all running on Cloudflare's edge network:
1. Edge runtime
A single Cloudflare Worker serves every route — pages, RSS, sitemap, search, and APIs — in vanilla JavaScript. All HTML is inlined as template strings and rendered server-side. Median response is served from the data center nearest the visitor, in any of 300+ cities.
2. Asset layer
Raster images live in R2 object storage behind a dedicated CDN domain. Object keys are content hashes: a changed image gets a new key, so assets are cached as immutable forever, and stale content is structurally impossible. Vector graphics (SVG) stay inline in the HTML — they are text, compress well, and need no extra request.
3. Data layer
Two managed stores, both at the edge: D1 (SQLite) archives AI-assistant conversations for quality review, written asynchronously so chat latency is unaffected; Vectorize holds the content index — 1024-dimension embeddings of every published article and of this very document.
4. AI layer
The assistant ("AI@TryWay") is retrieval-augmented: a visitor's question is embedded with a bilingual model (BGE-M3, so Chinese and English queries both work), matched against the Vectorize index, and only then answered by a language model grounded in the retrieved passages — streamed back over SSE. If the knowledge base doesn't cover a question, the assistant is instructed to say so and point to a human, rather than improvise.
5. Build pipeline
A Python pipeline turns Markdown sources into the deployed worker: it strips editorial metadata, applies a privacy-preserving transformation layer to all outbound content, inlines or uploads figures, regenerates the search and RAG indexes, and emits the final artifact. The build is idempotent — same sources in, byte-identical site out — and every step fails loudly rather than shipping a partial result.
Engineering practices
- Escape discipline. Every piece of user-originated or metadata text is escaped for its exact output context (HTML body, attribute, JS string, JSON-LD). Search echoes, chat rendering, and admin views were reviewed against XSS specifically.
- Parameterized SQL only. No string-concatenated queries anywhere in the data layer.
- True HTTP semantics. Unknown paths return a real 404 — not a soft-200 homepage — so crawlers index exactly what exists.
- Privacy-preserving pipeline. Published content is derived from internal research notes through an automated editorial layer that removes private names, internal paths, and client-identifying details at build time and at request time, with the rule set maintained in a single audited module.
- Invariant checks. Structural properties of the generated site (footer copies, tab index alignment, syntax validity) are asserted by tooling on every build, not trusted to memory.
- Independent review. The codebase undergoes periodic multi-perspective audits (security / correctness / operations); findings are triaged, fixed, and recorded in a public-safe changelog.
Operations model
Publishing a new article is one command, in two deliberate stages: the first stage registers the article from its Markdown front-matter, builds, and serves a local preview for human review; the second stage deploys to production, verifies the live page (status, assets, privacy scan), and refreshes the AI index. Rollback is a redeploy of the previous version. Traffic is measured from edge analytics into a local time-series store — no third-party tracking scripts run on this site, ever.
Why this matters if you hire us
The systems we build for clients follow the same standard: minimal dependencies, deterministic operations, honest HTTP, measurable behavior, and documentation that matches reality. tryway.cc is the reference implementation — audit it as hard as you like, then ask us to do the same for your store, your data pipeline, or your infrastructure.
Questions about anything on this page? Ask the AI assistant in the corner — it has read this document — or write to rob@tryway.cc.
FAQ
What is tryway.cc built with? What technology runs this website?
This site is a single zero-dependency Cloudflare Worker — vanilla JavaScript, fully server-side rendered. Image assets are served from R2 object storage; conversation archives live in D1; the AI assistant's content index lives in Vectorize. A Python build pipeline compiles Markdown sources into the deployed artifact. No WordPress, no React or client-side framework, no third-party tracking scripts. The full standard is this very page: tryway.cc/praxis.
How does the AI assistant on this site work?
It is retrieval-augmented (RAG): your question is embedded with the bilingual BGE-M3 model, matched against a Vectorize index of everything published on this site — including this document — and answered by a language model grounded strictly in the retrieved passages, streamed over SSE.
Did TryWay build this website itself?
Yes — designed, built, and operated in-house, on our own Praxis standard described on this page. The same standard is applied to client work.
Version history
| Version | Date | Notes |
|---|---|---|
| v1.0 | 2026-07-07 | Initial public standard: architecture, principles, practices, operations model. |