惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
Blog — PlanetScale
Blog — PlanetScale
腾讯CDC
aimingoo的专栏
aimingoo的专栏
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans
J
Java Code Geeks
G
Google Developers Blog
N
Netflix TechBlog - Medium
Vercel News
Vercel News
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
I
InfoQ
Stack Overflow Blog
Stack Overflow Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
罗磊的独立博客
GbyAI
GbyAI
小众软件
小众软件
大猫的无限游戏
大猫的无限游戏
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

Show HN

The Two Pillars: Mixer Mode and Meta-Software in the Reorganization of Software Work After AI GitHub - JaiCode08/teleport-env What 1,000+ Harness Experiments Taught Me About Self-Improving Agents Show HN: Liiists, a Markdown-first, iOS and CLI list app SwiperTab – Get this Extension for 🦊 Firefox (en-US) GitHub - kouhxp/fftext: Summarize, explain, fact-check, or translate any text, URL, or file. No GPU. No cloud. One command GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode GitHub - dogmaticdev/IRON: IRON a.k.a. Intermediate Representation Object Notation is a Interpreter/Database that is used to create Programming Languages. GitHub - sjhalani7/vaen: Package your AI coding harness into a portable .agent file, and share it across repos, teams, & the community without ever having to copy-paste instructions, skills, MCP config, or secrets. Show HN: Gandalf the Grader Show HN: Citadeld – replay any CI failure locally from a single file GitHub - tdortman/cuSBF: High-Performance GPU Super Bloom Filter coral-ai/claude-code-token-xray at main · Coral-Bricks-AI/coral-ai GitHub - ulyssestenn/funes: Funes is a Git-based framework for LLM-managed knowledge work: an AI Librarian ingests raw sources, builds an interlinked Markdown knowledge base, and uses it to produce cited reports, analyses, and other outputs. GitHub - ThatXliner/gah: Git Add Hunk, built for agents to use GitHub - harmont-dev/harmont-cli: Command-line client for the Harmont CI platform GitHub - brooksmcmillin/mcp-authflow: OAuth 2.0 Authorization Server framework for MCP servers GitHub - javaid-codes/audit-supply-chain-agents GitHub - amorey/gochan: A small library of common channel architectures for Go, inspired by Rust GitHub - arifozgun/OpenGem: Free, Open-Source AI API Gateway with Gemini, OpenAI & Anthropic Compatibility in 1 file GitHub - Pranesh950/BioPetals: 🌸 Run BIOxAI models at home, BitTorrent-style. Fine-tuning and inference up to 10x faster than offloading GitHub - cnguyen14/bounty-doctor: Diagnose a GitHub bounty issue before you waste hours: detects honeypot scam repos, AI-bot attempt swarms, and stale contests. Show HN: CoreMCP – MCP Server for On-Prem DBs Show HN: KittyHTML – Render HTML/CSS as an inline image in your terminal GitHub - bingud/filemat: Web-based file manager Show HN: TruthLens – Free multi-signal deepfake image detector GitHub - apexlocal-jz/claude-usage-tray: Windows system-tray app showing your Claude Code rate-limit usage at a glance. Zero deps, ~300 lines of PowerShell. Cross-IDE (works regardless of VS Code, Cursor, plain terminal). Release v0.1.2.1 · kouhxp/yapsnap GitHub - noopolis/moltnet: Self-hostable chat network for AI agents. Pre-built bridges for Claude Code, Codex, and the Claws. Rooms, DMs, history. No Slack bots, no Matrix, no glue code. GitHub - tamerh/enju: Coordinating Humans, AI Agents, and Compute as Peers on a Shared Workflow Graph
GitHub - gospecter/specter: Local-first CMS sync engine. ...
aabergkvist · 2026-06-01 · via Show HN

SpecterSync DIY

Open-source local sync for CMS content. SpecterSync DIY syncs Ghost, WordPress, and Shopify content down to a folder of plain markdown files on your hard drive. Run your own editor or AI tools over those files. Push changes back through direct local CMS connections with dry-run preview and conflict detection.

SpecterSync has two editions:

  • SpecterSync DIY (spectersync.diy) is the AGPLv3 Community edition for developers and technical operators who want to inspect, self-build, modify, and run direct local sync.
  • SpecterSync Pro (spectersync.com) is the official commercial product with signed installers, license activation, automatic updates, managed connectors, hosted AI transformation workflows, and support.
SpecterSync DIY
Mac ✅ macOS 13+ (Intel + Apple Silicon)
Windows 🟡 in progress (build packaged; signing not yet live)
Linux ✅ AppImage + .deb
Ghost
Shopify
WordPress
AI tools bring your own — any tool that reads markdown on disk
Source Open source under GNU AGPLv3
Pricing Free to self-build under AGPLv3. Pro is the paid supported product.

Want the official supported app? SpecterSync Pro lives at spectersync.com. Pro adds signed binaries, automatic updates, managed OAuth/token refresh, support, and AI transformation workflows.

Install

Official app

Download the latest signed SpecterSync Pro binary from spectersync.com/download. Official binaries are the paid, supported distribution channel and include signing, notarization, installers, QA, automatic updates, managed services, and support.

DIY does not ship official signed binaries or use the Pro update feed.

Build DIY from source

git clone https://github.com/spectersync/spectersync-diy.git
cd spectersync-diy
npm install
npm run build          # bundles the daemon
bash mac/build-app.sh  # local unsigned macOS .app — needs Xcode
cd desktop && npm install && npm run build                 # local Electron build

