Docs · Agent setup
Let your coding agent set up NichePressa.
NichePressa reads your blog repo to match its frontmatter, categories, MDX components, and voice. To spell those out instead of leaving them to inference, have Claude Code, Cursor, or Codex write a nichepressa.config.json file at the root of the repo. When we scan, the file wins over our own guesses.
1. Paste this into your agent
Open your agent inside the blog repository and give it this prompt. NichePressa also has a “Set up with your AI” button that copies it with your repo name filled in.
Set up NichePressa for this blog.
1. Read the setup guide at https://nichepressa.com/docs/agent-setup and the JSON Schema at https://nichepressa.com/nichepressa.config.schema.json.
2. In this repository, find where the .mdx blog posts live, which frontmatter keys they use, which categories are in use, and which components are registered in the MDX components map (with their real prop names and types).
3. Read 3-5 recent posts and describe the writing voice: one concrete stance the blog holds, 5-15 signature phrases, and the closest persona.
4. Create nichepressa.config.json at the repository root that follows the schema. Only list components that exist in the MDX map. Don't invent categories.
5. Check the file against the schema, then commit and push it to the branch NichePressa publishes to.
When it's pushed, tell me so I can click Read repo in NichePressa setup (or Re-sync from repo in Settings).2. Push, then read your repo in NichePressa
During setup, click Read my repo. Setup reads the whole file. When the file covers niche, audience, voice, cover style, and at least three article types, setup skips the AI guesswork entirely. Any field you leave out is filled from your posts, README, and homepage. If the file doesn't validate, we ignore it and the scan notes tell you why.
If the workspace already exists, use Settings → General → Re-sync from repo. Re-sync applies the file's frontmatter format, categories, and components only. It doesn't change niche, audience, voice, or domain terms. To change the voice, use Redo capture on the Voice page. Domain terms are in Settings → General.
Example
{
"$schema": "https://nichepressa.com/nichepressa.config.schema.json",
"version": 1,
"siteName": "Acme Engineering",
"siteUrl": "https://acme.dev",
"contentDir": "content/blog",
"niche": "Practical guides on running Postgres in production for small SaaS teams.",
"audience": "Backend engineers at 5-50 person startups who own their own database.",
"domainTerms": [
"Postgres",
"pgBouncer",
"VACUUM",
"Supabase"
],
"voice": {
"stance": "Most teams reach for a new database when a missing index and a pooler would have fixed it.",
"vocabulary": [
"boring infrastructure",
"measure first",
"the slow query log never lies"
],
"persona": "expert"
},
"categories": [
"Performance",
"Operations",
"Migrations"
],
"articleTypes": [
"How-to",
"Deep dive",
"Comparison",
"Postmortem"
],
"coverStyle": "minimal_illustration",
"frontmatter": {
"title": "title",
"summary": "description",
"publishedAt": "date",
"category": "category",
"tags": "tags",
"heroImage": "coverUrl"
},
"components": [
{
"tag": "Callout",
"description": "A highlighted note for warnings or key takeaways.",
"usageGuidance": "At most two per article.",
"props": [
{
"name": "type",
"type": "enum",
"required": true,
"description": "Visual style.",
"enumValues": [
"info",
"warning"
]
}
]
}
]
}Fields
Every field is optional. The full JSON Schema is at https://nichepressa.com/nichepressa.config.schema.json.
- contentDir
- Folder with your .mdx posts, relative to the repo root. If you leave it out, we use the folder with the most posts.
- siteName, siteUrl
- Your blog's name and public URL.
- niche, audience
- What the blog covers and who reads it, in a sentence or two each.
- domainTerms
- Product names and terms the AI must spell exactly.
- voice.stance
- One concrete opinion the blog holds. Specific beats generic.
- voice.vocabulary
- Signature phrases your posts actually use.
- voice.persona
- expert, rebel, neighbor, enthusiast, professor, skeptic
- categories
- Category values exactly as they appear in your frontmatter.
- articleTypes
- Recurring formats such as How-to, Comparison, Deep dive (3 to 10).
- coverStyle
- editorial_photo, minimal_illustration, bold_graphic, cinematic_atmosphere, hand_drawn, 3d_render
- items
- Only if posts recommend things. kind is one of products, games, tools, places, services, features, other. source is where the items live, e.g. src/data/games.ts or content/products/*.json; NichePressa imports them and re-syncs daily. Leave it out and NichePressa looks for them itself.
- frontmatter
- Frontmatter key → meaning: title, description, date, category, tags, author, coverUrl, coverAlt, articleFormat.
- components
- MDX components the AI may use, with their real props. These start switched on.