Skip to content

Commit f63a821

Browse files
Merge pull request #1 from PredictabilityAtScale:codex/task-title
Add static marketing website and marketing audit under website/
2 parents 7a0a2fa + 26bb7ef commit f63a821

6 files changed

Lines changed: 514 additions & 0 deletions

File tree

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,10 @@ Prompt files use YAML front matter with these fields:
350350
| `tiers` | `object` | Named tier overrides |
351351
| `metadata` | `object` | `{ owner, tags, review_required, stable }` |
352352

353+
## Website
354+
355+
The `website/` directory contains a standalone marketing website for PromptOpsKit.
356+
353357
## License
354358

355359
[MIT](LICENSE)

website/index.html

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>PromptOpsKit | Open-Source Prompt Management Toolkit for Developers</title>
7+
<meta
8+
name="description"
9+
content="PromptOpsKit is an open-source toolkit and CLI for versioning, validating, composing, and rendering AI prompts as code across OpenAI, Anthropic, Gemini, and OpenRouter."
10+
/>
11+
<meta
12+
name="keywords"
13+
content="PromptOpsKit, prompt management, prompts as code, OpenAI prompts, Anthropic prompts, Gemini prompts, OpenRouter, developer toolkit, prompt engineering"
14+
/>
15+
<meta name="robots" content="index,follow,max-image-preview:large" />
16+
<meta name="author" content="Predictability at Scale, Inc." />
17+
<link rel="canonical" href="https://github.com/PredictabilityAtScale/promptopskit" />
18+
19+
<meta property="og:type" content="website" />
20+
<meta property="og:title" content="PromptOpsKit | Open-Source Prompt Management Toolkit" />
21+
<meta
22+
property="og:description"
23+
content="Treat prompts as code with markdown authoring, schema validation, provider adapters, and a CLI for production workflows."
24+
/>
25+
<meta property="og:url" content="https://github.com/PredictabilityAtScale/promptopskit" />
26+
<meta property="og:site_name" content="PromptOpsKit" />
27+
28+
<meta name="twitter:card" content="summary" />
29+
<meta name="twitter:title" content="PromptOpsKit | Prompt Infrastructure for Developers" />
30+
<meta
31+
name="twitter:description"
32+
content="Open-source toolkit and CLI to version, validate, and render prompts for OpenAI, Anthropic, Gemini, and OpenRouter."
33+
/>
34+
35+
<script type="application/ld+json">
36+
{
37+
"@context": "https://schema.org",
38+
"@type": "SoftwareApplication",
39+
"name": "PromptOpsKit",
40+
"applicationCategory": "DeveloperApplication",
41+
"operatingSystem": "Cross-platform",
42+
"license": "https://opensource.org/license/mit",
43+
"codeRepository": "https://github.com/PredictabilityAtScale/promptopskit",
44+
"url": "https://github.com/PredictabilityAtScale/promptopskit",
45+
"description": "Open-source developer toolkit for versioning, validating, composing, and rendering prompts as code.",
46+
"offers": {
47+
"@type": "Offer",
48+
"price": "0",
49+
"priceCurrency": "USD"
50+
}
51+
}
52+
</script>
53+
54+
<link rel="stylesheet" href="./styles.css" />
55+
</head>
56+
<body>
57+
<header class="site-header">
58+
<div class="container nav">
59+
<a class="brand" href="#top" aria-label="PromptOpsKit home">PromptOpsKit</a>
60+
<nav aria-label="Primary">
61+
<a href="#why">Why</a>
62+
<a href="#features">Features</a>
63+
<a href="#quickstart">Quick start</a>
64+
<a href="#faq">FAQ</a>
65+
<a href="#oss">Open source</a>
66+
</nav>
67+
<a class="button button-primary" href="https://github.com/PredictabilityAtScale/promptopskit">GitHub</a>
68+
</div>
69+
</header>
70+
71+
<main id="top">
72+
<section class="hero container">
73+
<p class="eyebrow">Open-source prompt infrastructure</p>
74+
<h1>Ship AI prompts with the same rigor as application code.</h1>
75+
<p class="lead">
76+
PromptOpsKit is a developer-first toolkit and CLI for authoring prompts in Markdown,
77+
validating schema and variables before runtime, and rendering provider-specific request bodies
78+
without locking you into a transport stack.
79+
</p>
80+
<div class="hero-actions">
81+
<a class="button button-primary" href="https://www.npmjs.com/package/promptopskit">Install from npm</a>
82+
<a class="button" href="https://github.com/PredictabilityAtScale/promptopskit#quick-start">Read the quick start</a>
83+
</div>
84+
<pre><code>npm install promptopskit
85+
npx promptopskit init ./prompts
86+
promptopskit validate ./prompts --strict</code></pre>
87+
</section>
88+
89+
<section id="why" class="container section">
90+
<h2>Why teams adopt PromptOpsKit</h2>
91+
<div class="grid three">
92+
<article class="card">
93+
<h3>Predictable prompt changes</h3>
94+
<p>Store prompts in markdown with front matter so every change is diffable, reviewable, and auditable.</p>
95+
</article>
96+
<article class="card">
97+
<h3>Portable provider output</h3>
98+
<p>Generate request bodies for OpenAI, Anthropic, Gemini, and OpenRouter while keeping network logic in your app.</p>
99+
</article>
100+
<article class="card">
101+
<h3>Safer releases</h3>
102+
<p>Catch invalid schema, unresolved variables, and malformed composition before your production calls fail.</p>
103+
</article>
104+
</div>
105+
</section>
106+
107+
<section id="features" class="container section">
108+
<h2>Prompt management features for engineering teams</h2>
109+
<div class="grid two">
110+
<article class="card">
111+
<h3>Authoring format engineers already trust</h3>
112+
<ul>
113+
<li>Markdown files with YAML front matter</li>
114+
<li>H1 sections for system instructions and prompt template</li>
115+
<li><code>{{ variable }}</code> interpolation and strict checks</li>
116+
</ul>
117+
</article>
118+
<article class="card">
119+
<h3>Composition and overrides without duplication</h3>
120+
<ul>
121+
<li><code>includes</code> for shared policy, tone, and safety blocks</li>
122+
<li>Environment and tier-specific overrides</li>
123+
<li>Deterministic precedence: base → env → tier → runtime</li>
124+
</ul>
125+
</article>
126+
<article class="card">
127+
<h3>CLI for local and CI pipelines</h3>
128+
<ul>
129+
<li><code>init</code>, <code>validate</code>, <code>render</code>, <code>inspect</code>, <code>compile</code>, and <code>skill</code></li>
130+
<li>Pre-compile prompts to JSON/ESM artifacts</li>
131+
<li>Use in pre-merge checks and release workflows</li>
132+
</ul>
133+
</article>
134+
<article class="card">
135+
<h3>No transport lock-in</h3>
136+
<ul>
137+
<li>Adapters return request body only</li>
138+
<li>You keep control of auth, retries, headers, and observability</li>
139+
<li>Integrates with existing HTTP and infra standards</li>
140+
</ul>
141+
</article>
142+
</div>
143+
</section>
144+
145+
<section id="quickstart" class="container section">
146+
<h2>PromptOpsKit quick start</h2>
147+
<div class="grid two">
148+
<article class="card">
149+
<h3>1) Install and scaffold</h3>
150+
<pre><code>npm install promptopskit
151+
npx promptopskit init ./prompts</code></pre>
152+
</article>
153+
<article class="card">
154+
<h3>2) Render for your target provider</h3>
155+
<pre><code>import { createPromptOpsKit } from 'promptopskit';
156+
157+
const kit = createPromptOpsKit({ sourceDir: './prompts' });
158+
const result = await kit.renderPrompt({
159+
path: 'support/reply',
160+
provider: 'openai',
161+
variables: { user_message: 'How do I reset my password?' }
162+
});</code></pre>
163+
</article>
164+
</div>
165+
</section>
166+
167+
<section id="faq" class="container section">
168+
<h2>Frequently asked questions</h2>
169+
<div class="grid two">
170+
<article class="card">
171+
<h3>Is PromptOpsKit only for one model provider?</h3>
172+
<p>No. It supports OpenAI, Anthropic, Gemini, and OpenRouter adapters out of the box.</p>
173+
</article>
174+
<article class="card">
175+
<h3>Does PromptOpsKit make HTTP requests?</h3>
176+
<p>No. It returns request-body payloads so your app controls auth, transport, retries, and headers.</p>
177+
</article>
178+
<article class="card">
179+
<h3>Can we validate prompts in CI before deploy?</h3>
180+
<p>Yes. Use the CLI validate and compile commands in your CI pipeline to catch issues before release.</p>
181+
</article>
182+
<article class="card">
183+
<h3>Is PromptOpsKit open source?</h3>
184+
<p>Yes. The project is MIT-licensed and maintained in a public GitHub repository.</p>
185+
</article>
186+
</div>
187+
</section>
188+
189+
<section id="oss" class="container section">
190+
<h2>Open source and production-ready defaults</h2>
191+
<p>
192+
PromptOpsKit is MIT-licensed and designed for teams that need testable prompt operations.
193+
Use source prompts in development and pre-compiled artifacts in production for speed and reliability.
194+
</p>
195+
<p>
196+
Explore docs, examples, and API details in the repository.
197+
</p>
198+
<a class="button button-primary" href="https://github.com/PredictabilityAtScale/promptopskit">View repository</a>
199+
</section>
200+
</main>
201+
202+
<footer class="site-footer">
203+
<div class="container footer-content">
204+
<p>PromptOpsKit • MIT License</p>
205+
<p><a href="https://github.com/PredictabilityAtScale/promptopskit">GitHub</a></p>
206+
</div>
207+
</footer>
208+
</body>
209+
</html>

