[ Live alpha ]
One platform to build, ship, and run software.
Code, issues, docs, chat, CI, packages, and AI agents in a single product with one source of truth, so you can just build. No stack to assemble, no tools to glue, no context lost between them.
#482 · opened by Jamie Davenport · 6 hours ago
Stream replica writes through a regional cursor
replica.cursor(since) returns null right after a region fails over. Guard it before the stream call or the mirror write throws.
Read the whole diff. The cursor swap keeps the mirror in a single round trip. Nice. I left one blocking comment on the failover path and opened PLN-491 to backfill the reconnect test before this merges.
Leave a comment. Markdown works.
// The platform
Seven surfaces, one source of truth.
Today each one is a separate tool you pick, wire up, and pay for. Six products that don't know about each other. In Plain they share one graph, one search index, and one permission model, so your work connects automatically instead of needing glue.
01
Code
A Git host that keeps up with you. Repositories are mirrored to every region and synced in milliseconds, so clone, push, and fetch feel local no matter where your team sits.
- GitHub
- GitLab
- Bitbucket
import { defineConfig } from "@plain/sdk"import { site } from "./config/site"export default defineConfig({ repo: site.repo, surfaces: ["code", "issues", "ci"], agents: { review: true },})02
Issues
Planning that never makes you wait. Every keystroke lands instantly and works offline, then syncs the moment you reconnect. Issues, cycles, and roadmaps feel like a local app.
- Linear
- Jira
- Asana
Cycle 24
May 6 – May 20
- PLN-482
Edge-region sync for stacked diffs
JD - PLN-486
Warm runner pool autoscaling
MK - PLN-491
Backlink index for docs blocks
AR - PLN-494
Signed provenance on artifacts
JD
Sub-50ms · pressCto create
03
Docs
Documentation that lives next to the code it describes. Specs, runbooks, and decisions are versioned with every release and one keystroke away from the work they explain.
- Notion
- Confluence
- Google Docs
Edge Sync Spec
Goals
Replicas resolve conflict-free and stream from the nearest region. A cursor lets clients resume mid-flight without a full pull.
Decision
Stream over cursor; mirror writes to all regions.
- Heading##
- Code block```
- Callout›
04
Chat
Team chat that lives where the work does. Channels and threads attach to the issue, PR, or doc they're about, so a conversation is never stranded from its context, and every message is searchable in the same index as your code.
- Slack
- Discord
- Google Chat
- MK
Maya Klein11:02
Failover on us-east just flapped. Mirror writes are throwing. Anyone looking?
- JD
Jamie Davenport11:04
On it.
#482 · Edge-region syncreplica.cursorreturns null right after failover. Pushing a guard. Atlasagent11:05
Opened PLN-491 to backfill the reconnect test. I'll post here when CI is green.
05
CI
Continuous integration with no cold start. Pipelines begin the instant you push, runners are always warm, and caches are shared across your whole organisation.
- GitHub Actions
- CircleCI
- Jenkins
- install3s
- build18s
- test21s
- deploy5s
06
Packages
A registry for everything you ship. Packages and build outputs are content-addressed, edge-cached worldwide, and carry signed provenance back to the commit that produced them.
- npm
- Docker
- PyPI
@plain/edge-sync
published 2 min ago
- Content hashsha256:9f3a…e21
- Provenancesigned → a1b2c3d
- Served from7 edge regions
07
AI Agents
Agents are a first-class primitive, not a bolted-on chatbot. Because every surface lives in Plain, an agent can read and write across all of them with full context, and a complete audit trail.
Replaces your busywork
Issues · Triaged PLN-482, labelled bug
0:00
Docs · Updated the edge-sync runbook
0:06
Code · Opened PR #483 with the fix
0:11
CI · Pipeline green in 44s
0:55
// What we optimise for
<50ms
Fast
Local-first sync. Every action lands before you lift your finger.
99.9%
Reliable
Uptime backed by a real SLA, not a status page apology.
Built in
AI-first
Agents are a primitive, woven through every surface from day one.
⌘K
Keyboard-native
Every command a keystroke away. The mouse is optional.
// Pricing
Per-user pricing, no surprises.
Start free and upgrade when your team does. The whole platform is on every tier; higher plans lift the limits and add team controls. Hard caps, never a surprise bill.
Free
$0/ user / mo
For trying Plain out, solo projects, and open source.
- Up to 2 users
- 2 repositories
- 100 MB storage
- 50 CI minutes / mo
- Public feedback pages
- Community support
Hobby
$8/ user / mo
For solo devs and side projects growing past free.
- Up to 10 users
- 50 repositories
- 10 GB storage
- 1,500 CI minutes / user
- Team chat, analytics & private packages
- Branch protection & webhooks
Pro
Recommended$24/ user / mo
The flagship team plan — capacity grows with your team.
- Unlimited users
- 1,000 repositories
- 10 GB storage / user
- 3,000 CI minutes / user
- Everything in Hobby
- 1-year analytics retention
Enterprise
Custom
For organizations that need SSO, audit, and an SLA.
- Everything in Pro
- Custom resource limits
- SSO / SAML
- Audit logs
- Priority support & SLA
- Onboarding & dedicated contact
Billed per user, monthly. Agents don’t count as a seat. Alpha pricing, subject to change. Early-stage startup? Get 50% off Pro for 6 months.
What does your current stack cost? Try the savings calculator
[ Get started ]
Start building on Plain today.
The alpha is open. Create your first repo, issue, and pipeline in minutes. No stack to assemble.