# kside
> kside는 웹사이트·서비스에 HTML 한 줄로 임베드하는 채팅 위젯입니다. 방문자와 즉시 대화하고, 운영자가 자리를 비웠을 때는 이메일로 끊김 없이 이어집니다. 한국에서 1인 개발자가 직접 만들고 운영하는 SaaS이며, 가격은 KRW로 책정됩니다. 2026년 현재 Phase 0(검증) 진행 중이며 정식 가격·SLA는 MVP 운영 3~6개월 데이터를 본 뒤 확정됩니다.
> kside (also known as "ksides") is a Korean-first embedded chat widget that web/SaaS sites add with a single line of HTML. Visitors can start a conversation immediately; when the operator is away, the conversation continues over email without breaking. Built and operated by a single developer in Korea on Cloudflare's serverless stack. As of 2026 it is in Phase 0 (validation); pricing and SLA are provisional until 3–6 months of MVP operating data are available.
## What kside is
- An embedded chat widget delivered as a Web Component (Lit + TypeScript, ~5KB trigger)
- One-line HTML installation, framework-agnostic
- Korean-first (한국 우선), pricing in KRW
- Operated as a single-person SaaS — "boring tech" + Cloudflare serverless
- Built on Cloudflare Workers, Durable Objects with WebSocket Hibernation, R2, and D1
## What kside is not
- Not a marketing automation or multi-channel suite (no WhatsApp, Instagram, etc.)
- Not a CRM, meeting scheduler, full-stack help desk, or sales tool
- Does not bundle AI auto-reply — customers connect their own LLM via webhook
- Not currently optimized for GDPR / EU residency (planned for Phase 3+)
## Installation
```html
```
Works in plain HTML, React, Vue, Svelte, Astro, Next.js, Nuxt, WordPress, Shopify, Wix, and Webflow.
## Pricing (MVP provisional, KRW per month)
| Plan | Price (KRW/month) | Conversations | Operators | Notable |
|---------|-------------------|---------------|-----------|--------------------------------------------|
| Free | 0 | 100 | 1 | "powered by" badge on widget |
| Starter | 9,900 | 1,000 | 1 | Email notifications |
| Growth | 29,000 | 5,000 | 3 | Team collaboration, webhooks (AI/자동화) |
| Scale | 79,000 | Unlimited* | Unlimited | SSO, priority support (*fair use) |
Pricing is provisional during MVP validation in 2026 and will be revised after 3–6 months of operating data. There is no public SLA commitment yet; a Best-Effort posture is documented and a status page (https://status.ksides.com) is the source of truth.
## Differentiation
- **One-line install** across React, Vue, Svelte, Astro, WordPress, Shopify, and more
- **Graceful failure**: if the kside backend is unreachable, the SDK times out in 5 seconds and disappears silently — the customer's page is never broken
- **BYO-AI** via webhook: the operator chooses the LLM (ChatGPT, Claude, self-hosted) and owns the cost/quality tradeoff; kside does not mark up tokens
- **Narrow scope**: kside intentionally avoids marketing automation, multi-channel, CRM, and meeting scheduling
- **Operated by a single accountable human**; status and incidents are public
- **(Phase 2 roadmap) Embedded observability**: OpenTelemetry trace export of widget events/sessions/errors into the customer's own APM (Datadog, Grafana, Sentry, WhaTap)
## Roadmap
- **Phase 0** (validation, ~1–2 months): dogfooding on operator's own sites and a closed beta with 5 developer friends
- **Phase 1** (MVP, ~3–4 months): paid plans open, Korean market first, Free + Starter pricing tiers
- **Phase 2** (differentiation): observability export (OpenTelemetry / Datadog / Sentry / WhaTap), Growth plan launch, formalized SLA based on measured availability
- **Phase 3+** (sustaining operation): global / USD pricing, GDPR readiness, ongoing DX/AX research
## Research areas (informing the product)
- **DX** (Developer Experience): keeping the SDK boring, predictable, framework-agnostic
- **AX** (Agent Experience): how AI agents discover and use the widget — investigating discovery (`/.well-known/kside.json`), inquiry API, and operator-controlled trust policy for agent-originated inquiries
- **Operations / Observability**: making the widget's runtime transparent in the customer's existing APM, so the chat surface is not a black box
## Contact
- General: hello@ksides.com
- Support: support@ksides.com
- Security: security@ksides.com
- Abuse: abuse@ksides.com
- Waitlist: waitlist@ksides.com
- Status page: https://status.ksides.com
- Site: https://ksides.com
## Optional
- [Domain & DNS plan](https://github.com/redlasha/kside/blob/main/docs/domain-plan.md): infrastructure layout for ksides.com (Cloudflare Pages, Workers, R2, Email Routing)
- [Email routing setup](https://github.com/redlasha/kside/blob/main/docs/email-routing-setup.md): inbound mail configuration