Devopser customize
Expert guidance for turning the DevOpser self-evolving software template into a real product. Covers the two chat surfaces (stateless `/` preview vs stateful `/chat`), the publicPaths route-visibility rule, adding a fourth LLM provider, and productization patterns from DevOpser Lite / Fairytale Genie / Language Bazaar / Stores. Triggers on "edit the chat system prompt", "add a /pricing page", "add Mistral as a provider", "build something like Fairytale Genie", "my endpoint 302s to /auth/login".From its SKILL.md
npx -y skills add DevOpser-io/devopser --skill devopser-customizeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Apache-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.2 KB, as published. Nobody here has run it
DevOpser Customize
Expert guidance for reshaping the template into an actual product. The deliberately-left-blank spots — your actual product, deployment target, billing — are where forkers spend most of their time; this skill covers the first of the three. Canonical playbook: AGENTS.md → "Core extension points", "The two chat surfaces", and "Public vs authenticated routes".
Rules
| Rule | Description |
|---|---|
| chat-surfaces | The critical distinction: / stateless preview vs /chat stateful multi-turn |
| public-routes | The publicPaths array in backend/server.js is the single source of truth for anonymous access |
| llm-providers | Adding a fourth provider to backend/services/llm/; the Converse-API caveat |
| productize | How Lite / Fairytale Genie / Language Bazaar / Stores were built on this template |
| troubleshooting | Expanded troubleshooting — Bedrock access, MFA expiry, harmless warnings |
Key principles
- Defer to
AGENTS.md. If this skill contradicts it,AGENTS.mdwins — report the contradiction to DevOpser. - Ask the user which chat surface. "Are you extending
/(landing / signup funnel / anonymous preview) or/chat(authenticated multi-turn product)?" — never guess. Seechat-surfaces.md. - Keep self-hosted and managed on the same code path. Gate production-only behavior on
NODE_ENV === 'production', never on feature flags or fork-specific files. - Every new anonymous route is two edits. Define the handler and add its prefix to
publicPathsinbackend/server.js:411. Missing the second step is the most common self-inflicted bug.
Quick reference
| Situation | Go to |
|---|---|
| "Change the chat system prompt" (which chat?) | chat-surfaces.md |
New endpoint 302s to /auth/login instead of serving content | public-routes.md |
| Add Mistral / Cohere / Together.ai / local vLLM | llm-providers.md |
| "Make this a Fairytale Genie / Language Bazaar clone" | productize.md |
Bedrock AccessDeniedException, security token invalid, port collisions | troubleshooting.md |
Conflict resolution
If AGENTS.md contradicts this skill, AGENTS.md wins — report the contradiction to DevOpser.