@mevdragon/vidfarm-devcli 0.5.3 → 0.6.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.
Files changed (113) hide show
  1. package/README.md +3 -3
  2. package/demo/README.md +28 -0
  3. package/demo/dist/app.css +1 -0
  4. package/demo/dist/app.js +1184 -0
  5. package/demo/dist/chunks/chunk-DXB73IDG.js +1 -0
  6. package/demo/dist/chunks/chunk-S7OWAJDS.js +36 -0
  7. package/demo/dist/chunks/chunk-VTIBZ6AN.js +1 -0
  8. package/demo/dist/chunks/dist-ADSJKBVE.js +332 -0
  9. package/demo/dist/chunks/domEditingLayers-VZMLL4AP-SGHWPND4.js +1 -0
  10. package/demo/dist/chunks/hyperframes-player-XB65TCD6.js +425 -0
  11. package/demo/dist/chunks/lib-XAQ37YOE.js +1 -0
  12. package/demo/dist/chunks/src-TJ2QYA4U.js +207 -0
  13. package/demo/dist/favicon.ico +0 -0
  14. package/demo/dist/icons/timeline/audio.svg +7 -0
  15. package/demo/dist/icons/timeline/captions.svg +5 -0
  16. package/demo/dist/icons/timeline/composition.svg +12 -0
  17. package/demo/dist/icons/timeline/image.svg +18 -0
  18. package/demo/dist/icons/timeline/music.svg +10 -0
  19. package/demo/dist/icons/timeline/text.svg +3 -0
  20. package/demo/dist/index.html +15 -0
  21. package/dist/src/account-pages-legacy.js +9396 -0
  22. package/dist/src/account-pages.js +61 -0
  23. package/dist/src/app.js +14378 -0
  24. package/dist/src/cli.js +1 -1
  25. package/dist/src/composition-runtime.js +613 -0
  26. package/dist/src/config.js +166 -0
  27. package/dist/src/context.js +447 -0
  28. package/dist/src/dev-app-legacy.js +739 -0
  29. package/dist/src/dev-app.js +6 -0
  30. package/dist/src/domain.js +2 -0
  31. package/dist/src/editor-chat-history.js +82 -0
  32. package/dist/src/editor-chat.js +449 -0
  33. package/dist/src/editor-dark-theme.js +1128 -0
  34. package/dist/src/frontend/debug.js +71 -0
  35. package/dist/src/frontend/flockposter-cache-store.js +124 -0
  36. package/dist/src/frontend/homepage-client.js +182 -0
  37. package/dist/src/frontend/homepage-shared.js +4 -0
  38. package/dist/src/frontend/homepage-store.js +28 -0
  39. package/dist/src/frontend/homepage-view.js +547 -0
  40. package/dist/src/frontend/page-runtime-client.js +132 -0
  41. package/dist/src/frontend/page-runtime-store.js +9 -0
  42. package/dist/src/frontend/sentry.js +42 -0
  43. package/dist/src/frontend/template-editor-chat.js +3960 -0
  44. package/dist/src/help-page.js +346 -0
  45. package/dist/src/homepage.js +1235 -0
  46. package/dist/src/hyperframes/composition.js +180 -0
  47. package/dist/src/index.js +16 -0
  48. package/dist/src/instrument.js +30 -0
  49. package/dist/src/lib/crypto.js +45 -0
  50. package/dist/src/lib/dev-log.js +54 -0
  51. package/dist/src/lib/display-name.js +11 -0
  52. package/dist/src/lib/ids.js +24 -0
  53. package/dist/src/lib/images.js +19 -0
  54. package/dist/src/lib/json.js +15 -0
  55. package/dist/src/lib/package-root.js +47 -0
  56. package/dist/src/lib/template-paths.js +28 -0
  57. package/dist/src/lib/time.js +7 -0
  58. package/dist/src/lib/url-clean.js +85 -0
  59. package/dist/src/page-runtime.js +2 -0
  60. package/dist/src/page-shell.js +1381 -0
  61. package/dist/src/primitive-context.js +357 -0
  62. package/dist/src/primitive-registry.js +2436 -0
  63. package/dist/src/primitive-sdk.js +4 -0
  64. package/dist/src/primitives/hyperframes-media.js +108 -0
  65. package/dist/src/react-page-shell.js +35 -0
  66. package/dist/src/ready-post-schedule-component.js +1540 -0
  67. package/dist/src/registry.js +296 -0
  68. package/dist/src/runtime.js +35 -0
  69. package/dist/src/services/api-call-history.js +249 -0
  70. package/dist/src/services/auth.js +152 -0
  71. package/dist/src/services/billing-pricing.js +39 -0
  72. package/dist/src/services/billing.js +228 -0
  73. package/dist/src/services/cast.js +127 -0
  74. package/dist/src/services/chat-threads.js +92 -0
  75. package/dist/src/services/composition-sanitize.js +124 -0
  76. package/dist/src/services/composition-watch.js +79 -0
  77. package/dist/src/services/fork-access.js +93 -0
  78. package/dist/src/services/fork-manifest.js +42 -0
  79. package/dist/src/services/ghostcut.js +179 -0
  80. package/dist/src/services/hyperframes.js +2307 -0
  81. package/dist/src/services/job-capacity.js +14 -0
  82. package/dist/src/services/job-logs.js +197 -0
  83. package/dist/src/services/jobs.js +136 -0
  84. package/dist/src/services/local-dynamo.js +0 -0
  85. package/dist/src/services/media-processing.js +766 -0
  86. package/dist/src/services/primitive-media-lambda.js +280 -0
  87. package/dist/src/services/providers.js +2926 -0
  88. package/dist/src/services/rate-limits.js +262 -0
  89. package/dist/src/services/serverless-auth.js +382 -0
  90. package/dist/src/services/serverless-jobs.js +1082 -0
  91. package/dist/src/services/serverless-provider-keys.js +409 -0
  92. package/dist/src/services/serverless-records.js +1385 -0
  93. package/dist/src/services/serverless-template-configs.js +75 -0
  94. package/dist/src/services/storage.js +383 -0
  95. package/dist/src/services/template-certification.js +413 -0
  96. package/dist/src/services/template-loader.js +99 -0
  97. package/dist/src/services/template-runtime-bundles.js +217 -0
  98. package/dist/src/services/template-sources.js +1017 -0
  99. package/dist/src/services/video-normalization.js +2 -0
  100. package/dist/src/services/webhooks.js +62 -0
  101. package/dist/src/template-editor-pages.js +2576 -0
  102. package/dist/src/template-editor-shell.js +2840 -0
  103. package/dist/src/template-sdk.js +4 -0
  104. package/dist/src/worker.js +17 -0
  105. package/package.json +6 -4
  106. package/public/assets/homepage-app.js +54 -0
  107. package/public/assets/homepage-client-app.js +80 -0
  108. package/public/assets/page-runtime-client-app.js +94 -0
  109. package/src/assets/SELLING_AWARENESS_STAGES.md +579 -0
  110. package/src/assets/SELLING_WITH_HOOKS.md +377 -0
  111. package/src/assets/SELLING_WITH_VSLS.md +606 -0
  112. package/src/assets/favicon.ico +0 -0
  113. package/src/assets/logo-vidfarm.png +0 -0
