Plugins
Every widget below is a real @oneie/plugin-* package, installed insite/package.json and registered in one.config.ts. Free-tier plugins run standalone; connected-tier plugins mount a script served fromone.ie, scoped to this workspace (019f40c477944af784075862).
AuthFree
better-auth client, wired to this site’s own D1 — no ONE_API_KEY required.
BackendFree
One call to a live `SubstrateClient`, keyed from `ONE_API_KEY` at runtime.
BlogFree
Markdown-driven blog — index, post page, search, and an RSS feed.
ChatConnected
The AI chat widget in the corner of every page on this site — including this one.
DocsFree
A documentation site — sidebar, search, syntax-highlighted code blocks.
TrackConnected
The tracking pixel that turns anonymous visits into a workspace timeline.
Auth
@oneie/plugin-authFree
- Email/password sign-in + sign-up out of the box
- Session hook (`useSession`) for client components
- Runs standalone — works before you ever connect a workspace
- Same client `/signin` and `/signup` already use
Live — this is the same client /signin and /signup use.
Backend
@oneie/plugin-backendFree
- Zero client bundle — server-only import
- Wraps `@oneie/sdk`’s `SubstrateClient.fromApiKey`
- Every other connected-tier plugin below calls through this
- Throws early and loud if `ONE_API_KEY` is missing — no silent fallback
Live — rendering this page just called recall() against the workspace: 1 hypothesis in memory · latest: “smoke: memory-of relation test” · 1128ms round-trip.
import { one } from '../lib/one'
const client = await one() // null without ONE_API_KEY
const memory = await client?.recall()Blog
@oneie/plugin-blogFree
- Auto-injects `/blog` and `/blog/[slug]` routes
- Client-side search (`BlogSearch.tsx`)
- Reads `src/content/blog/*.md` — drop a file, it’s live
Live — src/content/blog/hello-template.md is real content, rendered through the plugin's injected routes.
Chat
@oneie/plugin-chatConnected
- Icon, half, or full-page views
- Left/right placement, brand-tinted bubble
- Backed by a real agent (`ws` + `agent` scoped)
- Already mounted site-wide via `Layout.astro`
Already live — look at the bottom-right corner of any page on this site, including this one. It’s the same chat() plugin registered inone.config.ts.
Docs
@oneie/plugin-docsFree
- Auto-injects `/docs` and `/docs/[slug]` routes
- Folder-ordered, labeled sidebar navigation
- `DocSearch` — client-side fuzzy search
- "Edit this page" links back to your repo
Live — src/content/docs/getting-started.md is real content, rendered through the plugin's own DocsIndex / DocsLayout components.
Track
@oneie/plugin-trackConnected
- One `<script>` tag, async, non-blocking
- Attributes visits + events to `ws` (and optionally an `agent`)
- Feeds `/u/<slug>/in` and the lifecycle views
- Already firing on every page of this site
Already firing on every page of this site (view-source, search for p/one.js). This is the exact tag track({ ws: '019f40c477944af784075862' }) injects:
<script async src="https://one.ie/p/one.js" data-ws="019f40c477944af784075862"></script>