<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>speed on speed documentation</title><link>https://speed.vislake.com/</link><description>Recent content in speed on speed documentation</description><generator>Hugo</generator><language>en-US</language><atom:link href="https://speed.vislake.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Quickstart</title><link>https://speed.vislake.com/docs/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://speed.vislake.com/docs/quickstart/</guid><description>&lt;h1 id="quickstart"&gt;Quickstart&lt;a class="anchor" href="#quickstart"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;blockquote class='book-hint note'&gt;&#10;&lt;p&gt;&lt;strong&gt;Nothing is published yet.&lt;/strong&gt; speed&amp;rsquo;s first tagged release lands at&#10;milestone M4 (see &lt;a href="../status/"&gt;Status&lt;/a&gt;); until then there is no&#10;&lt;code&gt;go get github.com/vislake/speed/...&lt;/code&gt; and no &lt;code&gt;npm install @speed/...&lt;/code&gt;&#10;from a registry. The path below — a local checkout plus &lt;code&gt;go run&lt;/code&gt; — is&#10;the real, current way to try speed, not a simplification of a published&#10;flow.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 id="1-clone-the-repository"&gt;1. Clone the repository&lt;a class="anchor" href="#1-clone-the-repository"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone https://github.com/vislake/speed&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd speed&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The repository root is a Go workspace (&lt;code&gt;go.work&lt;/code&gt;), not a Go module — see&#10;the note on running Go commands below.&lt;/p&gt;</description></item><item><title>Modules</title><link>https://speed.vislake.com/docs/modules/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://speed.vislake.com/docs/modules/</guid><description>&lt;h1 id="module-index"&gt;Module index&lt;a class="anchor" href="#module-index"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;speed ships as independently released Go modules and npm packages, not&#10;an application. A consumer project imports the ones it needs. Every row&#10;below links to that module&amp;rsquo;s own &lt;code&gt;AGENTS.md&lt;/code&gt; or &lt;code&gt;README.md&lt;/code&gt; in the&#10;repository — this site keeps no copy of module documentation, so the&#10;linked file is always the current one.&lt;/p&gt;&#10;&lt;blockquote class='book-hint note'&gt;&#10;&lt;p&gt;This page lists what exists, not what is proven equally solid.&#10;Read-for-yourself is still the rule: the root &lt;code&gt;CLAUDE.md&lt;/code&gt;&amp;rsquo;s &lt;em&gt;Repository&#10;Status&lt;/em&gt; section (see &lt;a href="../ai-agents/"&gt;For AI Agents&lt;/a&gt;) is the single&#10;source of truth for which modules genuinely pass &lt;code&gt;go build&lt;/code&gt; / &lt;code&gt;go vet&lt;/code&gt;&#10;/ &lt;code&gt;golangci-lint&lt;/code&gt; / &lt;code&gt;go test -race&lt;/code&gt; in CI today — all 21, &lt;code&gt;go/admin&lt;/code&gt;&#10;included, per &lt;code&gt;fast-check.yml&lt;/code&gt;&amp;rsquo;s own &lt;code&gt;go-modules&lt;/code&gt; matrix.&lt;/p&gt;</description></item><item><title>For AI Agents</title><link>https://speed.vislake.com/docs/ai-agents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://speed.vislake.com/docs/ai-agents/</guid><description>&lt;h1 id="for-ai-agents"&gt;For AI Agents&lt;a class="anchor" href="#for-ai-agents"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;If you are a coding agent helping someone integrate speed, or being&#10;pointed at this site as context, this page is for you. speed&amp;rsquo;s own&#10;documentation standard treats agents and humans as first-class readers&#10;equally (see&#10;&lt;a href="https://github.com/vislake/speed/blob/main/docs/internal/13-documentation-standards.md"&gt;docs/internal/13&lt;/a&gt;,&#10;Chinese-language design rationale) — this page and&#10;&lt;a href="https://speed.vislake.com/llms.txt"&gt;llms.txt&lt;/a&gt; at the site root are this site&amp;rsquo;s own answer to&#10;that.&lt;/p&gt;&#10;&lt;h2 id="read-this-first-in-this-order"&gt;Read this first, in this order&lt;a class="anchor" href="#read-this-first-in-this-order"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/vislake/speed/blob/main/AGENTS.md"&gt;Root &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/a&gt;&lt;/strong&gt;&#10;— orientation for any AI coding tool: top-level shape, the module&#10;dependency direction, the rules that will burn you fastest, and&#10;where everything else lives. Written to be read start to finish in a&#10;couple of minutes.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;The target module&amp;rsquo;s own &lt;code&gt;AGENTS.md&lt;/code&gt;&lt;/strong&gt; (&lt;code&gt;go/&amp;lt;name&amp;gt;/AGENTS.md&lt;/code&gt; or&#10;&lt;code&gt;web/packages/&amp;lt;name&amp;gt;/AGENTS.md&lt;/code&gt;) — module-specific discipline, file&#10;layout, known limitations, testing setup. See the&#10;&lt;a href="../modules/"&gt;module index&lt;/a&gt; for the full list with direct links.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://github.com/vislake/speed/blob/main/CLAUDE.md"&gt;Root &lt;code&gt;CLAUDE.md&lt;/code&gt;&lt;/a&gt;&amp;rsquo;s&#10;&lt;em&gt;Repository Status&lt;/em&gt; section&lt;/strong&gt; — see below, this is the one you must&#10;not let go stale in your own head.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;h2 id="the-single-source-of-truth-for-is-this-actually-implemented"&gt;The single source of truth for &amp;ldquo;is this actually implemented&amp;rdquo;&lt;a class="anchor" href="#the-single-source-of-truth-for-is-this-actually-implemented"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;blockquote class='book-hint warning'&gt;&#10;&lt;p&gt;Root &lt;code&gt;CLAUDE.md&lt;/code&gt;&amp;rsquo;s &lt;strong&gt;Repository Status&lt;/strong&gt; section is the single,&#10;authoritative, current answer to &amp;ldquo;what genuinely runs and passes in CI&#10;today.&amp;rdquo; It names, per module, exactly what is implemented, what CI&#10;workflow proves it (and on what trigger — every PR, a&#10;&lt;code&gt;full-ci&lt;/code&gt;-labeled PR, a manual dispatch), and what is still a&#10;placeholder stub. This static site cannot update itself as fast as that&#10;section changes — &lt;strong&gt;do not treat anything on this site as a substitute&#10;for reading it&lt;/strong&gt;, and do not trust a status claim (including this&#10;site&amp;rsquo;s own &lt;a href="../status/"&gt;Status&lt;/a&gt; page) that you have not cross-checked&#10;against it or against the repository itself.&lt;/p&gt;</description></item><item><title>About</title><link>https://speed.vislake.com/docs/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://speed.vislake.com/docs/about/</guid><description>&lt;h1 id="about-speed"&gt;About speed&lt;a class="anchor" href="#about-speed"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;speed is the shared foundation of a multi-tenant SaaS product family. It&#10;is &lt;strong&gt;not an application&lt;/strong&gt;: it is a set of independently released Go&#10;modules and npm packages, versioned in lockstep, that a business project&#10;pulls in and compiles into a single binary. Modules call each other&#10;in-process — there is no service discovery and no Kubernetes-shaped&#10;infrastructure.&lt;/p&gt;&#10;&lt;h2 id="the-shape"&gt;The shape&lt;a class="anchor" href="#the-shape"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Aspect&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Design&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Dependencies&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Strictly bottom-up: the foundation modules (&lt;code&gt;pkgcore&lt;/code&gt;, &lt;code&gt;dbkit&lt;/code&gt;, &lt;code&gt;observability&lt;/code&gt;, &lt;code&gt;ratelimit&lt;/code&gt;, &lt;code&gt;tenancy&lt;/code&gt;) underpin everything above them.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Deployment mode and composition&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Two orthogonal axes. Every infrastructure dependency is an interface with several implementations (an in-process one, plus PostgreSQL, Redis, S3 and other backed ones). The &lt;strong&gt;deployment mode&lt;/strong&gt; does not select an implementation, it only constrains one: each implementation declares its capabilities, and assembly fails when the composition cannot run in the declared mode. A single-process deployment may talk to real external services. Business code never branches on the mode.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Multi-tenancy&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;A shared database with &lt;code&gt;tenant_id&lt;/code&gt; isolation, guarded by a GORM plugin, a mandatory generic repository base, and PostgreSQL row-level security in the distributed mode.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Versioning&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Lockstep: all modules and packages share one version and release together; only same-version combinations are supported.&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="how-documentation-is-distributed"&gt;How documentation is distributed&lt;a class="anchor" href="#how-documentation-is-distributed"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Each module carries its own &lt;code&gt;AGENTS.md&lt;/code&gt; inside the module — a quick&#10;orientation for an AI coding tool: responsibility boundary, public API,&#10;typical usage, and explicit dos-and-don&amp;rsquo;ts — plus a plain &lt;code&gt;README.md&lt;/code&gt;,&#10;so documentation ships with the code and stays current with the version&#10;a consumer actually pulls. (A per-module &lt;code&gt;docs/usage.md&lt;/code&gt; is the&#10;longer-term plan recorded in&#10;&lt;a href="https://github.com/vislake/speed/blob/main/docs/internal/13-documentation-standards.md"&gt;docs/internal/13&lt;/a&gt;;&#10;as of this writing exactly one module, &lt;code&gt;go/notification&lt;/code&gt;, has created&#10;one —&#10;&lt;a href="https://github.com/vislake/speed/blob/main/go/notification/docs/usage.md"&gt;go/notification/docs/usage.md&lt;/a&gt;,&#10;written as a template for the rest, its own header says as much — while&#10;every other Go module and every npm package still relies on just its&#10;&lt;code&gt;AGENTS.md&lt;/code&gt; plus its &lt;code&gt;README.md&lt;/code&gt;.) This site is the &lt;em&gt;central&lt;/em&gt; reference&#10;across modules — see &lt;a href="../modules/"&gt;Modules&lt;/a&gt; for the full index — planned&#10;to be versioned per release, with the module-level docs pointing at it&#10;for the overview.&lt;/p&gt;</description></item><item><title>Status</title><link>https://speed.vislake.com/docs/status/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://speed.vislake.com/docs/status/</guid><description>&lt;h1 id="implementation-status"&gt;Implementation status&lt;a class="anchor" href="#implementation-status"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The authoritative, always-current statement lives in the repository&#10;root &lt;a href="https://github.com/vislake/speed/blob/main/CLAUDE.md"&gt;CLAUDE.md&lt;/a&gt;&amp;rsquo;s&#10;&lt;em&gt;Repository Status&lt;/em&gt; section, which this page deliberately does not&#10;reproduce — a duplicated per-module census would rot the moment the&#10;next module round lands. What follows is a coarse snapshot verified&#10;against the live repository at the time this page was last written;&#10;treat it as an orientation, not a source.&lt;/p&gt;&#10;&lt;blockquote class='book-hint note'&gt;&#10;&lt;p&gt;&lt;strong&gt;Naming the status by milestone number stopped being the useful&#10;framing here&lt;/strong&gt; — implementation moved well past the original M0&#10;milestone this site once tracked. Most of the planned module graph is&#10;landed; the roadmap&amp;rsquo;s milestone numbers&#10;(&lt;a href="https://github.com/vislake/speed/blob/main/docs/internal/15-roadmap.md"&gt;docs/internal/15-roadmap.md&lt;/a&gt;)&#10;still record which round a module was originally scheduled for, but&#10;several modules shipped well ahead of that window.&lt;/p&gt;</description></item></channel></rss>