@@ -0,0 +1,377 @@
1
+ # Selling With Hooks
2
+
3
+ This is a distilled reference for writing social hooks that earn attention fast, especially for ads, UGC, VSLs, reels, shorts, and native-feeling social content.
4
+
5
+ Source snapshot:
6
+ - `@ugcbykaytelynn`: 842 authored timeline items captured via `x-lead-gen`
7
+ - `@gethookdai`: 817 authored timeline items captured via `x-lead-gen`
8
+ - Extra high-signal tweets and threads were added manually from the URLs in [DISTILL_GURU.md](/Users/localghost/Projects/OfficeX/OfficeX/ZoomGTM/catalogs-setters/DISTILL_GURU.md)
9
+
10
+ ## What a Hook Actually Has To Do
11
+
12
+ The job of the hook is not to explain everything.
13
+
14
+ The job is:
15
+ - stop the scroll
16
+ - make the right person feel seen
17
+ - imply a payoff
18
+ - create enough curiosity or tension to earn the next line
19
+
20
+ If the first line is weak, the rest of the copy is wasted.
21
+
22
+ ## The Core Formula
23
+
24
+ The cleanest recurring formula across the research was:
25
+
26
+ `Identity or pain` + `implied outcome` + `curiosity / contrast / mechanism`
27
+
28
+ Examples of the logic:
29
+ - call out who it is for
30
+ - hint that a desirable result is possible
31
+ - leave an open loop so the brain wants closure
32
+
33
+ ## The Best Hook Principles
34
+
35
+ ### 1. Lead with the outcome, not the process
36
+
37
+ Weak:
38
+ - "Here’s how to sleep better"
39
+
40
+ Better:
41
+ - "I haven’t needed an alarm in 6 months"
42
+
43
+ People care about the before/after change first. The method comes second.
44
+
45
+ Sources:
46
+ - https://x.com/Mho_23/status/1976703452073111664
47
+ - https://x.com/learnwithazhar/status/2053724159633764668
48
+
49
+ ### 2. Specificity creates belief
50
+
51
+ Specific numbers, timeframes, body parts, age brackets, dosage, and scenes consistently made hooks feel more real.
52
+
53
+ Patterns that kept showing up:
54
+ - exact timeframe
55
+ - exact amount
56
+ - exact symptom
57
+ - exact audience
58
+ - exact setting
59
+
60
+ Examples of the pattern:
61
+ - thick hair in 8 weeks
62
+ - first 3 words determine everything
63
+ - over 55
64
+ - 2 steps
65
+ - one scoop daily
66
+
67
+ Vague copy sounds invented. Specific copy sounds observed.
68
+
69
+ Sources:
70
+ - https://x.com/gethookdai/status/2063712716494176364
71
+ - https://x.com/gethookdai/status/2052176677355008377
72
+ - https://x.com/nicktheriot_/status/2027071756041678948
73
+
74
+ ### 3. Open loops pull attention forward
75
+
76
+ Curiosity works when you withhold the payoff just enough.
77
+
78
+ Reliable open-loop structures:
79
+ - "Why your ___ isn’t working"
80
+ - "The one thing that..."
81
+ - "I knew this was a scam when..."
82
+ - "This might upset you..."
83
+ - "Don’t get me wrong, but..."
84
+
85
+ This is less about clickbait and more about creating an information gap the brain wants to close.
86
+
87
+ Sources:
88
+ - https://x.com/matt_gray_/status/1908873578746921051
89
+ - https://x.com/BradenRicchini/status/1925177893660811761
90
+ - https://x.com/gethookdai/status/2034676336715866192
91
+ - https://x.com/onlysweatequity/status/2048197237063266472
92
+
93
+ ### 4. Contradiction is a fast scroll-stopper
94
+
95
+ Good hooks often contain an internal clash:
96
+ - expected vs unexpected
97
+ - familiar vs surprising
98
+ - problem vs impossible-seeming solution
99
+
100
+ Examples:
101
+ - stopped going to the gym and got in the best shape of my life
102
+ - no Botox Botox routine
103
+ - polished ads are out, ugly ads are in
104
+
105
+ Contradiction makes people pause because it breaks the feed’s normal pattern.
106
+
107
+ Sources:
108
+ - https://x.com/onlysweatequity/status/2048197237063266472
109
+ - https://x.com/gethookdai/status/2039357199189766387
110
+ - https://x.com/ugcbykaytelynn/status/2036822274163028095
111
+
112
+ ### 5. Identity callouts qualify the right people immediately
113
+
114
+ The strongest hooks are often not universal. They are precise.
115
+
116
+ Examples of the structure:
117
+ - for women over 50
118
+ - for Shopify stores
119
+ - for my girlies who need a girls’ night soon
120
+ - for people with dry skin who tried everything
121
+
122
+ A narrower hook often outperforms a broader one because relevance beats reach.
123
+
124
+ Sources:
125
+ - https://x.com/nicktheriot_/status/1949826956377137469
126
+ - https://x.com/gethookdai/status/2056404613947900059
127
+
128
+ ### 6. Mechanism beats generic benefit once the market is more sophisticated
129
+
130
+ Once people have seen the usual claims, they need a new reason to believe.
131
+
132
+ That usually means:
133
+ - a new mechanism
134
+ - a new explanation
135
+ - a new enemy
136
+ - a new frame
137
+
138
+ Examples:
139
+ - ingredient as mechanism
140
+ - emotional baiting as the lever
141
+ - your collagen is failing for a reason
142
+ - fiber is fighting the medication, not fixing the issue
143
+
144
+ Sources:
145
+ - https://x.com/nicktheriot_/status/2027071756041678948
146
+ - https://x.com/gethookdai/status/2053913209107595566
147
+ - https://x.com/gethookdai/status/2048559989040496932
148
+
149
+ ### 7. Emotion before explanation
150
+
151
+ The winning pattern was rarely "educate first."
152
+
153
+ It was:
154
+ - emotional tension
155
+ - then explanation
156
+ - then proof
157
+ - then offer
158
+
159
+ Common emotional levers:
160
+ - fear of loss
161
+ - embarrassment
162
+ - guilt
163
+ - frustration
164
+ - relief
165
+ - envy
166
+ - permission
167
+ - identity recognition
168
+
169
+ Sources:
170
+ - https://x.com/gethookdai/status/2051451886356599033
171
+ - https://x.com/gethookdai/status/2052539189112062209
172
+ - https://x.com/ugcbykaytelynn/status/1993328735328899545
173
+
174
+ ### 8. Layer hooks across modalities
175
+
176
+ One of the best insights from `@ugcbykaytelynn`:
177
+
178
+ Don’t think in only verbal hooks. Think in stacked hooks:
179
+ - visual hook
180
+ - verbal hook
181
+ - text-on-screen hook
182
+ - motion/editing hook
183
+ - emotional hook
184
+
185
+ The first seconds should give the viewer multiple reasons to stay.
186
+
187
+ Sources:
188
+ - https://x.com/ugcbykaytelynn/status/2063694642881667556
189
+ - https://x.com/ugcbykaytelynn/status/1935367468358197706
190
+ - https://x.com/ugcbykaytelynn/status/1983884167243817348
191
+
192
+ ### 9. Test multiple hooks against the same body
193
+
194
+ A repeated high-signal lesson from the UGC side:
195
+
196
+ Do not judge a concept off one intro.
197
+
198
+ Better process:
199
+ - keep the body of the ad
200
+ - rewrite the first line
201
+ - test multiple openings
202
+ - let the hook do the heavy lifting
203
+
204
+ One product can support many hook angles:
205
+ - curiosity
206
+ - pain
207
+ - benefit
208
+ - transformation
209
+ - identity
210
+ - objection
211
+
212
+ Sources:
213
+ - https://x.com/ugcbykaytelynn/status/2023770391257452859
214
+ - https://x.com/ugcbykaytelynn/status/2032476433323294812
215
+ - https://x.com/ugcbykaytelynn/status/1992618741008318495
216
+
217
+ ## Distilled Frameworks
218
+
219
+ ### Nick Theriot Hook Framework
220
+
221
+ From the thread:
222
+ - hook’s only job is to stop the scroll
223
+ - the best hooks combine audience callout, implied benefit, and curiosity
224
+ - write from the prospect’s internal dialogue, not from your own cleverness
225
+ - pick your position: better version, new mechanism, or identity callout
226
+ - volume matters; write enough hooks to get past the obvious ones
227
+
228
+ Sources:
229
+ - https://x.com/nicktheriot_/status/1949826956377137469
230
+ - https://x.com/nicktheriot_/status/2036800583403811257
231
+
232
+ ### Market Sophistication Ladder
233
+
234
+ Another useful Nick Theriot pattern:
235
+ - Stage 1: direct claim
236
+ - Stage 2: bigger promise
237
+ - Stage 3: introduce mechanism
238
+ - Stage 4: elaborate the mechanism with proof
239
+ - Stage 5: speak to the prospect’s identity and frustration
240
+
241
+ As markets mature, simple claims fatigue. Mechanism and identity matter more.
242
+
243
+ Source:
244
+ - https://x.com/nicktheriot_/status/2027071756041678948
245
+
246
+ ### Advertorial / Long-Form Social Hook Pattern
247
+
248
+ `Story` -> `Enemy` -> `Mechanism` -> `Proof` -> `Offer`
249
+
250
+ This pattern showed up repeatedly in the `@gethookdai` breakdowns. It works especially well for VSLs and longer landing-page style creative because it preserves tension after the first line.
251
+
252
+ Sources:
253
+ - https://x.com/gethookdai/status/2047925879314022750
254
+ - https://x.com/gethookdai/status/2048559989040496932
255
+
256
+ ## Swipeable Hook Types
257
+
258
+ Use these as categories, not templates to copy word-for-word.
259
+
260
+ ### Outcome hook
261
+ - promise the result fast
262
+ - example logic: better skin, more energy, fewer alarms, more leads
263
+
264
+ ### Contradiction hook
265
+ - set up an unexpected truth
266
+ - example logic: "I stopped doing X and got Y"
267
+
268
+ ### Identity hook
269
+ - name the exact person
270
+ - example logic: age, role, problem, stage of awareness
271
+
272
+ ### Mechanism hook
273
+ - reveal why the old way fails
274
+ - example logic: "why your collagen isn’t working"
275
+
276
+ ### Enemy hook
277
+ - name what the buyer already distrusts
278
+ - example logic: industry, fake solution, outdated advice
279
+
280
+ ### Symptom-stack hook
281
+ - list multiple felt pains in one breath
282
+ - useful when one symptom alone is too weak
283
+
284
+ ### Simplicity hook
285
+ - reduce perceived effort
286
+ - example logic: 2 steps, one scoop, 60 seconds, one mistake
287
+
288
+ ### Emotional confession hook
289
+ - sounds native and personal
290
+ - example logic: embarrassment, guilt, "I hate admitting this but..."
291
+
292
+ ### Proof-first hook
293
+ - number, review count, timeframe, or result leads the line
294
+
295
+ ### Pattern-interrupt visual hook
296
+ - ugly ad
297
+ - sudden motion
298
+ - product reveal
299
+ - zoom
300
+ - direct camera sit-down
301
+ - unexpected setting
302
+
303
+ ## VSL / Ad Adaptation Notes
304
+
305
+ For VSLs, the hook should usually open one of these doors:
306
+ - a painful truth the prospect already suspects
307
+ - a more desirable future they want badly
308
+ - a new mechanism they have not heard before
309
+ - a false belief they want corrected
310
+ - an identity statement that feels uncomfortably accurate
311
+
312
+ A good VSL hook often has this rhythm:
313
+
314
+ `pain or desire` -> `specific claim` -> `why the old way fails` -> `tease the new explanation`
315
+
316
+ ## Hook Writing Checklist
317
+
318
+ Before shipping a hook, ask:
319
+ - Does it call out a real person or real pain?
320
+ - Is the payoff clear enough to matter?
321
+ - Is there enough curiosity to earn the next line?
322
+ - Is it specific enough to feel true?
323
+ - Could it be shorter?
324
+ - Does it sound like the market’s inner dialogue?
325
+ - If the market is sophisticated, is there a mechanism?
326
+ - If this were silent autoplay, is there still a visual/text hook?
327
+
328
+ ## Prompting Template
329
+
330
+ Use this when generating hooks for future campaigns:
331
+
332
+ ```text
333
+ Write 30 hook options for [product / offer].
334
+
335
+ Audience:
336
+ [who they are]
337
+
338
+ Main desire:
339
+ [what they want]
340
+
341
+ Main pain:
342
+ [what they are sick of]
343
+
344
+ What they already tried:
345
+ [failed solutions]
346
+
347
+ Awareness stage:
348
+ [unaware / problem aware / solution aware / product aware / most aware]
349
+
350
+ Constraints:
351
+ - social-first, not corporate
352
+ - specific over vague
353
+ - outcome first
354
+ - include curiosity, contrast, mechanism, identity, and proof-based angles
355
+ - avoid generic hype language
356
+ - each hook should be 6-18 words
357
+ - write 10 safe hooks, 10 bold hooks, 10 mechanism hooks
358
+ ```
359
+
360
+ ## Final Distillation
361
+
362
+ The highest-signal lessons across the research were:
363
+ - specificity beats cleverness
364
+ - outcome beats process
365
+ - curiosity beats explanation
366
+ - relevance beats broadness
367
+ - mechanism beats generic claims in mature markets
368
+ - emotional tension beats sterile information
369
+ - layered hooks beat single-line hooks
370
+ - one creative should carry many hook variations
371
+
372
+ If a hook does not make the right person think one of these thoughts, it is probably weak:
373
+ - "that’s me"
374
+ - "wait, what?"
375
+ - "why?"
376
+ - "I need to know if this is true"
377
+ - "finally, someone said it"