website/marketing-audit.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# PromptOpsKit Marketing Audit and Website Plan
2+
3+
## Scope
4+
5+
This audit reviews the current repository messaging (especially `README.md`), identifies conversion and clarity gaps for a developer audience, and proposes a standalone marketing site in `website/`.
6+
7+
## Current repo strengths
8+
9+
1. **Strong technical depth**: README explains architecture, provider support, overrides, composition, and API details.
10+
2. **Real implementation credibility**: examples and CLI coverage signal production intent.
11+
3. **Clear open-source positioning**: MIT license and explicit no-lock-in approach are present.
12+
13+
## Problems observed
14+
15+
### 1) README is optimized for existing users, not first-time evaluators
16+
17+
- The README has extensive details and many sections before a concise value hierarchy is established.
18+
- New visitors must parse a lot of implementation material before understanding the product's outcome for teams.
19+
20+
**Solution in marketing site**
21+
- Lead with a short developer value proposition.
22+
- Add an immediate “why adopt” section with three concrete outcomes.
23+
- Keep quick-start command block near the hero.
24+
25+
### 2) Value differentiation exists but is not tightly packaged for decision makers
26+
27+
- Differentiators such as “request-body-only adapters”, “overrides precedence”, and “pre-compile for production” are present but spread across sections.
28+
29+
**Solution in marketing site**
30+
- Consolidate differentiators into scannable feature cards.
31+
- Prioritize claims tied to operational outcomes: portability, release safety, and prompt governance.
32+
33+
### 3) The repo currently lacks a purpose-built landing experience
34+
35+
- There is no standalone page designed for top-of-funnel traffic from npm/GitHub/social links.
36+
- No short narrative path from problem → capability → proof → CTA.
37+
38+
**Solution in marketing site**
39+
- Add a static, framework-free landing page under `website/`.
40+
- Keep this independent from library docs and package build/publish flow.
41+
42+
### 4) Design style in many AI-tool landers can feel generic
43+
44+
- Common patterns include heavy gradients, oversized “chip” labels, and highly rounded cards/buttons, which can reduce trust for technical audiences expecting precision and seriousness.
45+
46+
**Solution in marketing site**
47+
- Flat background, restrained color system, low-radius corners, clear typographic hierarchy, and direct technical copy.
48+
49+
## Reference review (developer-focused OSS/product pages)
50+
51+
The proposed layout and copy structure were informed by public pages such as:
52+
53+
- LangChain product page patterns (clear value prop + adoption outcomes + CTA).
54+
- LangGraph/LangChain ecosystem positioning (choose abstraction level for different teams).
55+
- Supabase developer homepage structure (modular capability sections and clear open-source framing).
56+
- Temporal messaging style (developer reliability + production outcomes).
57+
58+
## Information architecture for the new standalone website
59+
60+
1. **Hero**: one-sentence positioning + install/docs CTAs.
61+
2. **Why adopt**: three outcome-focused cards.
62+
3. **Features**: engineering workflow capabilities in compact lists.
63+
4. **Quick start**: real commands and code snippet.
64+
5. **Open source close**: governance and repository CTA.
65+
66+
## Packaging and distribution considerations
67+
68+
- The site lives in `website/` and does not affect runtime library code.
69+
- npm package remains unaffected because publish `files` includes only `dist/`.
70+
- This setup supports future deployment to any static host without changing package outputs.
71+
72+
## Next iteration recommendations
73+
74+
1. Add social proof (logos or usage metrics) once available.
75+
2. Add “Architecture” section with one diagram for include/override/render pipeline.
76+
3. Add benchmarks for parse/compile/validate latency.
77+
4. Add docs deep-links per audience (library user vs platform engineer vs AI infra team).

website/robots.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
User-agent: *
2+
Allow: /
3+
4+
Sitemap: https://github.com/PredictabilityAtScale/promptopskit/blob/main/website/sitemap.xml

website/sitemap.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3+
<url>
4+
<loc>https://github.com/PredictabilityAtScale/promptopskit</loc>
5+
<changefreq>weekly</changefreq>
6+
<priority>0.8</priority>
7+
</url>
8+
</urlset>

0 commit comments

Comments
 (0)