@synap-core/workspace-templates 0.2.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +5284 -4420
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +25 -15
- package/src/agent-fleet.yaml +38 -398
- package/src/brand-library.yaml +68 -44
- package/src/builder.yaml +75 -18
- package/src/content-os.yaml +31 -391
- package/src/content-studio.yaml +70 -22
- package/src/crm.yaml +112 -423
- package/src/dev-dashboard.yaml +37 -393
- package/src/finance.yaml +485 -0
- package/src/foundation.yaml +34 -8
- package/src/hr.yaml +474 -0
- package/src/legal.yaml +495 -0
- package/src/life-os.yaml +42 -89
- package/src/marketing.yaml +67 -15
- package/src/operations.yaml +496 -0
- package/src/personal.yaml +68 -6
- package/src/project-management.yaml +38 -378
- package/src/radar.yaml +34 -11
- package/src/templates.ts +5284 -4420
- package/src/types.ts +27 -0
package/src/brand-library.yaml
CHANGED
|
@@ -510,6 +510,74 @@ entityLinks:
|
|
|
510
510
|
type: uses
|
|
511
511
|
label: Uses token set
|
|
512
512
|
|
|
513
|
+
onboarding:
|
|
514
|
+
goal: Capture the brand's expressive DNA — voice, visual identity, and the rules that keep everything on-brand — so any human or AI can generate on-brand content and assets.
|
|
515
|
+
framing: >
|
|
516
|
+
THE BRAND STRATEGIST: Act as a seasoned brand strategist. Draw out how the
|
|
517
|
+
brand sounds (tone, personality, do's and don'ts), how it looks (identity,
|
|
518
|
+
colors, type), and the non-negotiable rules. Translate fuzzy vibes into
|
|
519
|
+
concrete voice guides and rules. Reference the Foundation (mission, audience,
|
|
520
|
+
positioning) so the brand expresses the strategy, never contradicts it.
|
|
521
|
+
expertise:
|
|
522
|
+
starters:
|
|
523
|
+
- >
|
|
524
|
+
Adjectives don't define a voice — "friendly, bold, human" describes every
|
|
525
|
+
brand and constrains none. Propose voice as a small set of DO / DON'T pairs
|
|
526
|
+
instead ("say 'you', not 'users'"; "short declaratives, never hedged
|
|
527
|
+
qualifiers"). Pairs are testable; adjectives are decoration.
|
|
528
|
+
- >
|
|
529
|
+
A voice guide is only real if it survives a sentence test. Take one actual
|
|
530
|
+
line from their site or a competitor's and rewrite it in the proposed voice
|
|
531
|
+
on the spot — if the rewrite looks identical to the original, the voice isn't
|
|
532
|
+
differentiated yet. Push until the two versions are visibly different.
|
|
533
|
+
- >
|
|
534
|
+
Build the palette around ROLES, not just favorite colors. Pin the semantic
|
|
535
|
+
roles first — primary, surface, text, and one restrained accent — and make
|
|
536
|
+
the accent earn its keep. Most brands leak trust by using three "brand
|
|
537
|
+
colors" as accents; propose one hero accent and demote the rest to support.
|
|
538
|
+
blindSpots:
|
|
539
|
+
- >
|
|
540
|
+
"Brand = logo" is the classic trap. The logo is the least-used, most-argued
|
|
541
|
+
asset; the voice, the color roles, and the do/don't rules drive 90% of what
|
|
542
|
+
anyone actually ships. If they lead with the logo, redirect to how the brand
|
|
543
|
+
SOUNDS and behaves in a paragraph of copy.
|
|
544
|
+
- >
|
|
545
|
+
Rules with no severity are ignored. A pile of equally-weighted "guidelines"
|
|
546
|
+
gives an AI or a teammate nothing to obey — mark each as mandatory,
|
|
547
|
+
important, or guideline so the non-negotiables (clearspace, accessibility
|
|
548
|
+
contrast, forbidden words) actually hold under pressure.
|
|
549
|
+
- >
|
|
550
|
+
Color contrast is a silent brand-killer: a beautiful palette that fails WCAG
|
|
551
|
+
AA on text is off-brand the moment it's inaccessible. If they've picked
|
|
552
|
+
colors without checking text-on-surface contrast, flag it before it's
|
|
553
|
+
codified into tokens.
|
|
554
|
+
bar: >
|
|
555
|
+
A stranger handed the voice pairs, the color roles, and the rules could write a
|
|
556
|
+
new paragraph and pick a button color that both read unmistakably as THIS brand —
|
|
557
|
+
and every rule is testable on a real sentence or a real screen, not a vibe.
|
|
558
|
+
collect:
|
|
559
|
+
- profileSlug: brand-identity
|
|
560
|
+
what: The core brand identity — name, essence, and how it presents itself.
|
|
561
|
+
cardinality: one
|
|
562
|
+
- profileSlug: brand-voice-guide
|
|
563
|
+
what: Voice guides — tone, personality traits, vocabulary, and do/don't examples per context.
|
|
564
|
+
cardinality: few
|
|
565
|
+
keyFields: [voice-personality-traits, voice-tone-descriptors, voice-example-do, voice-example-dont]
|
|
566
|
+
- profileSlug: brand-rule
|
|
567
|
+
what: Usage rules and constraints (mandatory / important / guideline).
|
|
568
|
+
cardinality: several
|
|
569
|
+
- profileSlug: brand-color
|
|
570
|
+
what: The brand's core colors.
|
|
571
|
+
cardinality: few
|
|
572
|
+
- profileSlug: brand-font
|
|
573
|
+
what: The brand's typefaces (heading / body / mono).
|
|
574
|
+
cardinality: few
|
|
575
|
+
openingQuestions:
|
|
576
|
+
- In three words, how should the brand sound?
|
|
577
|
+
- What's one thing the brand must never say or do?
|
|
578
|
+
- Who's the brand talking to (tie this back to your Foundation audience)?
|
|
579
|
+
doneWhen: A brand identity + at least one voice guide + a few rules are captured.
|
|
580
|
+
|
|
513
581
|
app:
|
|
514
582
|
kind: native
|
|
515
583
|
appId: brandLibrary
|
|
@@ -581,47 +649,3 @@ bento:
|
|
|
581
649
|
- kind: view
|
|
582
650
|
viewName: Templates
|
|
583
651
|
pos: { x: 6, y: 8, w: 6, h: 4 }
|
|
584
|
-
|
|
585
|
-
seedEntities:
|
|
586
|
-
- profileSlug: brand-identity
|
|
587
|
-
title: Primary Brand
|
|
588
|
-
properties:
|
|
589
|
-
brand-type: universal
|
|
590
|
-
brand-status: active
|
|
591
|
-
brand-positioning: Describe the promise, category, and differentiation of this brand.
|
|
592
|
-
brand-audience-primary: Describe the primary audience and buying context.
|
|
593
|
-
brand-voice-summary: Clear, useful, specific, and calm.
|
|
594
|
-
- profileSlug: brand-color
|
|
595
|
-
title: Primary
|
|
596
|
-
properties:
|
|
597
|
-
color-role: primary
|
|
598
|
-
color-group: core
|
|
599
|
-
color-hex: "#B67A38"
|
|
600
|
-
color-token-name: brand-primary
|
|
601
|
-
color-status: approved
|
|
602
|
-
color-usage: Primary action and selection accent.
|
|
603
|
-
- profileSlug: brand-font
|
|
604
|
-
title: System Sans
|
|
605
|
-
properties:
|
|
606
|
-
font-role: body
|
|
607
|
-
font-family: system-ui
|
|
608
|
-
font-license: system
|
|
609
|
-
font-weights: "400, 500, 600, 700"
|
|
610
|
-
font-fallback: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif
|
|
611
|
-
font-status: active
|
|
612
|
-
- profileSlug: brand-token-set
|
|
613
|
-
title: Base Tokens
|
|
614
|
-
properties:
|
|
615
|
-
token-status: draft
|
|
616
|
-
token-mode: base
|
|
617
|
-
token-source-ids: seed
|
|
618
|
-
token-json: '{"colors":{"primary":"#B67A38"},"typography":{"body":"system-ui"}}'
|
|
619
|
-
token-css: ":root { --brand-primary: #B67A38; --brand-font-body: system-ui; }"
|
|
620
|
-
- profileSlug: brand-rule
|
|
621
|
-
title: Use approved sources first
|
|
622
|
-
properties:
|
|
623
|
-
rule-kind: generation
|
|
624
|
-
rule-subject: general
|
|
625
|
-
rule-severity: guideline
|
|
626
|
-
rule-content: Use approved colors, typefaces, assets, and token sets before creating variants.
|
|
627
|
-
rule-example: When generating an artboard, prefer the active token set and approved logo/image assets.
|
package/src/builder.yaml
CHANGED
|
@@ -1258,6 +1258,81 @@ entityLinks:
|
|
|
1258
1258
|
type: depends_on
|
|
1259
1259
|
label: Depends on
|
|
1260
1260
|
|
|
1261
|
+
onboarding:
|
|
1262
|
+
goal: Capture the real engineering surface — the apps that are shipped, where their code lives, what runs behind them, where they deploy, and what's in flight — so the workspace mirrors what the team actually builds and runs, not a generic template.
|
|
1263
|
+
framing: >
|
|
1264
|
+
THE STAFF ENGINEER: Act as a pragmatic, precise staff/platform engineer standing up a
|
|
1265
|
+
developer command center. Tease out what's actually shipped vs. planned, where the code
|
|
1266
|
+
lives (repos + local paths), what runs behind each app, where it deploys, and what's on
|
|
1267
|
+
the bench right now. Prefer concrete over aspirational — a repo URL beats a wish. Tie the
|
|
1268
|
+
roadmap back to the Foundation's mission and audiences: the surface exists to serve them.
|
|
1269
|
+
expertise:
|
|
1270
|
+
starters:
|
|
1271
|
+
- >
|
|
1272
|
+
Don't ask "what do you want to build?" — ask what's already running. Propose starting from
|
|
1273
|
+
the ONE app that's live today, its primary deploy target, and the single feature in flight
|
|
1274
|
+
right now. One real node with a repo URL beats ten aspirational ones. The map grows from
|
|
1275
|
+
what exists, not from the org chart you wish you had.
|
|
1276
|
+
- >
|
|
1277
|
+
For each app, capture the deploy path end to end: repo → branch that auto-deploys → target
|
|
1278
|
+
(Vercel/Coolify/bare VPS) → the URL it lands on. A node that says "app" but can't answer
|
|
1279
|
+
"how does a commit reach production?" is a label, not a map.
|
|
1280
|
+
- >
|
|
1281
|
+
Lead with the in-flight work as first-class entities, not a backlog dump. Take the feature
|
|
1282
|
+
being coded this week, give it a status and an acceptance criterion, and link it to its app.
|
|
1283
|
+
That single live thread is what makes the workspace a command center instead of a wiki.
|
|
1284
|
+
blindSpots:
|
|
1285
|
+
- >
|
|
1286
|
+
The map is worthless the moment it drifts from reality. Founders capture the IDEAL
|
|
1287
|
+
architecture (the clean diagram) instead of the system AS IT IS — the hacky cron, the
|
|
1288
|
+
service everyone forgot owns auth, the package no one dares upgrade. Capture the mess;
|
|
1289
|
+
the mess is where the incidents come from.
|
|
1290
|
+
- >
|
|
1291
|
+
"We'll document it later" is how tribal knowledge dies. The one engineer who knows why
|
|
1292
|
+
service X can't be restarted during a deploy leaves, and it becomes a 2am incident. Capture
|
|
1293
|
+
the non-obvious operational facts (decision records, gotchas) NOW, while someone still
|
|
1294
|
+
remembers the why — not after the outage.
|
|
1295
|
+
- >
|
|
1296
|
+
Packages and their dependency edges are the silent killer. Founders track apps but not the
|
|
1297
|
+
shared substrate underneath — so a "small" bump to a core package breaks three apps nobody
|
|
1298
|
+
connected to it. Capture what depends on what; the blast radius lives in the edges, not the
|
|
1299
|
+
nodes.
|
|
1300
|
+
bar: >
|
|
1301
|
+
A great result is a graph you can navigate in any direction to answer a real operational
|
|
1302
|
+
question — "if I bump this package, what breaks?", "how does a commit reach prod for app X?",
|
|
1303
|
+
"what's actually in flight and who's on it?" — and every answer matches what's true in the
|
|
1304
|
+
terminal right now, not what was true at kickoff.
|
|
1305
|
+
collect:
|
|
1306
|
+
- profileSlug: devplane_app
|
|
1307
|
+
what: The apps that are shipped or actively being built — with where their code lives and what stack they run on.
|
|
1308
|
+
cardinality: several
|
|
1309
|
+
keyFields: [appName, appStatus, techStack, repoUrl]
|
|
1310
|
+
- profileSlug: devplane_service
|
|
1311
|
+
what: The backend services, workers, and jobs that run behind those apps.
|
|
1312
|
+
cardinality: few
|
|
1313
|
+
keyFields: [serviceType, serviceStatus, host]
|
|
1314
|
+
- profileSlug: devplane_environment
|
|
1315
|
+
what: The servers and deploy targets the team ships to — local through production.
|
|
1316
|
+
cardinality: few
|
|
1317
|
+
keyFields: [envType, host, serverProvider]
|
|
1318
|
+
- profileSlug: devplane_package
|
|
1319
|
+
what: The shared packages the apps depend on — the reusable substrate of the codebase.
|
|
1320
|
+
cardinality: several
|
|
1321
|
+
keyFields: [packageName, packageRegistry, dependsOn]
|
|
1322
|
+
- profileSlug: devplane_feature
|
|
1323
|
+
what: The work in flight right now — features and work items with a status and priority.
|
|
1324
|
+
cardinality: several
|
|
1325
|
+
keyFields: [featureStatus, priority]
|
|
1326
|
+
- profileSlug: project
|
|
1327
|
+
what: The larger bounded bodies of work delegated to agents or the team, tied to a goal.
|
|
1328
|
+
cardinality: few
|
|
1329
|
+
keyFields: [project-status, project-goal]
|
|
1330
|
+
openingQuestions:
|
|
1331
|
+
- "What have you actually shipped, and what's still just planned? Give me the apps and their repos."
|
|
1332
|
+
- "For each app — what runs behind it (services, workers), and where does it deploy?"
|
|
1333
|
+
- "What's on your plate this week, and which of it should be delegated to agents?"
|
|
1334
|
+
doneWhen: at least one app (with a repo) + its primary deploy target + one in-flight feature or project captured.
|
|
1335
|
+
|
|
1261
1336
|
# App reference
|
|
1262
1337
|
app:
|
|
1263
1338
|
kind: native
|
|
@@ -1335,21 +1410,3 @@ bento:
|
|
|
1335
1410
|
- kind: view
|
|
1336
1411
|
viewName: Task Board
|
|
1337
1412
|
pos: { x: 0, y: 4, w: 12, h: 6 }
|
|
1338
|
-
|
|
1339
|
-
seedEntities:
|
|
1340
|
-
- profileSlug: deployment_target
|
|
1341
|
-
title: Coolify Production (CT 103)
|
|
1342
|
-
properties:
|
|
1343
|
-
targetType: coolify
|
|
1344
|
-
targetUrl: "http://10.10.0.20:8000"
|
|
1345
|
-
targetAuthRef: COOLIFY_PROD_TOKEN
|
|
1346
|
-
targetEnvType: production
|
|
1347
|
-
targetStatus: active
|
|
1348
|
-
- profileSlug: deployment_target
|
|
1349
|
-
title: Coolify Staging (CT 104)
|
|
1350
|
-
properties:
|
|
1351
|
-
targetType: coolify
|
|
1352
|
-
targetUrl: "http://10.10.0.20:8000"
|
|
1353
|
-
targetAuthRef: COOLIFY_STAGING_TOKEN
|
|
1354
|
-
targetEnvType: staging
|
|
1355
|
-
targetStatus: active
|
package/src/content-os.yaml
CHANGED
|
@@ -677,397 +677,6 @@ entityLinks:
|
|
|
677
677
|
targetProfileSlug: post
|
|
678
678
|
type: publishes
|
|
679
679
|
|
|
680
|
-
seedEntities:
|
|
681
|
-
- profileSlug: pillar
|
|
682
|
-
title: Data Sovereignty
|
|
683
|
-
properties:
|
|
684
|
-
pillar-status: Active
|
|
685
|
-
pillar-audience: "Founders, developers, and privacy-conscious professionals"
|
|
686
|
-
pillar-goal: "Position Synap as the infrastructure layer for personal data ownership — make the audience feel that sovereignty is not technical, it is a right"
|
|
687
|
-
pillar-formats: "Articles + Threads"
|
|
688
|
-
post-count-pillar: 12
|
|
689
|
-
avg-engagement: 340
|
|
690
|
-
top-post: "Why your data is not yours — and how to fix that"
|
|
691
|
-
posting-frequency: "2x / week"
|
|
692
|
-
pillar-tags: [sovereignty, synap, infrastructure]
|
|
693
|
-
- profileSlug: pillar
|
|
694
|
-
title: Product Building
|
|
695
|
-
properties:
|
|
696
|
-
pillar-status: Active
|
|
697
|
-
pillar-audience: "Indie hackers, founders, and early-stage builders"
|
|
698
|
-
pillar-goal: "Share the authentic journey of building Synap — decisions, mistakes, architecture choices — building trust through transparency"
|
|
699
|
-
pillar-formats: "Articles + Threads"
|
|
700
|
-
post-count-pillar: 8
|
|
701
|
-
avg-engagement: 210
|
|
702
|
-
top-post: "How we designed Synap's entity model from scratch"
|
|
703
|
-
posting-frequency: Weekly
|
|
704
|
-
pillar-tags: [building-in-public, synap, product]
|
|
705
|
-
- profileSlug: pillar
|
|
706
|
-
title: Creator Economy
|
|
707
|
-
properties:
|
|
708
|
-
pillar-status: Developing
|
|
709
|
-
pillar-audience: "Creators, solopreneurs, and content entrepreneurs"
|
|
710
|
-
pillar-goal: "Establish Synap's authority in the creator tools space — explain why the current tool stack is broken and what a sovereign alternative looks like"
|
|
711
|
-
pillar-formats: "Articles + Threads"
|
|
712
|
-
post-count-pillar: 4
|
|
713
|
-
avg-engagement: 180
|
|
714
|
-
posting-frequency: Weekly
|
|
715
|
-
pillar-tags: [creator-economy, content-os, tools]
|
|
716
|
-
- profileSlug: platform
|
|
717
|
-
title: LinkedIn
|
|
718
|
-
properties:
|
|
719
|
-
platform-status: Active
|
|
720
|
-
platform-url: "https://linkedin.com/in/your-handle"
|
|
721
|
-
follower-count: 3200
|
|
722
|
-
follower-target: 10000
|
|
723
|
-
avg-engagement-rate: 4.2
|
|
724
|
-
platform-posting-freq: "3x / week"
|
|
725
|
-
last-post-date: "2026-02-23"
|
|
726
|
-
platform-notes: "Long-form articles perform 3x better than short posts. Best engagement on Monday 8am and Thursday 6pm. CET. Professional tone, avoid jargon."
|
|
727
|
-
platform-tags: [linkedin, b2b, professional]
|
|
728
|
-
- profileSlug: platform
|
|
729
|
-
title: "Twitter / X"
|
|
730
|
-
properties:
|
|
731
|
-
platform-status: Active
|
|
732
|
-
platform-url: "https://x.com/your-handle"
|
|
733
|
-
follower-count: 1800
|
|
734
|
-
follower-target: 5000
|
|
735
|
-
avg-engagement-rate: 2.1
|
|
736
|
-
platform-posting-freq: Daily
|
|
737
|
-
last-post-date: "2026-02-23"
|
|
738
|
-
platform-notes: "Threads outperform single tweets 4:1. Tech and sovereignty threads go viral occasionally. Engage before posting — reply to 5 accounts before publishing."
|
|
739
|
-
platform-tags: [twitter, threads, tech]
|
|
740
|
-
- profileSlug: platform
|
|
741
|
-
title: Synap Newsletter
|
|
742
|
-
properties:
|
|
743
|
-
platform-type: Newsletter
|
|
744
|
-
platform-status: Building
|
|
745
|
-
follower-count: 420
|
|
746
|
-
follower-target: 2000
|
|
747
|
-
avg-engagement-rate: 38
|
|
748
|
-
platform-posting-freq: Weekly
|
|
749
|
-
last-post-date: "2026-02-17"
|
|
750
|
-
platform-notes: "35-40% open rate. Audience is tech-adjacent, values depth over brevity. Tuesdays at 7am CET performs best. Personal voice + one tactical insight + one product update."
|
|
751
|
-
platform-tags: [newsletter, owned, sovereign]
|
|
752
|
-
- profileSlug: campaign
|
|
753
|
-
title: "Synap Template Launch — Q1 2026"
|
|
754
|
-
properties:
|
|
755
|
-
campaign-status: Active
|
|
756
|
-
campaign-type: Product Launch
|
|
757
|
-
campaign-pillar: "ref:pillar:Product Building"
|
|
758
|
-
campaign-start: "2026-02-01"
|
|
759
|
-
campaign-end: "2026-03-31"
|
|
760
|
-
campaign-goal: "Drive 500 new workspace template activations and grow newsletter to 1,000 subscribers"
|
|
761
|
-
campaign-kpi: "Newsletter Sign-ups"
|
|
762
|
-
kpi-target: 500
|
|
763
|
-
post-count: 12
|
|
764
|
-
campaign-tags: [launch, templates, q1-2026]
|
|
765
|
-
content: |-
|
|
766
|
-
# Campaign Brief: Synap Template Launch — Q1 2026
|
|
767
|
-
|
|
768
|
-
## Objective
|
|
769
|
-
|
|
770
|
-
Drive 500 template activations and 1,000 new newsletter subscribers by March 31, 2026. This is Synap's first public-facing product moment — the goal is not just installs but proof that the entity-first model resonates with creators who think in systems.
|
|
771
|
-
|
|
772
|
-
## Target audience
|
|
773
|
-
|
|
774
|
-
Content creators and founder-creators managing multi-channel presence across 2+ platforms. They've tried Notion templates. They've paid for Buffer and Later. They feel the friction. They're ready for something built differently.
|
|
775
|
-
|
|
776
|
-
## Content plan
|
|
777
|
-
|
|
778
|
-
12 posts across LinkedIn and Twitter/X over 8 weeks:
|
|
779
|
-
|
|
780
|
-
- **Week 1-2**: Problem framing — the creator stack is broken, context-switching cost, no unified operating record
|
|
781
|
-
- **Week 3-4**: Solution reveal — what a Content OS actually looks like, entity model walkthrough
|
|
782
|
-
- **Week 5-6**: Template demo — what's included, how seed data works, the graph view
|
|
783
|
-
- **Week 7-8**: Social proof + launch push — install CTA, newsletter integration, community feedback
|
|
784
|
-
|
|
785
|
-
## KPIs
|
|
786
|
-
|
|
787
|
-
| Metric | Target |
|
|
788
|
-
|--------|--------|
|
|
789
|
-
| Template activations | 500 |
|
|
790
|
-
| Newsletter subs added | 1,000 |
|
|
791
|
-
| LinkedIn post avg reach | 8,000+ |
|
|
792
|
-
| Twitter thread avg impressions | 15,000+ |
|
|
793
|
-
|
|
794
|
-
## Budget
|
|
795
|
-
|
|
796
|
-
€0 paid. Organic only. Brand deals (Mintlify, Anytype) offset production time.
|
|
797
|
-
|
|
798
|
-
## Dependencies
|
|
799
|
-
|
|
800
|
-
- Template JSON validated and live in install flow
|
|
801
|
-
- Synap Newsletter Issue 13 dedicated to template walkthrough
|
|
802
|
-
- Mintlify sponsorship confirmed for Issue 12
|
|
803
|
-
- profileSlug: campaign
|
|
804
|
-
title: Data Sovereignty Series
|
|
805
|
-
properties:
|
|
806
|
-
campaign-status: Active
|
|
807
|
-
campaign-type: Editorial Series
|
|
808
|
-
campaign-pillar: "ref:pillar:Data Sovereignty"
|
|
809
|
-
campaign-start: "2026-01-15"
|
|
810
|
-
campaign-end: "2026-04-30"
|
|
811
|
-
campaign-goal: "Establish Synap's thought leadership in the sovereignty space — 10 long-form posts that define the narrative"
|
|
812
|
-
campaign-kpi: "Follower Growth"
|
|
813
|
-
kpi-target: 1000
|
|
814
|
-
post-count: 6
|
|
815
|
-
campaign-tags: [sovereignty, series, thought-leadership]
|
|
816
|
-
- profileSlug: post
|
|
817
|
-
title: "Why your subscriber list is not yours — and what to do about it"
|
|
818
|
-
properties:
|
|
819
|
-
post-status: Published
|
|
820
|
-
post-format: Article
|
|
821
|
-
post-platform: LinkedIn
|
|
822
|
-
post-pillar: "ref:pillar:Data Sovereignty"
|
|
823
|
-
post-campaign: "ref:campaign:Data Sovereignty Series"
|
|
824
|
-
publish-date: "2026-02-10"
|
|
825
|
-
post-hook: "You have 3,000 newsletter subscribers. If Substack disappears tomorrow, how many of them can you reach?"
|
|
826
|
-
post-cta: "Download our free guide to migrating your subscriber list to sovereign infrastructure"
|
|
827
|
-
post-tags: [sovereignty, newsletter, substack]
|
|
828
|
-
engagement-score: 520
|
|
829
|
-
post-reach: 12400
|
|
830
|
-
content: |-
|
|
831
|
-
# Why Your Subscriber List Is Not Yours — And What to Do About It
|
|
832
|
-
|
|
833
|
-
## Core argument
|
|
834
|
-
|
|
835
|
-
When you build an audience on Substack, Mailchimp, or Beehiiv, you don't own the relationship. The platform does. They store the emails. They control deliverability. They set the terms of export. And if they change their pricing, get acquired, or shut down — your list goes with them.
|
|
836
|
-
|
|
837
|
-
This is not a hypothetical risk. It is the default architecture of every major newsletter platform.
|
|
838
|
-
|
|
839
|
-
## What ownership actually means
|
|
840
|
-
|
|
841
|
-
Owning your subscriber list means three things:
|
|
842
|
-
|
|
843
|
-
1. **You hold the data.** The email addresses, open history, click behavior, and preferences live in infrastructure you control — not on a vendor's server.
|
|
844
|
-
2. **You choose the delivery layer.** You can switch from Mailchimp to Postmark to SES without asking permission and without migration friction.
|
|
845
|
-
3. **You set the rules.** GDPR compliance, data retention, deletion requests — you handle them directly, not through a third-party dashboard.
|
|
846
|
-
|
|
847
|
-
## The sovereignty architecture
|
|
848
|
-
|
|
849
|
-
The alternative is treating your subscriber database as a first-class entity in your own data infrastructure. A record per subscriber. Properties for consent date, source, segment, engagement history. Relationships to the newsletter issues they opened, the posts that drove the sign-up.
|
|
850
|
-
|
|
851
|
-
This is what Synap enables with the Newsletter profile — your subscriber data lives in your pod, queryable by you, portable to any email provider, never held hostage.
|
|
852
|
-
|
|
853
|
-
## The ask
|
|
854
|
-
|
|
855
|
-
Follow if you believe your audience relationship is a business asset — not a vendor dependency.
|
|
856
|
-
|
|
857
|
-
---
|
|
858
|
-
*Published: LinkedIn · Data Sovereignty pillar · Data Sovereignty Series campaign*
|
|
859
|
-
- profileSlug: post
|
|
860
|
-
title: "Synap's entity model: why we ditched the database-first approach"
|
|
861
|
-
properties:
|
|
862
|
-
post-status: In Draft
|
|
863
|
-
post-format: Article
|
|
864
|
-
post-platform: LinkedIn
|
|
865
|
-
post-pillar: "ref:pillar:Product Building"
|
|
866
|
-
post-campaign: "ref:campaign:Synap Template Launch — Q1 2026"
|
|
867
|
-
publish-date: "2026-03-03"
|
|
868
|
-
post-hook: "Every other tool gives you a database. We built a network of entities — and the difference is everything."
|
|
869
|
-
post-cta: "Try the Second Brain template in Synap — free"
|
|
870
|
-
post-tags: [product, synap, architecture]
|
|
871
|
-
- profileSlug: post
|
|
872
|
-
title: "Thread: The creator tool stack is broken — here is why"
|
|
873
|
-
properties:
|
|
874
|
-
post-status: Scheduled
|
|
875
|
-
post-format: Thread
|
|
876
|
-
post-platform: "Twitter / X"
|
|
877
|
-
post-pillar: "ref:pillar:Creator Economy"
|
|
878
|
-
post-campaign: "ref:campaign:Synap Template Launch — Q1 2026"
|
|
879
|
-
publish-date: "2026-02-25"
|
|
880
|
-
post-hook: "I talked to 40 creators this month. Every single one uses 5+ tools that don't talk to each other. Here's what they all want:"
|
|
881
|
-
post-cta: "Follow for the full Creator Economy report"
|
|
882
|
-
post-tags: [creator-economy, tools, research]
|
|
883
|
-
- profileSlug: post
|
|
884
|
-
title: "Content OS template — what's included and why we built it"
|
|
885
|
-
properties:
|
|
886
|
-
post-status: Idea
|
|
887
|
-
post-format: Short Video
|
|
888
|
-
post-platform: LinkedIn
|
|
889
|
-
post-pillar: "ref:pillar:Product Building"
|
|
890
|
-
post-campaign: "ref:campaign:Synap Template Launch — Q1 2026"
|
|
891
|
-
post-hook: "We spent 3 weeks researching 8 creator tools before building Synap's Content OS template. Here is what we found."
|
|
892
|
-
post-tags: [content-os, templates, synap, research]
|
|
893
|
-
- profileSlug: post
|
|
894
|
-
title: "Data sovereignty is not a technical concept — it is a political one"
|
|
895
|
-
properties:
|
|
896
|
-
post-status: Idea
|
|
897
|
-
post-format: Article
|
|
898
|
-
post-platform: LinkedIn
|
|
899
|
-
post-pillar: "ref:pillar:Data Sovereignty"
|
|
900
|
-
post-campaign: "ref:campaign:Data Sovereignty Series"
|
|
901
|
-
post-hook: "The Sovereign Individual was published in 1997. It predicted exactly what is happening right now with AI and personal data."
|
|
902
|
-
post-tags: [sovereignty, philosophy, ai]
|
|
903
|
-
- profileSlug: post
|
|
904
|
-
title: "How Synap templates are seeded: the JSON-first approach"
|
|
905
|
-
properties:
|
|
906
|
-
post-status: Review
|
|
907
|
-
post-format: Article
|
|
908
|
-
post-platform: LinkedIn
|
|
909
|
-
post-pillar: "ref:pillar:Product Building"
|
|
910
|
-
post-campaign: "ref:campaign:Synap Template Launch — Q1 2026"
|
|
911
|
-
publish-date: "2026-03-10"
|
|
912
|
-
post-hook: "Most SaaS products show you an empty database on day one. Synap shows you a fully functional workspace. Here is how we do it."
|
|
913
|
-
post-cta: "Read the full technical deep-dive on our blog"
|
|
914
|
-
post-tags: [engineering, synap, templates, onboarding]
|
|
915
|
-
- profileSlug: newsletter
|
|
916
|
-
title: "The Sovereign Stack — Issue 12"
|
|
917
|
-
properties:
|
|
918
|
-
newsletter-status: Sent
|
|
919
|
-
newsletter-series: The Sovereign Stack
|
|
920
|
-
issue-number: 12
|
|
921
|
-
subject-line: "The 3 databases that own your content career (and how to escape)"
|
|
922
|
-
preview-text: "Your Substack list, your Buffer posts, your Notion brain..."
|
|
923
|
-
send-date: "2026-02-17"
|
|
924
|
-
subscriber-count: 390
|
|
925
|
-
open-rate: 39.2
|
|
926
|
-
click-rate: 6.8
|
|
927
|
-
newsletter-sponsor: "ref:sponsor:Mintlify"
|
|
928
|
-
newsletter-campaign: "ref:campaign:Data Sovereignty Series"
|
|
929
|
-
newsletter-pillar: "ref:pillar:Data Sovereignty"
|
|
930
|
-
newsletter-tags: [sovereignty, creator-tools, newsletter]
|
|
931
|
-
- profileSlug: newsletter
|
|
932
|
-
title: "The Sovereign Stack — Issue 13"
|
|
933
|
-
properties:
|
|
934
|
-
newsletter-status: Scheduled
|
|
935
|
-
newsletter-series: The Sovereign Stack
|
|
936
|
-
issue-number: 13
|
|
937
|
-
subject-line: "Inside Synap's Content OS template — what we built and why"
|
|
938
|
-
preview-text: "6 profiles, 16 views, 1 relational graph you own forever"
|
|
939
|
-
send-date: "2026-02-24"
|
|
940
|
-
newsletter-campaign: "ref:campaign:Synap Template Launch — Q1 2026"
|
|
941
|
-
newsletter-pillar: "ref:pillar:Product Building"
|
|
942
|
-
newsletter-tags: [content-os, templates, synap]
|
|
943
|
-
- profileSlug: newsletter
|
|
944
|
-
title: "The Sovereign Stack — Issue 14"
|
|
945
|
-
properties:
|
|
946
|
-
newsletter-status: Drafting
|
|
947
|
-
newsletter-series: The Sovereign Stack
|
|
948
|
-
issue-number: 14
|
|
949
|
-
subject-line: "Why we picked Ghost over Substack (and what it cost us)"
|
|
950
|
-
preview-text: "Honest numbers: subscriber growth, open rates, and the SEO truth"
|
|
951
|
-
send-date: "2026-03-03"
|
|
952
|
-
newsletter-pillar: "ref:pillar:Data Sovereignty"
|
|
953
|
-
newsletter-tags: [ghost, substack, sovereignty, newsletter]
|
|
954
|
-
newsletter-campaign: "ref:campaign:Data Sovereignty Series"
|
|
955
|
-
- profileSlug: sponsor
|
|
956
|
-
title: Mintlify
|
|
957
|
-
properties:
|
|
958
|
-
deal-status: Active
|
|
959
|
-
sponsor-type: Newsletter Sponsorship
|
|
960
|
-
contact-name: Alex Chen
|
|
961
|
-
contact-email: "alex@mintlify.com"
|
|
962
|
-
deal-value: 800
|
|
963
|
-
payment-status: Invoice Sent
|
|
964
|
-
contract-date: "2026-02-10"
|
|
965
|
-
deliverable-deadline: "2026-02-28"
|
|
966
|
-
exclusivity-end: "2026-03-15"
|
|
967
|
-
deliverables: "1 newsletter mention in Issue 12 (primary placement, 80–100 words). 1 LinkedIn post tagging Mintlify. Approved copy to be provided by sponsor."
|
|
968
|
-
talking-points: "Mintlify writes beautiful docs from your codebase. For developer-facing teams. Mention the GitHub integration."
|
|
969
|
-
performance-notes: "Issue 12: 39.2% open rate, 6.8% click rate. Sponsor link received 47 clicks. Will share screenshot report."
|
|
970
|
-
sponsor-tags: [developer-tools, newsletter, q1-2026]
|
|
971
|
-
content: |-
|
|
972
|
-
# Sponsor Brief: Mintlify — Issue 12
|
|
973
|
-
|
|
974
|
-
## Deal summary
|
|
975
|
-
|
|
976
|
-
- **Format**: Primary newsletter placement, Issue 12 (The Sovereign Stack)
|
|
977
|
-
- **Value**: €800
|
|
978
|
-
- **Deliverables**: 1 newsletter mention (80-100 words, primary placement) + 1 LinkedIn post tagging Mintlify
|
|
979
|
-
- **Exclusivity**: No competing dev-tool sponsors until March 15, 2026
|
|
980
|
-
- **Payment**: Invoice sent Feb 17 — awaiting transfer
|
|
981
|
-
|
|
982
|
-
## Approved copy (newsletter)
|
|
983
|
-
|
|
984
|
-
Mintlify builds documentation that actually gets read. If you're a developer or building developer-facing tools, Mintlify generates beautiful docs directly from your codebase — with GitHub integration, versioning, and AI-powered search. Worth 10 minutes to see what your docs could look like.
|
|
985
|
-
|
|
986
|
-
## Performance report (to send)
|
|
987
|
-
|
|
988
|
-
Issue 12 stats to share with Alex:
|
|
989
|
-
- Open rate: 39.2% (industry avg ~22%)
|
|
990
|
-
- Click rate: 6.8%
|
|
991
|
-
- Sponsor link clicks: 47
|
|
992
|
-
- Screenshot attached in follow-up email
|
|
993
|
-
|
|
994
|
-
## Notes
|
|
995
|
-
|
|
996
|
-
Alex Chen is responsive on email. They're considering a Q2 campaign (3 issues). Keep performance data clean and send within 48h of issue send. Relationship worth nurturing — philosophically aligned audience.
|
|
997
|
-
- profileSlug: sponsor
|
|
998
|
-
title: Anytype
|
|
999
|
-
properties:
|
|
1000
|
-
deal-status: Prospecting
|
|
1001
|
-
sponsor-type: Social Post
|
|
1002
|
-
contact-name: Pavel K.
|
|
1003
|
-
deal-value: 600
|
|
1004
|
-
payment-status: Not Yet Due
|
|
1005
|
-
deliverables: "1 LinkedIn post (honest review format). 1 Twitter thread. Not exclusive."
|
|
1006
|
-
talking-points: "Anytype is open-source, local-first, object-based PKM. Philosophically aligned with Synap audience."
|
|
1007
|
-
sponsor-tags: [pkm, local-first, sovereignty]
|
|
1008
|
-
|
|
1009
|
-
suggestedRelations:
|
|
1010
|
-
- sourceRef: "post:Why your subscriber list is not yours — and what to do about it"
|
|
1011
|
-
targetRef: "campaign:Data Sovereignty Series"
|
|
1012
|
-
type: belongs_to_project
|
|
1013
|
-
- sourceRef: "post:Synap's entity model: why we ditched the database-first approach"
|
|
1014
|
-
targetRef: "campaign:Synap Template Launch — Q1 2026"
|
|
1015
|
-
type: belongs_to_project
|
|
1016
|
-
- sourceRef: "post:Thread: The creator tool stack is broken — here is why"
|
|
1017
|
-
targetRef: "campaign:Synap Template Launch — Q1 2026"
|
|
1018
|
-
type: belongs_to_project
|
|
1019
|
-
- sourceRef: "post:Content OS template — what's included and why we built it"
|
|
1020
|
-
targetRef: "campaign:Synap Template Launch — Q1 2026"
|
|
1021
|
-
type: belongs_to_project
|
|
1022
|
-
- sourceRef: "post:Data sovereignty is not a technical concept — it is a political one"
|
|
1023
|
-
targetRef: "campaign:Data Sovereignty Series"
|
|
1024
|
-
type: belongs_to_project
|
|
1025
|
-
- sourceRef: "post:How Synap templates are seeded: the JSON-first approach"
|
|
1026
|
-
targetRef: "campaign:Synap Template Launch — Q1 2026"
|
|
1027
|
-
type: belongs_to_project
|
|
1028
|
-
- sourceRef: "post:Why your subscriber list is not yours — and what to do about it"
|
|
1029
|
-
targetRef: "pillar:Data Sovereignty"
|
|
1030
|
-
type: relates_to
|
|
1031
|
-
- sourceRef: "post:Synap's entity model: why we ditched the database-first approach"
|
|
1032
|
-
targetRef: "pillar:Product Building"
|
|
1033
|
-
type: relates_to
|
|
1034
|
-
- sourceRef: "post:Thread: The creator tool stack is broken — here is why"
|
|
1035
|
-
targetRef: "pillar:Creator Economy"
|
|
1036
|
-
type: relates_to
|
|
1037
|
-
- sourceRef: "post:Content OS template — what's included and why we built it"
|
|
1038
|
-
targetRef: "pillar:Product Building"
|
|
1039
|
-
type: relates_to
|
|
1040
|
-
- sourceRef: "post:Data sovereignty is not a technical concept — it is a political one"
|
|
1041
|
-
targetRef: "pillar:Data Sovereignty"
|
|
1042
|
-
type: relates_to
|
|
1043
|
-
- sourceRef: "post:How Synap templates are seeded: the JSON-first approach"
|
|
1044
|
-
targetRef: "pillar:Product Building"
|
|
1045
|
-
type: relates_to
|
|
1046
|
-
- sourceRef: "newsletter:The Sovereign Stack — Issue 12"
|
|
1047
|
-
targetRef: "campaign:Data Sovereignty Series"
|
|
1048
|
-
type: belongs_to_project
|
|
1049
|
-
- sourceRef: "newsletter:The Sovereign Stack — Issue 13"
|
|
1050
|
-
targetRef: "campaign:Synap Template Launch — Q1 2026"
|
|
1051
|
-
type: belongs_to_project
|
|
1052
|
-
- sourceRef: "newsletter:The Sovereign Stack — Issue 12"
|
|
1053
|
-
targetRef: "pillar:Data Sovereignty"
|
|
1054
|
-
type: relates_to
|
|
1055
|
-
- sourceRef: "newsletter:The Sovereign Stack — Issue 13"
|
|
1056
|
-
targetRef: "pillar:Product Building"
|
|
1057
|
-
type: relates_to
|
|
1058
|
-
- sourceRef: "newsletter:The Sovereign Stack — Issue 14"
|
|
1059
|
-
targetRef: "pillar:Data Sovereignty"
|
|
1060
|
-
type: relates_to
|
|
1061
|
-
- sourceRef: "newsletter:The Sovereign Stack — Issue 12"
|
|
1062
|
-
targetRef: "sponsor:Mintlify"
|
|
1063
|
-
type: relates_to
|
|
1064
|
-
- sourceRef: "campaign:Data Sovereignty Series"
|
|
1065
|
-
targetRef: "pillar:Data Sovereignty"
|
|
1066
|
-
type: relates_to
|
|
1067
|
-
- sourceRef: "campaign:Synap Template Launch — Q1 2026"
|
|
1068
|
-
targetRef: "pillar:Product Building"
|
|
1069
|
-
type: relates_to
|
|
1070
|
-
|
|
1071
680
|
displayTemplates:
|
|
1072
681
|
- name: Post Card
|
|
1073
682
|
description: "Content unit with status, format, platform, and performance metrics"
|
|
@@ -1400,6 +1009,37 @@ playbooks: []
|
|
|
1400
1009
|
onboarding:
|
|
1401
1010
|
goal: "Capture the user's brand voice, audience, content pillars, and publishing rhythm across channels — so the workspace reflects how they actually create and distribute content, not a generic calendar."
|
|
1402
1011
|
framing: "Act as a seasoned content strategist. Tease out their voice and positioning, who they're talking to, the recurring themes they own, the channels they publish on, and how often. Translate that into pillars, platforms, and a seeded content calendar."
|
|
1012
|
+
expertise:
|
|
1013
|
+
starters:
|
|
1014
|
+
- >
|
|
1015
|
+
Most creators over-index on one format and burn out. Propose 3–4 pillars
|
|
1016
|
+
that mix TEACH (how it works), PROVE (customer/results), and PROVOKE
|
|
1017
|
+
(point of view) — then adapt the mix to their niche. Don't ask for pillars
|
|
1018
|
+
from a blank slate; offer a starting set and let them react.
|
|
1019
|
+
- >
|
|
1020
|
+
Better to own ONE channel consistently than be thin on four. If they list
|
|
1021
|
+
many platforms, propose a primary channel + a cadence they can actually
|
|
1022
|
+
sustain, and treat the rest as repurposing targets, not separate efforts.
|
|
1023
|
+
- >
|
|
1024
|
+
Every pillar should ladder to a business goal — awareness, trust, or
|
|
1025
|
+
conversion. If a pillar is just "stuff we post", propose the job it should
|
|
1026
|
+
do and tie it to a specific audience segment.
|
|
1027
|
+
blindSpots:
|
|
1028
|
+
- >
|
|
1029
|
+
Distribution is the silent killer — great content nobody sees. If they
|
|
1030
|
+
haven't said HOW each piece gets discovered (SEO, a platform's algorithm,
|
|
1031
|
+
an email list, founder-led amplification), raise it before moving on.
|
|
1032
|
+
- >
|
|
1033
|
+
No repurposing plan = 5× the work for 1× the reach. If they treat each
|
|
1034
|
+
post as one-and-done, propose a chain: one deep piece → clips → posts →
|
|
1035
|
+
newsletter.
|
|
1036
|
+
- >
|
|
1037
|
+
Pillars with no audience attached reach no one. Tie each pillar to a
|
|
1038
|
+
specific segment — "content for everyone" is content for nobody.
|
|
1039
|
+
bar: >
|
|
1040
|
+
The pillars + primary platform + cadence read like a system a small team
|
|
1041
|
+
could actually run for 3 months without burning out — where every pillar has
|
|
1042
|
+
a clear audience, a clear job, and a way to get discovered.
|
|
1403
1043
|
collect:
|
|
1404
1044
|
- profileSlug: pillar
|
|
1405
1045
|
what: "Their recurring content themes / brand voice — the lenses their audience knows them for, and who each speaks to"
|