Production packaging, code signing, notarization, official update feeds, license activation, billing, managed connector backends, and hosted AI transforms are maintained as part of SpecterSync Pro and are not part of the DIY source distribution. See docs/local-builds.md.

Connect a CMS

Ghost

Settings → Connect Ghost → paste Admin API URL + Admin API key.

Shopify

DIY supports direct local connector flows where available. SpecterSync Pro includes the managed Shopify OAuth/token-refresh flow through spectersync.com, because Shopify client secrets must not ship in a desktop app.

Why split this? DIY should remain self-buildable and inspectable. Pro can provide managed OAuth, refresh, support, and connector reliability without embedding commercial secrets in the AGPL repo.

Community vs Pro

Capability DIY / Community Pro / Official
Source available Open-source components only
Self-build Not needed
Direct local sync
Signed installers
Automatic updates Manual rebuild
License activation
Managed Shopify OAuth/refresh
Hosted AI transforms
Official support Community/best effort
Commercial invoices/refunds

Community is for transparency, self-building, and contribution. Pro is for people and teams who want SpecterSync maintained, signed, updated, supported, and ready for production work.

How it works

┌─────────────────────────────────┐
│ Specter (Mac / Win / Linux)     │
│ ┌─────────────────────────────┐ │
│ │ Tray / menu bar UI          │ │
│ │ Dashboard window            │ │
│ │ Settings / Onboarding       │ │
│ └─────────────┬───────────────┘ │
│               │ spawns          │
│               ▼                 │
│ ┌─────────────────────────────┐ │
│ │ Daemon (Node.js child)      │ │
│ │ - Watches local markdown    │ │
│ │ - Polls CMS every 10 min    │ │
│ │ - Runs pull / push / sync   │ │
│ │ - One CmsAdapter per target │ │
│ └─────────────┬───────────────┘ │
│               │ writes          │
│               ▼                 │
│   ~/.local/state/ghost-sync/    │
│   state.json (UI polls this)    │
└─────────────────────────────────┘

The Mac shell and the daemon communicate only via state.json. One-shot CLI commands (pull, push, sync) spawn a fresh daemon process; the long-running watcher is a separate supervised process. Architecture details: docs/architecture.md.

The CmsAdapter seam

Every CMS plugs in through one interface:

interface CmsAdapter {
  platform: 'ghost' | 'shopify' | 'wordpress' | ...;
  listPosts(): Promise<RemotePost[]>;
  getPost(id: string): Promise<RemotePost>;
  createPost(input: CreatePostInput): Promise<RemotePost>;
  updatePost(id: string, input: UpdatePostInput): Promise<RemotePost>;
  deletePost(id: string): Promise<void>;
  listContainers?(): Promise<RemoteContainer[]>;  // blogs, sections, etc.
  testConnection(): Promise<void>;
  capabilities: {
    supportsContainers: boolean;
    optimisticLock: boolean;
  };
}

RemotePost.body is always markdown. Adapters convert HTML ↔ markdown at the seam — engine code never touches platform-native body formats. See docs/adding-a-cms.md for the contract test suite that every new adapter must pass.

Contributing

Bug reports, feature requests, and pull requests welcome. See CONTRIBUTING.md.

SpecterSync has both an AGPLv3 Community edition and a commercial Pro edition. Contributions require agreement to the project contribution terms/CLA so accepted changes can be used in both the open-source and commercial editions.

Architectural changes that touch the CmsAdapter seam, the frontmatter shape, or the sync engine: please open an issue first — those changes affect every adapter and we'd rather discuss the shape before you sink a weekend into a PR.

New CMS adapters: open an issue describing the target platform + your use case. Roughly: list its REST/GraphQL endpoints, its native body format (HTML / blocks / mobiledoc / something else), its auth mechanism, and whether it supports optimistic concurrency. Then write the adapter + wire it through runCmsAdapterContract(...). Reference implementations: src/ghost/adapter.ts, src/shopify/adapter.ts.

See docs/contribution-flow.md for how public PRs are reviewed and mirrored back into the private canonical release repo.

License

GNU Affero General Public License v3.0 only.

SpecterSync DIY is open source under AGPLv3.

You can use, study, modify, and redistribute the source under AGPLv3. If you distribute modified versions or offer modified networked versions, you must provide the corresponding source under the same license.

SpecterSync Pro is a separate commercial product and service offering. Pro is paid for signed installers, license activation, automatic updates, managed connector infrastructure, hosted AI transformation workflows, support, and commercial operations.

The SpecterSync name, logo, app icons, release assets, and official branding are covered by TRADEMARK.md. Forks are welcome under the license terms, but compiled redistributions must use their own name and branding unless written permission is granted.

Who built this

Axel Antas-Bergkvist under aabergkvist AB (Sweden). Specter started as a local Obsidian plugin in May 2026 to scratch the "edit Ghost in Obsidian without going through their web editor" itch; it's grown into a CMS-agnostic sync tool because the workflow turned out to apply far beyond Ghost.

If SpecterSync DIY saves you time and you want the supported production lane, use SpecterSync Pro.


Status: SpecterSync DIY is preparing for public preview. v0.6.x. Production-stable Pro releases exist for Ghost, Shopify, and WordPress single-store setups; deeper per-platform content coverage is in flight.