keploy-blog-generator-skill 1.0.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/README.md +30 -0
- package/SKILL.md +285 -0
- package/index.js +7 -0
- package/package.json +28 -0
- package/references/seo-guidelines.md +158 -0
package/README.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# keploy-blog-generator-skill
|
|
2
|
+
|
|
3
|
+
NPM package for the `keploy-blog-generator` skill content.
|
|
4
|
+
|
|
5
|
+
## Contents
|
|
6
|
+
|
|
7
|
+
- `SKILL.md`
|
|
8
|
+
- `references/seo-guidelines.md`
|
|
9
|
+
|
|
10
|
+
## Install
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install keploy-blog-generator-skill
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Usage
|
|
17
|
+
|
|
18
|
+
```js
|
|
19
|
+
const skill = require("keploy-blog-generator-skill");
|
|
20
|
+
|
|
21
|
+
console.log(skill.name);
|
|
22
|
+
console.log(skill.skillFile);
|
|
23
|
+
console.log(skill.referencesDir);
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Publish
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm publish --access public
|
|
30
|
+
```
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: keploy-blog-generator
|
|
3
|
+
description: Generates SEO-optimized blog posts for Keploy following strict internal SEO guidelines. Use this skill whenever someone asks to write, generate, create, or draft a blog post for Keploy — whether they mention a keyword, topic, or just say "write a blog". Also triggers for requests like "generate blog content", "write a technical post", "create a community blog", or any task that involves producing long-form content for Keploy's website. Always use this skill for Keploy blog creation — do not write blogs freehand.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Keploy Blog Generator
|
|
7
|
+
|
|
8
|
+
Generates complete, SEO-optimized blog posts for Keploy strictly following the internal SEO guidelines.
|
|
9
|
+
|
|
10
|
+
**Always read** `references/seo-guidelines.md` before generating any content — it is the source of truth and every single rule in it must be followed without exception.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Step 1: Gather Inputs
|
|
15
|
+
|
|
16
|
+
Before writing anything, collect the following from the user if not already provided:
|
|
17
|
+
|
|
18
|
+
**Required:**
|
|
19
|
+
- Primary keyword
|
|
20
|
+
- Blog type: **Community** or **Technical** (ask if not specified)
|
|
21
|
+
|
|
22
|
+
**Optional (but use if provided):**
|
|
23
|
+
- Secondary keywords (list)
|
|
24
|
+
- Tertiary keywords (list)
|
|
25
|
+
- Any specific angle, talking points, or competitor URLs to reference
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Step 2: Ask Blog Type
|
|
30
|
+
|
|
31
|
+
If the user hasn't specified, ask:
|
|
32
|
+
|
|
33
|
+
> "Is this a **Community blog** or a **Technical blog**?"
|
|
34
|
+
>
|
|
35
|
+
> - **Community blogs** are accessible, story-driven, and written for a broader developer audience — less deep on implementation, more on concepts, impact, and real-world context.
|
|
36
|
+
> - **Technical blogs** are in-depth, implementation-focused, and written for engineers who want to understand the how and why at a code/architecture level.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Step 3: Suggest a Persona (or Persona Blend)
|
|
41
|
+
|
|
42
|
+
Based on the blog type and keyword, recommend the most fitting persona from the list below. Show the user:
|
|
43
|
+
- The **recommended persona** (mark it clearly as ⭐ Recommended)
|
|
44
|
+
- 2–3 **alternative personas**
|
|
45
|
+
- A **1-line description** of each
|
|
46
|
+
|
|
47
|
+
Then tell the user:
|
|
48
|
+
> "You can also **mix 2–3 personas** for a more nuanced voice. For example: *Senior Backend Engineer + Open Source Developer* gives you technical depth with a community-friendly, peer-to-peer tone. Just tell me which ones to blend!"
|
|
49
|
+
|
|
50
|
+
**Blending rules (max 3 personas):**
|
|
51
|
+
- Assign a **primary persona** (dominant voice, ~60%) and one or two **secondary personas** (flavour, ~40% split)
|
|
52
|
+
- Clearly state the blend before writing, e.g.: `Voice: Senior Backend Engineer (primary) + Open Source Developer (secondary)`
|
|
53
|
+
- The primary persona sets the overall tone, vocabulary level, and sentence structure
|
|
54
|
+
- Secondary personas contribute specific traits — see the blend trait table below
|
|
55
|
+
- Cross-track blending (Technical + Community persona) is allowed and often produces the most natural-sounding blogs
|
|
56
|
+
|
|
57
|
+
Let the user confirm the single persona or blend before proceeding.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Persona Library
|
|
62
|
+
|
|
63
|
+
### Technical Blog Personas
|
|
64
|
+
|
|
65
|
+
**1. Senior Backend Engineer** *(recommended for API testing, mocking, integration testing topics)*
|
|
66
|
+
> 5+ years building distributed systems. Writes with authority, goes deep on architecture decisions, references trade-offs, and isn't afraid to call out bad patterns. Tone: direct, confident, no fluff.
|
|
67
|
+
|
|
68
|
+
**2. Staff Engineer / Tech Lead** *(recommended for platform engineering, testing strategy, DevOps topics)*
|
|
69
|
+
> Thinks at system scale. Focuses on team impact, long-term maintainability, and engineering culture. References real org-level decisions. Tone: thoughtful, experienced, slightly opinionated.
|
|
70
|
+
|
|
71
|
+
**3. Open Source Developer** *(recommended for OSS tooling, developer experience, CLI, SDK topics)*
|
|
72
|
+
> Lives in the terminal and GitHub. Passionate about developer ergonomics, clean APIs, and community-driven tools. References open source projects by name. Tone: enthusiastic, peer-to-peer, pragmatic.
|
|
73
|
+
|
|
74
|
+
**4. Professional QA / SDET Engineer** *(recommended for test automation, test coverage, flaky tests topics)*
|
|
75
|
+
> Deeply specialized in quality engineering. Knows the pain of brittle test suites, flaky CI, and untested edge cases. Writes from the trenches of real QA workflows. Tone: precise, practical, detail-oriented.
|
|
76
|
+
|
|
77
|
+
**5. DevOps / Platform Engineer** *(recommended for CI/CD, containerization, deployment pipeline topics)*
|
|
78
|
+
> Owns the pipeline. Writes about reliability, speed, and eliminating developer friction. References tools like GitHub Actions, Jenkins, Docker, k8s naturally. Tone: pragmatic, systems-thinker, efficiency-focused.
|
|
79
|
+
|
|
80
|
+
**6. Security-Conscious Developer** *(recommended for API security, data privacy, compliance testing topics)*
|
|
81
|
+
> Thinks about every endpoint as a potential attack surface. References CVEs, OWASP, and real breach case studies. Tone: cautious, thorough, evidence-driven.
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Community Blog Personas
|
|
86
|
+
|
|
87
|
+
**7. Developer Advocate** *(recommended for concept explainers, "what is X", intro-to-testing topics)*
|
|
88
|
+
> Bridges the gap between engineering and the community. Makes hard concepts feel approachable without dumbing them down. References talks, blog posts, and real developer conversations. Tone: warm, energetic, storytelling-forward.
|
|
89
|
+
|
|
90
|
+
**8. Junior Developer (Learning in Public)** *(recommended for beginner guides, "I tried X and here's what happened" topics)*
|
|
91
|
+
> Recently shipped their first production feature. Writes from genuine curiosity and the experience of figuring things out. Relatable, honest about mistakes, celebrates small wins. Tone: conversational, humble, encouraging.
|
|
92
|
+
|
|
93
|
+
**9. Startup CTO / Founding Engineer** *(recommended for build vs buy, testing culture, scaling engineering topics)*
|
|
94
|
+
> Wore every hat at a 5-person startup. Now has opinions on everything — especially what slows teams down. References real startup war stories. Tone: opinionated, fast-paced, pragmatic.
|
|
95
|
+
|
|
96
|
+
**10. Developer Community Lead** *(recommended for ecosystem, open source contribution, community building topics)*
|
|
97
|
+
> Runs meetups, mentors contributors, and lives for developer collaboration. Focuses on the human side of engineering. Tone: inclusive, community-first, motivating.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Step 4: Generate the Blog
|
|
102
|
+
|
|
103
|
+
After confirming persona and blog type, read `references/seo-guidelines.md` fully, then generate the complete blog output.
|
|
104
|
+
|
|
105
|
+
### Output Format
|
|
106
|
+
|
|
107
|
+
Produce all sections in this exact order:
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
### OUTPUT TEMPLATE
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
## Meta
|
|
115
|
+
**Meta Title:** [≤60 chars, primary keyword near start, unique, search-intent-aware, not a copy of competitors]
|
|
116
|
+
**Meta Description:** [150–160 chars, includes primary keyword, clickbait, unique]
|
|
117
|
+
**URL Slug:** [/primary-keyword-slug — <60 chars, exact primary keyword, hyphens only where needed]
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## H1
|
|
122
|
+
[Different from Meta Title. Clickbait. Primary keyword near start. Max 60 chars.]
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Blog Content
|
|
127
|
+
|
|
128
|
+
[Full blog body — see content rules below]
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Instagram Carousel Outline
|
|
133
|
+
|
|
134
|
+
**Slide 1 (Cover):** [Topic/keyword as title, bold, minimal]
|
|
135
|
+
**Slide 2 (Intro/Definition):** [3–5 bullets: what/why]
|
|
136
|
+
**Slide 3 (Key Insight 1):** [3–5 bullets]
|
|
137
|
+
**Slide 4 (Key Insight 2):** [3–5 bullets]
|
|
138
|
+
**Slide 5 (Benefits/Examples):** [3–5 bullets]
|
|
139
|
+
**Slide 6 (Outro/CTA):** ["Follow @Keploy for more!" + one closing line]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Content Generation Rules (apply every time, no exceptions)
|
|
145
|
+
|
|
146
|
+
Pull these from `references/seo-guidelines.md` — summarized here as a quick checklist to verify before outputting:
|
|
147
|
+
|
|
148
|
+
### Structure
|
|
149
|
+
- [ ] Intro: max 2 paras, 5–6 lines each
|
|
150
|
+
- [ ] Hook in first sentence
|
|
151
|
+
- [ ] Primary keyword in first paragraph / first 10% of intro
|
|
152
|
+
- [ ] No "this blog is about..." or TOC repetition in intro
|
|
153
|
+
- [ ] Comparison table included (if topic is comparative)
|
|
154
|
+
- [ ] Listicles included where relevant
|
|
155
|
+
- [ ] All paragraphs max 4 lines
|
|
156
|
+
- [ ] Min 1500 words (aim 1500–2500)
|
|
157
|
+
- [ ] One H1 only, different from meta title
|
|
158
|
+
|
|
159
|
+
### Keyword Usage
|
|
160
|
+
- [ ] Primary keyword: match search intent, in first 10% of content
|
|
161
|
+
- [ ] Secondary keywords: in headings/subheadings, not forced
|
|
162
|
+
- [ ] Tertiary keywords: 0.5–0.75% density
|
|
163
|
+
- [ ] LSI keywords: used throughout
|
|
164
|
+
- [ ] Keyword variations: 0.5–1% of word count
|
|
165
|
+
|
|
166
|
+
### Writing Quality
|
|
167
|
+
- [ ] First person, story narration style
|
|
168
|
+
- [ ] Active voice dominant
|
|
169
|
+
- [ ] Transition words sufficient
|
|
170
|
+
- [ ] No consecutive same-structure sentences
|
|
171
|
+
- [ ] Real company names/examples referenced
|
|
172
|
+
- [ ] No babysitting, no analogies, no filler
|
|
173
|
+
- [ ] Inclusive, respectful language throughout
|
|
174
|
+
- [ ] Q&A format used where appropriate (AIO optimization)
|
|
175
|
+
- [ ] Writing style modeled after BrowserStack / TestSigma / Katalon
|
|
176
|
+
|
|
177
|
+
### Links (note in output where links should go)
|
|
178
|
+
- [ ] Internal links: max 5 per 1000 words, targeted anchor text
|
|
179
|
+
- [ ] External links: reputable sources, generic anchor text, target="_blank"
|
|
180
|
+
|
|
181
|
+
### SEO Metadata
|
|
182
|
+
- [ ] Meta title: ≤60 chars, primary keyword near start, unique
|
|
183
|
+
- [ ] Meta description: 150–160 chars, clickbait, unique
|
|
184
|
+
- [ ] URL slug: <60 chars, exact primary keyword, minimal hyphens
|
|
185
|
+
|
|
186
|
+
### Instagram Carousel
|
|
187
|
+
- [ ] 4–7 slides outlined
|
|
188
|
+
- [ ] Dark mode, 1080×1350 px noted
|
|
189
|
+
- [ ] 3–5 bullets per slide
|
|
190
|
+
- [ ] Educational + engaging tone
|
|
191
|
+
- [ ] CTA on final slide: "Follow @Keploy for more!"
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Persona Voice Application
|
|
196
|
+
|
|
197
|
+
### Single Persona Reference Table
|
|
198
|
+
|
|
199
|
+
| Persona | Vocabulary level | Sentence style | What to emphasize |
|
|
200
|
+
|---|---|---|---|
|
|
201
|
+
| Senior Backend Engineer | Technical, precise | Declarative, no hedging | Architecture, trade-offs, real code patterns |
|
|
202
|
+
| Staff Engineer | Strategic, measured | Longer, nuanced | Team impact, scalability, org context |
|
|
203
|
+
| Open Source Developer | Casual-technical | Energetic, peer-to-peer | DX, tooling, community proof points |
|
|
204
|
+
| Professional QA/SDET | Specialist, methodical | Step-by-step, evidence-based | Test coverage, CI pain, reliability metrics |
|
|
205
|
+
| DevOps/Platform Engineer | Systems-thinker | Efficient, tool-named | Pipeline speed, integration, automation |
|
|
206
|
+
| Security-Conscious Dev | Cautious, thorough | Evidence-first | Risks, CVEs, compliance, real incidents |
|
|
207
|
+
| Developer Advocate | Warm, energetic | Storytelling, inclusive | Concepts, community, approachability |
|
|
208
|
+
| Junior Dev (Learning) | Conversational, honest | Short, curious | Discovery, mistakes, relatable journey |
|
|
209
|
+
| Startup CTO | Opinionated, fast | Direct, war-story style | Build vs buy, speed, scaling decisions |
|
|
210
|
+
| Community Lead | Inclusive, motivating | Human, collaborative | Culture, contribution, belonging |
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### Persona Blending — How It Works
|
|
215
|
+
|
|
216
|
+
When the user selects a blend, apply it like this:
|
|
217
|
+
|
|
218
|
+
**Structure:**
|
|
219
|
+
- **Primary persona (~60%)**: sets overall tone, vocabulary, sentence rhythm, POV
|
|
220
|
+
- **Secondary persona(s) (~40% split)**: inject specific traits at natural moments — transitions, examples, callouts, closing sections
|
|
221
|
+
|
|
222
|
+
**What each persona contributes as a secondary:**
|
|
223
|
+
|
|
224
|
+
| Used as secondary | What it adds to the blend |
|
|
225
|
+
|---|---|
|
|
226
|
+
| Senior Backend Engineer | Sharpens technical claims, adds architecture depth to key sections |
|
|
227
|
+
| Staff Engineer | Adds strategic framing, "at scale" perspective to transitions |
|
|
228
|
+
| Open Source Developer | Loosens tone, adds GitHub/community references, peer-to-peer warmth |
|
|
229
|
+
| Professional QA/SDET | Adds precision to any testing-related sections, surfaces edge cases |
|
|
230
|
+
| DevOps/Platform Engineer | Injects CI/CD tool names, pipeline context where relevant |
|
|
231
|
+
| Security-Conscious Dev | Adds risk callouts, "watch out for X" moments |
|
|
232
|
+
| Developer Advocate | Softens technical sections, adds "here's why this matters" bridges |
|
|
233
|
+
| Junior Dev (Learning) | Adds relatable "I used to struggle with this" moments, humanizes the narrative |
|
|
234
|
+
| Startup CTO | Injects opinionated takes, war-story anecdotes, build-vs-buy framing |
|
|
235
|
+
| Community Lead | Adds inclusive language, community shoutouts, collaborative framing |
|
|
236
|
+
|
|
237
|
+
**Example blends and their resulting voice:**
|
|
238
|
+
|
|
239
|
+
| Blend | Resulting voice |
|
|
240
|
+
|---|---|
|
|
241
|
+
| Senior Backend Engineer + Open Source Dev | Deep technical + peer-to-peer warmth. Feels like a senior dev writing for their own blog. |
|
|
242
|
+
| Developer Advocate + QA/SDET | Accessible explanations with real testing precision. Great for "intro to test automation". |
|
|
243
|
+
| Startup CTO + Staff Engineer | Strategic + opinionated. Great for "testing culture" or "why we rebuilt our pipeline" topics. |
|
|
244
|
+
| Open Source Dev + Junior Dev | Highly relatable, energetic, learning-in-public style. Great for community blogs. |
|
|
245
|
+
| QA/SDET + DevOps Engineer | Deep quality + pipeline context. Perfect for CI/CD testing, test reliability topics. |
|
|
246
|
+
| Senior Backend Engineer + Security Dev | Authoritative + risk-aware. Strong for API security, compliance testing topics. |
|
|
247
|
+
|
|
248
|
+
**Consistency rule:** When blending, do NOT randomly switch voices mid-paragraph. The primary voice runs throughout. Secondary traits appear at specific moments — examples, section intros, callouts, or the conclusion. The reader should feel one coherent author, not two.
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Blog Type Differences
|
|
253
|
+
|
|
254
|
+
### Technical Blog
|
|
255
|
+
- Goes deep on implementation — code snippets, architecture diagrams described, API references
|
|
256
|
+
- Assumes reader knows the basics — no hand-holding
|
|
257
|
+
- References GitHub repos, official docs, specific library versions
|
|
258
|
+
- More H3 subheadings for granular breakdown
|
|
259
|
+
- Comparison tables almost always relevant
|
|
260
|
+
|
|
261
|
+
### Community Blog
|
|
262
|
+
- Concept-first — explains the why before the how
|
|
263
|
+
- More narrative arc — problem → journey → resolution
|
|
264
|
+
- References real developer experiences, tweets, community discussions
|
|
265
|
+
- Lighter on code — pseudocode or high-level flows preferred
|
|
266
|
+
- Tone is warmer, more inclusive
|
|
267
|
+
- Comparison tables optional, listicles preferred
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Quality Self-Check Before Outputting
|
|
272
|
+
|
|
273
|
+
Before presenting the final output, verify:
|
|
274
|
+
1. Did I read `references/seo-guidelines.md` fully?
|
|
275
|
+
2. Is the primary keyword in the first 10% of the intro?
|
|
276
|
+
3. Are all paragraphs ≤ 4 lines?
|
|
277
|
+
4. Is the meta title ≤ 60 chars and different from H1?
|
|
278
|
+
5. Is the URL slug < 60 chars with exact primary keyword?
|
|
279
|
+
6. Is the meta description 150–160 chars?
|
|
280
|
+
7. Is the blog min 1500 words?
|
|
281
|
+
8. Are LSI keywords used throughout?
|
|
282
|
+
9. Is the persona voice consistent end-to-end? If a blend, does the primary persona dominate and secondary traits appear only at natural moments?
|
|
283
|
+
10. Is the Instagram carousel outline complete with 4–7 slides and CTA?
|
|
284
|
+
|
|
285
|
+
If any check fails — fix before outputting.
|
package/index.js
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "keploy-blog-generator-skill",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Keploy blog generator skill packaged for npm distribution.",
|
|
5
|
+
"author": "Dhananjay",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"type": "commonjs",
|
|
8
|
+
"main": "index.js",
|
|
9
|
+
"files": [
|
|
10
|
+
"SKILL.md",
|
|
11
|
+
"references",
|
|
12
|
+
"index.js",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"keploy",
|
|
17
|
+
"copilot-skill",
|
|
18
|
+
"skill",
|
|
19
|
+
"blog-generator",
|
|
20
|
+
"seo"
|
|
21
|
+
],
|
|
22
|
+
"publishConfig": {
|
|
23
|
+
"access": "public"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"pack:check": "npm pack --dry-run"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
# Keploy SEO Content Guidelines — Full Reference
|
|
2
|
+
|
|
3
|
+
> ⚠️ EVERY rule here is NON-NEGOTIABLE. No addition, no subtraction, no skipping.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## AIO Optimization
|
|
8
|
+
- Write content in **question-answer format** wherever possible so it gets pulled into AI summaries.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## URL Structure
|
|
13
|
+
- Length: **< 60 characters**
|
|
14
|
+
- Keep URLs short and readable
|
|
15
|
+
- Include the **exact primary keyword**
|
|
16
|
+
- No 2 URLs should be the same — check for duplicacy within topic clusters
|
|
17
|
+
- Separate words with **hyphens (-)** in small casing
|
|
18
|
+
- Use hyphens **only where really needed** — overuse looks AI-generated
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Page Titles
|
|
23
|
+
- Length: **< 60 characters**
|
|
24
|
+
- Only **one H1** and **one Title** per page — they must be **different from each other**
|
|
25
|
+
- Include **primary keyword towards the beginning**
|
|
26
|
+
- Every page must have a **unique title and H1**
|
|
27
|
+
- Title must be **clickbait** — must encourage the user to click
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Blog Content Structure
|
|
32
|
+
|
|
33
|
+
### Introduction
|
|
34
|
+
- **Max 2 paragraphs**, 5–6 lines each
|
|
35
|
+
- No huge build-up — highlight the problem in 3–4 lines, then go straight to the solution
|
|
36
|
+
- Start with a **hook**
|
|
37
|
+
- **Primary keyword must appear in the 1st paragraph / first 10% of the intro**
|
|
38
|
+
- Do NOT say "this blog is about..." or repeat the table of contents
|
|
39
|
+
|
|
40
|
+
### Body
|
|
41
|
+
- Add **comparison tables** and **listicles** wherever relevant to the topic
|
|
42
|
+
- Vocabulary: **simple and easy**, suitable for a **25-year-old developer**
|
|
43
|
+
- Write in **first person, story narration style**
|
|
44
|
+
- No analogies, no distracting content
|
|
45
|
+
- Reference **real company names/blogs** for examples, success and failure cases
|
|
46
|
+
- No babysitting content
|
|
47
|
+
- **Paragraph length: max 4 lines** — keep them short for readability
|
|
48
|
+
- Add **bullet points and listicles** to make content LLM-friendly
|
|
49
|
+
- Use **active voice** predominantly — minimize passive voice
|
|
50
|
+
- Use sufficient **transition words** (target Yoast's recommended %)
|
|
51
|
+
- Avoid consecutive sentences with the same structure
|
|
52
|
+
- Use **inclusive and respectful language** — avoid offensive, biased, or judgmental words
|
|
53
|
+
|
|
54
|
+
### Length
|
|
55
|
+
- **Minimum 1500–2500 words** (check competitor length for the given keyword)
|
|
56
|
+
|
|
57
|
+
### Quality & Credibility
|
|
58
|
+
Content must be: Accurate, Authoritative, Up-to-date, Complementary, Credible, Transparent, Contextual.
|
|
59
|
+
|
|
60
|
+
### Readability Reference
|
|
61
|
+
- Model writing style after: **BrowserStack**, **TestSigma**, **Katalon**
|
|
62
|
+
- Reference: https://www.browserstack.com/guide/regression-testing
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Headings (H1, H2, H3)
|
|
67
|
+
- **One H1/Title per page only**, followed by H2 and H3
|
|
68
|
+
- Include **relevant keywords in H1/Title and H2 tags**
|
|
69
|
+
- Use secondary keywords in headings wherever possible — **do not force them**
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Keywords
|
|
74
|
+
|
|
75
|
+
### Primary Keyword
|
|
76
|
+
- No fixed density — **match search intent** over density
|
|
77
|
+
- Must appear in the **first 10% of the intro**
|
|
78
|
+
|
|
79
|
+
### Secondary Keywords
|
|
80
|
+
- Use in headings and subheadings wherever possible
|
|
81
|
+
- **Do not forcefully insert** anywhere
|
|
82
|
+
|
|
83
|
+
### Tertiary Keywords
|
|
84
|
+
- Target density: **0.5–0.75%**
|
|
85
|
+
|
|
86
|
+
### LSI Keywords
|
|
87
|
+
- **Not optional** — use relevant LSI keywords wherever possible
|
|
88
|
+
|
|
89
|
+
### Keyword Variations
|
|
90
|
+
- Aim for variations to be **0.5–1% of total word count**
|
|
91
|
+
- Maintain good readability with keyword variations
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Internal Linking
|
|
96
|
+
- Interlink **core/brand keywords** + topic-relevant ones
|
|
97
|
+
- Linked pages must be **relevant to each other**
|
|
98
|
+
- Use **targeted anchor text**
|
|
99
|
+
- Max **5 internal links per 1000 words**
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## External Links
|
|
104
|
+
- Link to **reputable and relevant external sites** (stats, research, relevant tweets, collaborations)
|
|
105
|
+
- Use `target="_blank"`
|
|
106
|
+
- Anchor text must be **generic** — never use a keyword you want to rank for
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Image Optimization
|
|
111
|
+
- **No GIFs**
|
|
112
|
+
- Use images only when necessary
|
|
113
|
+
- Format: **PNG for blogs**
|
|
114
|
+
- File size: **< 100 KB**
|
|
115
|
+
- Compress without losing quality
|
|
116
|
+
- Filename must be a **keyword**
|
|
117
|
+
- **Alt text**: include keywords/synonyms, must be accurate
|
|
118
|
+
- **Title tags**: descriptive
|
|
119
|
+
- Images must be **unique** — if from internet, edit in Canva first
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Meta Description
|
|
124
|
+
- Length: **150–160 characters**
|
|
125
|
+
- Include **targeted keywords**
|
|
126
|
+
- Clear description of page content
|
|
127
|
+
- **Unique** per page
|
|
128
|
+
- Must be **clickbait** — encourage clicks
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Meta Title
|
|
133
|
+
- Use **primary keyword** towards the beginning
|
|
134
|
+
- Character limit: **≤ 60 characters**
|
|
135
|
+
- Keep **search intent** in mind
|
|
136
|
+
- Not a copy of competitors' meta titles
|
|
137
|
+
- **Unique** per page
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Instagram Carousel (Required for every blog)
|
|
142
|
+
|
|
143
|
+
### Design Specs
|
|
144
|
+
- Dimensions: **1080 × 1350 px**
|
|
145
|
+
- **4–7 slides** (more if needed)
|
|
146
|
+
- **Dark mode** theme (reference: @keploy.io on Instagram)
|
|
147
|
+
- Fonts: Helvetica, Poppins, Roboto, or Open Sans
|
|
148
|
+
|
|
149
|
+
### Slide Structure
|
|
150
|
+
1. **Cover**: Blog keyword/topic as title, bold modern typography, minimal clutter
|
|
151
|
+
2. **Intro/Definition**: What is it / why it matters
|
|
152
|
+
3. **Key Insights**: 2–3 slides
|
|
153
|
+
4. **Benefits/Examples**
|
|
154
|
+
5. **Outro/CTA**: "Follow @Keploy for more!"
|
|
155
|
+
|
|
156
|
+
### Content Rules
|
|
157
|
+
- **3–5 bullets per slide**, short and crisp
|
|
158
|
+
- Tone: **educational + engaging**, not robotic or AI-sounding
|