Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
e66f6b5
Added CFPs (#9)
leogdion Feb 2, 2026
00d6c22
Adding Job Applications (#8)
leogdion Feb 2, 2026
4896499
Add topic skills (#7)
leogdion Feb 2, 2026
11a67ee
Updated CFP for February 2026 (#12)
leogdion Feb 9, 2026
ab9ce22
Merge pull request #15 from leogdion/2026.02
leogdion Feb 27, 2026
fcfa2b7
Implement talk prep breakdown for issue (#23)
leogdion Mar 13, 2026
4549889
Reorganize repo and add talk prep content (#25)
leogdion Mar 22, 2026
57ba9d7
Migrate server-side CloudKit talk content from year-in-review
leogdion Mar 22, 2026
997917e
Merge talk prep and strategy content from year-in-review migrate-talk…
leogdion Mar 22, 2026
904073c
Reorganize talks/ into docs/ with improved structure
leogdion Mar 27, 2026
3e24069
Replace conferences/ with distilled content-reference.md
leogdion Mar 27, 2026
6dd2e99
Consolidate content-reference, outline, and demo-script into talk-pre…
leogdion Mar 27, 2026
b1581b3
Consolidate marketing docs into plan.md
leogdion Mar 27, 2026
6735ce5
Merge talk-prep.md into docs/README.md
leogdion Mar 27, 2026
1091743
Move content series into docs/cloudkit-guide/
leogdion Mar 27, 2026
ba6529c
Delete docs/cloudkit-guide/marketing/consulting.md
leogdion Mar 27, 2026
7dcac45
Delete docs/cloudkit-guide/articles/cloudkit-server-auth.md
leogdion Mar 27, 2026
538fb5e
Hide marketing folder and rename plan.md to README.md
leogdion Mar 27, 2026
061b152
Rename .marketing/ to .social/
leogdion Mar 27, 2026
d26989c
Move article content to articles/README.md, trim .social/
leogdion Mar 27, 2026
37f9602
Move social pieces from articles/ to .social/
leogdion Mar 27, 2026
04fbcdc
Fix PR review issues: links, BushelCloud description, stale deadline
leogdion Mar 27, 2026
1c8daf8
Fix directory tree label in cloudkit-guide README
leogdion Mar 27, 2026
d397318
Remove hardcoded stats and Vapor article from cloudkit-guide
leogdion Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Documentation

- **[cloudkit-guide/](cloudkit-guide/)** — Content reference, talk prep, and marketing materials for the server-side CloudKit speaking series
208 changes: 208 additions & 0 deletions docs/cloudkit-guide/.social/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
# Server-Side CloudKit — Social

## Topics to Test

- CloudKit server-to-server auth gotchas
- Conflict resolution strategies (exponential backoff)
- Multi-source data orchestration patterns (BushelCloud)

## Article Promotion

**CloudKit Server Auth Article**
- [ ] Twitter thread: 5-7 tweets highlighting key auth patterns
- [ ] LinkedIn post: professional angle on Apple documentation gaps
- [ ] Mastodon: technical deep-dive angle, open-source focus
- [ ] Link to existing MistKit rebuild articles (Parts 1 & 2) as context

## Conference Announcements

**Pre-Swift Craft** (late April, 2–4 weeks before May 18)
- [ ] "Speaking at Swift Craft" announcement (Twitter, LinkedIn, Mastodon)
- [ ] Share talk abstract with key takeaway teaser
- [ ] Link to CloudKit server auth article (if published)

**Pre-Swift Rockies** (early July, 2–4 weeks before July 22)
- [ ] "Speaking at Swift Rockies" announcement
- [ ] Share insights from Swift Craft delivery
- [ ] Highlight what's new/updated since Swift Craft

**Pre-iOSDevUK** (mid August, 2–4 weeks before Sept 7)
- [ ] "Speaking at iOSDevUK" announcement
- [ ] Emphasize first-time speaker angle at iOSDevUK
- [ ] Share refined talk narrative (incorporating feedback from 2 prior deliveries)

### Post-Talk Recaps

**After Swift Craft (May 18–20)**
- [ ] Key takeaways thread (3–5 main points)
- [ ] Share slides/resources link
- [ ] Thank organizers and attendees
- [ ] Share any audience questions that sparked interesting discussion

**After Swift Rockies (July 22–23)**
- [ ] Brief recap with what changed since Swift Craft
- [ ] Highlight audience feedback

**After iOSDevUK (Sept 7–10)**
- [ ] Comprehensive recap (final delivery)
- [ ] "What I learned giving this talk 3 times" reflection
- [ ] Share final slides and all resources

---

## Social Media Content

Pre-written posts for CloudKit server-to-server authentication. Adapt per platform and timing.

### Twitter/X

**Problem/Pain Point**
> Apple's CloudKit server-to-server auth docs are... let's call them "minimalist."
>
> After shipping 2 production backends with it (macOS/Swift version sync tool + RSS reader), I learned what the docs don't cover:
> • Key rotation strategies
> • Environment switching gotchas
> • Error handling that works at scale

**Hot Take**
> Hot take: CloudKit server-to-server auth is Apple's worst-documented feature.
>
> Not "under-documented." Not "could be better."
>
> WORST.
>
> Built BushelCloud + CelestraCloud to prove it can work. The official docs miss 80% of production reality.

**Stats/Facts**
> CloudKit server-to-server auth reality check:
>
> Official docs: 3 pages
> Stack Overflow questions: hundreds unanswered
> Production gotchas I hit: too many to count
> Hours debugging environment switching: most of a day
> Working examples from Apple: 0 (that I could find)
>
> Working examples I built: 2 (BushelCloud, CelestraCloud)

**Developer Empathy**
> You: "I'll just add CloudKit server-to-server auth"
>
> Apple docs: *shows basic key pair setup*
>
> You: "Cool, now how do I handle—"
>
> Apple docs: *crickets*
>
> You: *8 hours later, debugging environment switching*
>
> Built this twice now. The docs don't prepare you.

**Thread Starter**
> CloudKit server-to-server authentication: a thread on what Apple's docs won't tell you.
>
> Just shipped production apps using this (BushelCloud + CelestraCloud). Here's everything I wish I knew before starting. 🧵
>
> 1/ The docs show you how to generate keys. They don't show you what to do when they expire in production...

**Confession/Story**
> Confession: I avoided CloudKit server-to-server auth for years because the docs scared me off.
>
> Finally bit the bullet for BushelCloud. Then again for CelestraCloud.
>
> Turns out it works great... once you figure out the 20 things Apple doesn't document.

---

### LinkedIn

**Technical Deep-Dive Teaser**
> CloudKit Server-to-Server Authentication: Beyond the Documentation Gap
>
> After implementing CloudKit's server-to-server authentication for two production applications (a macOS/Swift version sync tool and an RSS reader), I've documented patterns that Apple's official documentation doesn't address.
>
> Real-world challenges that aren't in the docs:
> • Key pair lifecycle management in production environments
> • Graceful handling of authentication failures at scale
> • Environment switching between development and production backends
> • Error patterns that only emerge under load
> • Security considerations for key storage and rotation
>
> The MistKit library handles the communication layer beautifully, but authentication architecture requires production experience to get right.
>
> For backend developers working with CloudKit: the gap between Apple's examples and production-ready systems is significant.
>
> #iOSDevelopment #CloudKit #ServerSideSwift #BackendDevelopment

**Problem Solver**
> Solving CloudKit's Server-to-Server Authentication Challenge
>
> Apple's CloudKit server-to-server authentication is powerful but under-documented. After building BushelCloud (macOS/Swift version sync) and CelestraCloud (RSS reader) in production, I've mapped the journey from basic examples to scalable implementations.
>
> What the documentation covers:
> ✓ Key pair generation
> ✓ Basic request signing
>
> What production requires (but docs don't cover):
> → Authentication state management across services
> → Handling expired credentials gracefully
> → Environment-specific configuration patterns
> → Error recovery strategies
> → Security best practices for key storage
>
> #CloudKit #AppleDevelopment #iOS #Backend

---

### Mastodon

**Community Discussion**
> Friendly reminder that CloudKit server-to-server authentication is both:
> • Incredibly powerful for iOS/Mac backends
> • Incredibly under-documented by Apple
>
> Just shipped my second production app using it (CelestraCloud, an RSS reader). First was BushelCloud (macOS/Swift version sync tool).
>
> Both times I had to figure out key rotation, environment switching, and error handling from scratch.
>
> Anyone else been down this road? What gotchas did you hit?
>
> #CloudKit #Swift #iOSDev

**Behind-the-Scenes**
> Building BushelCloud + CelestraCloud taught me that CloudKit server-to-server auth has two phases:
>
> Phase 1: Following Apple's docs ✅ (2 hours)
> Phase 2: Figuring out everything else ⚠️ (2 days)
>
> Key pair lifecycle? Not in docs.
> Environment switching? Not in docs.
> Production error handling? Definitely not in docs.
>
> It works great now. But wow, that discovery process.
>
> #ServerSideSwift #CloudKit

---

### YouTube Community Posts

**Variation 1**
Most developers don't know this: CloudKit works on Android, Windows, and servers. Not just Apple platforms.

CloudKit Web Services is a REST API. If your platform can make HTTP requests, it can use CloudKit. I've shipped two production apps using this (BushelCloud and CelestraCloud).

What platform would you connect to CloudKit? Android? Windows? Server-side? Drop a comment.

**Variation 2**
Here's something that took me forever to realize: CloudKit isn't locked to iOS and Mac. CloudKit Web Services is essentially a REST API.

You can build Android apps, Windows desktop apps, Linux servers — all talking to CloudKit. I've shipped two production apps doing exactly this.

Would you watch a deep-dive on cross-platform CloudKit? What's your biggest CloudKit question?

**Variation 3**
CloudKit on Android? Yep. Windows? Sure. Server-side Swift? Absolutely.

CloudKit Web Services is a REST API that works anywhere. Apple's docs show you the basics but leave out everything about production patterns (key rotation, error handling, security).

I spent 8+ hours discovering what Apple doesn't document. Should I make a comprehensive video on this?
Loading
Loading