Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2279 commits
Select commit Hold shift + click to select a range
4832083
changelog: 2505 Keycloak updates
davlgd May 13, 2025
4c97af0
fix(billing): invoice first section, image caption
May 13, 2025
dde526b
changelog: images update, 2025W20
davlgd May 13, 2025
64d995b
changelog: Otoroshi API service dependencies update
davlgd May 14, 2025
cbcfa6c
addons(otoroshi): URL updates
davlgd May 14, 2025
a35c9e9
changelog: typo in previous entries
davlgd May 15, 2025
56a81e6
changelog: Radis 8.0.1
davlgd May 15, 2025
0d7c1c2
applications(node): update version management
davlgd May 13, 2025
8221350
changeloge: CC_NODE_VERSION in Node.js runtime
davlgd May 19, 2025
125cc8b
changelog: images update, 2025W20-2
davlgd May 19, 2025
8d83201
data(runtime): update Node.js version
davlgd May 19, 2025
656ca6f
administrate(domaine names): add a mention of primary/favourite domain
davlgd May 19, 2025
bcca78a
changelog: Otoroshi v17.1
davlgd May 19, 2025
a864f42
addons(Otoroshi): add mention of audio, image and moderation models
davlgd May 19, 2025
dabe708
changelog: Matomo 5.3.2
davlgd May 20, 2025
314ccbc
changelog: fix Otoroshi 17.1.1 URL
davlgd May 20, 2025
5d00b1c
changelog: PostgreSQL 17.5-16.9-15.13-14.18-13.21
davlgd May 20, 2025
7bd82de
data(dedicated): update PostgreSQL versions
davlgd May 20, 2025
80b8f1a
changelog: new OAuth consumers interface
davlgd May 28, 2025
1016379
fix: default archetype date, to prevent vale error in CI (#643)
davlgd May 30, 2025
16745f6
applications(javascript): update frontmatters
davlgd Jun 2, 2025
2f95697
applications(node.js): update package.json section
davlgd Jun 2, 2025
e98cc57
applications(node.js): add Bun support
davlgd Jun 2, 2025
54d914f
applications(node.js): add Bun version
davlgd Jun 2, 2025
a571fd6
applications(node.js): reorganize sections, Vale fixes
davlgd Jun 2, 2025
9bbea5b
applications(javascript): update index menu
davlgd Jun 2, 2025
fca5055
changelog: bun native support
davlgd Jun 2, 2025
905e453
chore: Vale whitelist update
davlgd Jun 2, 2025
73d889f
applications(frankenphp): introduce CC_FRANKENPHP_PORT
davlgd Jun 2, 2025
136b187
applications(frankenphp): add custom user.ini, Caddyfile config instr…
davlgd Jun 2, 2025
e24e417
applications(frankenphp): updates FrankenPHP version
davlgd Jun 2, 2025
88773d9
changelog: images update, 2025W23
davlgd Jun 3, 2025
02d9c27
chore: Vale whitelist update
davlgd Jun 3, 2025
407a9e9
changelog: Redis 8.0.2
davlgd Jun 3, 2025
8b89006
reference(env vars): fix bad link for Node version
davlgd Jun 5, 2025
72125d3
reference(env vars): add a section for global version variables
davlgd Jun 5, 2025
0524f2e
reference(env vars): duplicate CC_NODE_VERSION for Node.js
davlgd Jun 5, 2025
3d7f4d3
changelog: Console sessions
davlgd Jun 5, 2025
bab443e
changelog: new OAuth tokens interface
davlgd Jun 5, 2025
26ce5ac
changelog: API tokens in Console with tips
davlgd Jun 5, 2025
c5fd7dd
doc: fix old tokens Console management page link
davlgd Jun 5, 2025
2942bd0
api(howto): add mention of API tokens management in Console
davlgd Jun 5, 2025
52dd9b1
web-components: link update
davlgd Jun 5, 2025
ce93a40
api(howto): add a mention of the API bridge in API tokens introduction
davlgd Jun 5, 2025
838d5e6
changelog: mysql 8.0.42 and 8.4.5
davlgd Jun 9, 2025
4682fd5
changelog: Clever Tools 3.13
davlgd Jun 2, 2025
22c89b5
cli: sync with Clever Tools 3.13 documentation
davlgd Jun 9, 2025
ba48a15
chore: update Clever Tools install instructions link
davlgd Jun 10, 2025
cda5dc3
chore: update Clever Tools documentation links
davlgd Jun 10, 2025
236cc0d
fix #641: Add mention that FS bucket cannot be created on Health regi…
cnivolle Jun 10, 2025
aa245a8
applications(nodejs): update deployment video (#642)
davlgd Jun 10, 2025
c807f79
chore: simplify deploy script
davlgd Jun 8, 2025
b1dd6b3
chore: adapt build workflow to new deploy script
davlgd Jun 8, 2025
20fdec1
changelog: Terraform 0.8
davlgd Jun 9, 2025
a365a37
changelog: Terraform 0.8
davlgd Jun 9, 2025
3d655a0
reference: update product Matrix
davlgd Jun 9, 2025
7025c5c
Fix typo table env var
Jun 11, 2025
e8ca887
changelog: images update, 2025W25
davlgd Jun 10, 2025
bdc00c9
applications(php): update CC_CGI_IMPLEMENTATION
davlgd Jun 10, 2025
c5fbc6c
reference(env vars): add CC_DOCKER_BUILDX
davlgd Jun 10, 2025
a0395cc
feat(php): add module opentelemetry
Jun 18, 2025
9ec4e07
applications(php): update extensions support list
davlgd Jun 19, 2025
c7c2872
changelog: Metabase 55
davlgd Jun 20, 2025
87cd75c
cli(operators): fix links, details
davlgd Jun 20, 2025
fdb8e99
changelog: Keycloak 26.2.5
davlgd Jun 20, 2025
2f88118
changelog: fix node version
davlgd Jun 23, 2025
391353c
guides: add oTree
wowi42 Jun 24, 2025
d5aba27
guides(oTree): add deployment instructions
davlgd Jun 27, 2025
a3e98d6
Fix typo
AlekSi Jun 27, 2025
7c2d0cd
changelog: Ionos London region
davlgd Jul 1, 2025
d961745
administrate(domain names): update order, add HDS notice
davlgd Jul 1, 2025
bfe1dbf
quickstart: fix typo
AlekSi Jun 27, 2025
3b327b2
fix: enhance links texts
davlgd Jun 5, 2025
92aad9b
changelog: images update, 2025W27
davlgd Jun 30, 2025
e75ba00
changelog: JS Client 11.0
davlgd Jul 2, 2025
ce50c71
changelog: Terraform 0.10.0
davlgd Jul 2, 2025
6c64736
doc: Docs guide (#587)
Jul 3, 2025
8f035c4
cli: auth-bridge > api-bridge
davlgd Jul 3, 2025
00c0c65
chore: add applications archetype
davlgd Jun 20, 2025
5ab821b
chore: add mise, redirection.io and varnish partials
davlgd Jun 20, 2025
724d6fe
chore: update applications links
davlgd Jun 20, 2025
94da148
administrate(cache): update Varnish
davlgd Jun 20, 2025
9d1e229
applications: add Linux
davlgd Jun 20, 2025
d10a6c8
applications: add Static
davlgd Jun 20, 2025
b4029e5
applications: add V
davlgd Jun 20, 2025
bdb2fc6
cli(applications): add new runtimes
davlgd Jun 20, 2025
f0a268d
changelog: fix 25W27 title
davlgd Jul 4, 2025
8becd55
changelog: Linux, Static, V runtimes
davlgd Jul 4, 2025
cb0f28f
chore: flexsearch configuration
davlgd Jul 2, 2025
64a6aeb
chore: add content shortcode
davlgd Jul 2, 2025
90e2f9c
chore: move to content shortcode
davlgd Jul 2, 2025
8372936
chore: vale rules sync
davlgd Jun 19, 2025
8685d22
chore: replace ... with …
davlgd Jul 4, 2025
dc0d41d
vale: add Clever ellipsis rule
davlgd Jul 4, 2025
95d9ecb
applications(static): fix Nuxt.js command/files
davlgd Jul 6, 2025
05ef2d1
applications(static): add mention of auto-build in optimized build ca…
davlgd Jul 6, 2025
3702fce
applications(static): fix link to Varnish documentation
davlgd Jul 6, 2025
e5c54ef
changelog: fix links to CLI doc
davlgd Jul 6, 2025
b89977c
changelog: fix link to Clever Tasks documentation
davlgd Jul 6, 2025
cc1d676
metrics(new-relic): update agent installation links
davlgd Jul 6, 2025
a8db299
guides: reorder and fix index links
davlgd Jul 6, 2025
ce394f9
chore: update icons with new runtimes
davlgd Jul 7, 2025
9bf2d04
applications: add new runtimes to index, update titles
davlgd Jul 7, 2025
5541b8b
applications: update index links
davlgd Jul 7, 2025
eae6ecf
quickstart: sync runtimes list
davlgd Jul 7, 2025
e014471
chore: update Hugo max supported version
davlgd Jul 9, 2025
0113cf1
fix: Elixir latest supported version
davlgd Jul 9, 2025
40a15c6
changelog: images update, 2025W28
davlgd Jul 8, 2025
ffc3631
chore: use Hugo 0.148 in build workflow
davlgd Jul 9, 2025
aa66654
chore: use static runtime in deploy workflow
davlgd Jul 9, 2025
b94c144
changelog: redis 8.0.3 with JSON
davlgd Jul 9, 2025
3fa872f
changelog: terraform 0.11.0
davlgd Jul 10, 2025
35e4c97
changelog: fix Redis JSON link
davlgd Jul 11, 2025
5f64748
docs(application): add an alias, update frontmatter
davlgd Jul 15, 2025
4221de7
chore: update doc old links
davlgd Jul 15, 2025
12d887d
chore: add a Vale rule for 'organisation'
davlgd Jul 10, 2025
6612136
fix: organization > organisation
davlgd Jul 10, 2025
fccdf0a
account(organisation): rename page, add alias, update links
davlgd Jul 15, 2025
5b7403a
account(administrate-organisation): rename page, add alias, update links
davlgd Jul 15, 2025
2be57e1
chore: remove folder when there is only an index in it
davlgd Jul 11, 2025
3752a35
chore: remove legacy extend section
davlgd Jul 11, 2025
1a884af
chore: move meteor/node to 1st level, adapt links
davlgd Jul 11, 2025
0c84b95
addon(pulsar): multiple fixes
gnoireaux Jul 15, 2025
181b0dd
chore: move glossary to tooltips and document it in README.md
davlgd Jul 10, 2025
1f1db13
applications(javascript): add alias to meteor/nodejs
davlgd Jul 15, 2025
5369c03
Update configuration.md
davlgd Jul 15, 2025
6af6e15
chore: clean aliases
davlgd Jul 15, 2025
5ba660f
fix(changelog): 2023/12-22-sozu-wider-usage path
davlgd Jul 15, 2025
70651fa
fix: 404 image URL, redirection link
davlgd Jul 16, 2025
af045ca
chore: remove unnecessary paddings/margin in 404.html
davlgd Jul 16, 2025
305ab4c
fix: add aliases
davlgd Jul 15, 2025
53e4359
docs: front matter update and fixes
davlgd Jul 15, 2025
0dcd935
fix: add aliases
davlgd Jul 16, 2025
75665b2
fix: add aliases
davlgd Jul 16, 2025
8857b99
fix: add aliases
davlgd Jul 16, 2025
3193485
chore: add remote shortcode
davlgd Jul 15, 2025
82956ce
chore: update content markdown shortcode
davlgd Jul 15, 2025
974fd4f
chore: update shortcode content
davlgd Jul 15, 2025
a8bbb57
changelog: Request Flow
davlgd Jul 17, 2025
934aa3b
docs(reference): add CLI reference and update script
davlgd Jul 15, 2025
92dce72
chore: update hugo.yaml
davlgd Jul 15, 2025
70a8d2b
applications(php): add a Note about FS Buckets in HDS regions
cnivolle Jul 15, 2025
eddaed0
addons(fs-bucket): move limitations to a dedicated section
cnivolle Jul 17, 2025
a02bd39
quickstart: add a Note about storage on immutable infrastructrure
cnivolle Jul 17, 2025
40b02ea
chore: remove unnecessary files
davlgd Jul 16, 2025
c341d76
chore: move shared content to shared folder
davlgd Jul 16, 2025
98a7cc2
chore: move drafts to drats folder
davlgd Jul 16, 2025
b1e9d9c
chore: move contribute section to contribute.md
davlgd Jul 16, 2025
dbb2ed6
chore: move all images to static/images
davlgd Jul 16, 2025
553c34e
chore: remove image shortcode
davlgd Jul 16, 2025
34124af
chore: remove img-grid shortcode
davlgd Jul 16, 2025
5fb26bf
fix: add aliases
davlgd Jul 17, 2025
296b345
Reunite v1/v2 documentations
davlgd Jul 17, 2025
707d5fa
chore: clean after documentation reunite
davlgd Jul 17, 2025
c76d8d3
fix: add aliases
davlgd Jul 18, 2025
145e4fa
chore: update add-ons/runtime versions
davlgd Jul 18, 2025
f573039
chore: update .gitignore
davlgd Jul 18, 2025
bc28979
chore: remove unused public/ submodule
davlgd Jul 18, 2025
959f19e
fix: callout syntax, don't use link/code in title
davlgd Jul 18, 2025
126240e
fix: add aliases
davlgd Jul 18, 2025
8d111a7
fix: add aliases
davlgd Jul 19, 2025
b73af49
cli: add operators to index cards
davlgd Jul 19, 2025
76ae9e9
fix: add aliases
davlgd Jul 19, 2025
630684c
fix: add aliases
davlgd Jul 19, 2025
8a7fb57
fix: add aliases
davlgd Jul 21, 2025
2e65bdc
fix: add aliases
davlgd Jul 22, 2025
22d6976
shortcodes(content): fix HTML entity escaping
LostInBrittany Jul 21, 2025
52ddde4
fix: add aliases
davlgd Jul 22, 2025
bc7ff40
fix: add aliases
davlgd Jul 23, 2025
4ded3a3
fix: add aliases
davlgd Jul 23, 2025
e111e53
fix: add aliases
davlgd Jul 24, 2025
a58b0f2
best-practices(tips_and_tricks): update Clever Components storybook link
davlgd Jul 24, 2025
58738f2
guides: use full path in index's cards
davlgd Jul 24, 2025
e9b3e49
chore: remove ref shortcode usage, update links
davlgd Jul 24, 2025
db1dce6
guides(play-framework-2): remove duplicate sentence
davlgd Jul 24, 2025
485d6d5
chore: remove relative links
davlgd Jul 25, 2025
77c6197
addons(heptapod): use markdown image semantic
davlgd Jul 25, 2025
e7ccf8d
postmortem: fix index links
davlgd Jul 25, 2025
3efed14
guides(kibana): update custom configuration instructions
Kirbeerus Jul 25, 2025
0723a65
guides(kibana): add example for multiple authentication methods
Kirbeerus Jul 25, 2025
66a9382
fix: add aliases
davlgd Jul 28, 2025
98f99bf
docs(README): update intro, links
davlgd Jul 18, 2025
99ff3f8
docs(README): update front matter parameters
davlgd Jul 18, 2025
9e50d9e
docs(README): update image instructions
davlgd Jul 18, 2025
445ead4
docs(README): update shared content instructions
davlgd Jul 18, 2025
2777fdb
docs(README): add details about Hugo shortcode
davlgd Jul 29, 2025
6f9e44b
docs(README): update quickstart instructions
davlgd Jul 18, 2025
01f1a0f
docs(README): move Linting Markdown section
davlgd Jul 18, 2025
0c039f2
docs(README): add contributing section
davlgd Jul 18, 2025
203214e
docs(README): add deploying on Clever Cloud section
davlgd Jul 18, 2025
21ce960
docs(README): update new content instructions
davlgd Jul 18, 2025
fbaf9b7
docs(README): extract an Editorial checks section
davlgd Jul 18, 2025
53432e1
chore: update archetypes
davlgd Jul 18, 2025
2b6cf71
docs(README): fix tooptip link
davlgd Jul 29, 2025
c2d175f
changelog: Clever Tools 3.14
davlgd Jul 28, 2025
bfa7c3e
reference(cli): Clever Tools 3.14.0
davlgd Jul 29, 2025
3f9fe48
fix: add aliases
davlgd Jul 30, 2025
6075e34
applications(static): fix Vitepress/Zola headings
davlgd Jul 30, 2025
8e4cb63
chore: add content-raw shortcode
davlgd Jul 30, 2025
e0ad4be
applications(static): add SSG guides
davlgd Jul 30, 2025
c097772
fix: add aliases
davlgd Jul 30, 2025
6541ee4
changelog: images update, 2025W31
davlgd Jul 30, 2025
45d3c0d
appplications(static): update cache information
davlgd Jul 30, 2025
951130e
changelog: operators version at creationn
davlgd Jul 30, 2025
524b5e9
addons(operators): add version management from Clever Tools
davlgd Jul 30, 2025
ff775f4
fix: add aliases
davlgd Jul 31, 2025
68afc84
account(create account): don't used shared content
davlgd Jul 31, 2025
1fd5c30
shared: move dbMigration to db-migration
davlgd Jul 31, 2025
fcec44f
shared: move language-specific-deploy/ruby to ruby
davlgd Jul 31, 2025
2f262b3
shared: move language-specific-deploy/create-static to create-static
davlgd Jul 31, 2025
aca4419
shared: remove unused content
davlgd Jul 31, 2025
0b6e384
fix: no caps in github URL
davlgd Jul 31, 2025
dcecf82
changelog: Terraform 1.0.0
davlgd Jul 30, 2025
6d538cd
changelog: Keycloak 26.3.2
davlgd Jul 31, 2025
b0c9bc9
feat(postgresql): add new on-demand extensions
aurrelhebert Jul 31, 2025
661c5f9
fix: add aliases
davlgd Jul 31, 2025
bff427a
chore: move, update static guide shared content
davlgd Aug 1, 2025
73c00fb
guides(astro): update with new static runtime
davlgd Aug 1, 2025
bf5aef6
guides(docusaurus): update with new static runtime
davlgd Aug 1, 2025
c4a1e0f
guides(eleventy): update with new static runtime
davlgd Aug 1, 2025
0bb9b66
guides(hexo): update with new static runtime
davlgd Aug 1, 2025
813456b
guides(hugo): update with new static runtime
davlgd Aug 1, 2025
9f9cd81
guides(lume-deno): update with new static runtime
davlgd Aug 1, 2025
5f81c65
guides(mdbook): update with new static runtime
davlgd Aug 1, 2025
c88bf0d
guides(mkdocs): update with new static runtime
davlgd Aug 1, 2025
7a3412f
guides(nuxt): update with new static runtime
davlgd Aug 1, 2025
55451bd
guides(docs): fixes links, more details
Kirbeerus Jul 25, 2025
7300496
fix: add aliases
davlgd Aug 1, 2025
91b7dc8
changelog: fix old entry link
davlgd Aug 1, 2025
09edd2a
fix: add aliases
davlgd Aug 4, 2025
742efff
best-practices(tips_and_tricks): mention Console OpenSearch support
davlgd Aug 5, 2025
40933bb
chore: add AI instructions rules (#744)
davlgd Aug 5, 2025
7381c6b
docs: add mention of AI instructions and llms.txt support to README.md
davlgd Aug 5, 2025
bdd8c30
docs: use relative links when useful in README.md
davlgd Aug 5, 2025
acbd809
chore: add LLMs to accepted world list
davlgd Aug 5, 2025
19a9b91
chore: simplify CSS custom theme
davlgd Jul 18, 2025
10afe8e
chore: move to clever.cloud
davlgd Aug 5, 2025
4bc4298
chore: simpler GitHub Action
davlgd Jul 16, 2025
77aed84
fix: trailing slash in some links
davlgd Aug 7, 2025
9a74764
chore(develop): remove duplicate page
davlgd Aug 7, 2025
d48c1f8
changelog: images update, 2025W31
davlgd Aug 7, 2025
d4608cf
fix: k6 dead link
davlgd Aug 7, 2025
c266b27
fix: add aliases
davlgd Aug 7, 2025
473bb0b
fix: don't execute check-links when a PR is closed
davlgd Aug 7, 2025
9e9380c
workflows(deploy): name jobs, restrict permissions
davlgd Aug 7, 2025
300db73
feat(search): replace theme search with Algolia DocSearch (PoC)
waxzce Aug 7, 2025
836eeb9
chore(search): include missing tracked files (custom head hook, theme…
waxzce Aug 7, 2025
6092eeb
chore: dedicated CSS/JS for docSearch
davlgd Aug 7, 2025
a19b184
fix: hugo config
davlgd Aug 7, 2025
34710c0
chore: clean docSearch layouts
davlgd Aug 7, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
291 changes: 291 additions & 0 deletions .cursorrules
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
# AI Content Creation Rules for Clever Cloud Documentation

This document provides comprehensive guidance for AI systems on creating high-quality content for Clever Cloud's documentation platform, including technical documentation, guides, and changelog entries.

## Development Environment

This is a Hugo-based documentation site using the Hextra theme.

### Hugo Development Commands
- **Build and serve locally**: `hugo server` (site available at http://localhost:1313)
- **Build for production**: `hugo` (outputs to `public/developers/`)
- **Preview with drafts**: `hugo server --buildDrafts`
- **Generate new content**:
- `hugo new content guides/<framework>.md`
- `hugo new content/doc/administrate/<feature>.md`
- `hugo new content --kind applications doc/applications/<runtime>.md`
- **Update CLI reference**: `./update-cli-reference.sh`

### Project Structure
- **Content organization**: `/content/` contains all documentation:
- `doc/` - Main documentation (applications, addons, CLI, etc.)
- `guides/` - Framework-specific tutorials and guides
- `changelog/` - Platform updates and announcements
- `api/` - API documentation
- `postmortem/` - Incident reports
- **Shared content**: `/shared/` contains reusable content blocks
- **Data files**: `/data/` contains structured data (runtime versions, tooltips, etc.)
- **Static assets**: `/static/` for images, fonts, and other assets

### Content Management System
- Uses Hugo front matter with fields: `type`, `weight`, `linkTitle`, `description`, `excludeSearch`, `aliases`, `draft`, `tags`, `authors`
- New pages have `draft: true` by default - change to `false` to publish
- Tooltips defined in `data/tooltips.toml` and auto-display on hover
- **Quality enforcement**:
- Markdown linting via markdownlint-cli2 (config: `.markdownlintignore`, `.markdownlint.jsonc`)
- Editorial checks via Vale.sh (config: `.vale.ini`)
- Vocabulary in `.github/styles/config/vocabularies/Doc/accept.txt`

## Content Types Overview

### 1. Technical Documentation (`/content/doc/`)
Formal reference material for platform features, APIs, and configurations.
- **Style**: Professional, precise, instructional
- **Structure**: Hierarchical with clear sections
- **Purpose**: Enable users to accomplish specific tasks

### 2. Guides & Tutorials (`/content/guides/`)
Step-by-step instructions for implementing specific technologies or frameworks.
- **Style**: Educational, conversational but focused
- **Structure**: Progressive steps with examples
- **Purpose**: Guide users through complete implementation

### 3. Changelog Entries (`/content/changelog/`)
Technical blog-style posts announcing platform updates and new features.
- **Style**: Engaging, informative, personality allowed
- **Structure**: Context → announcement → practical examples → links
- **Purpose**: Inform users about platform evolution

## Writing Style Guidelines

### Universal Rules (All Content Types)

#### Language Standards
- Use **second person** ("you") to address readers directly
- Write in **active voice** - avoid passive constructions
- Use **British spelling** for "organisation" not "organization"
- **Avoid first-person pronouns**: I, me, my, we, us, our, let's
- Keep sentences **short and clear** (max 25 words when possible)
- **No jargon** - explain technical terms when first introduced

#### Prohibited Phrases
- Placeholder phrases: "please note", "at this time", "it should be noted"
- Overconfident claims: "simply", "just", "easily", "quickly", "obviously"
- Time-dependent promises: "soon", "in the future", "coming next month"
- Over-politeness: excessive use of "please"

#### Required Elements
- **Don't assume prior knowledge** - over-explain rather than under-explain
- Address the reader's **specific use case** and context
- Provide **concrete examples** with real commands, code, or configurations
- Include **relevant links** to related documentation

### Documentation-Specific Rules

#### Structure Requirements
```yaml
---
type: docs
linkTitle: Short Title
title: Full Page Title
description: SEO-friendly description explaining what users will learn
aliases:
- /old/url/path
---
```

#### Content Organization
- **Overview section** - Brief explanation of what the technology/feature is
- **Create/Setup section** - How to get started
- **Configure section** - Detailed configuration options
- **Advanced features** - Optional capabilities
- **Examples and references** - Practical implementations

#### Technical Specifications
- Always specify **current versions** of software/tools
- Include **environment variables** with exact names and examples
- Provide **command-line examples** with proper syntax
- Use **callouts for important information**:
```markdown
> [!NOTE] Context about new features
> [!TIP] Helpful suggestions
> [!WARNING] Important considerations
```

### Guide-Specific Rules

#### Engaging Introduction
- Start with **hero subtitle shortcode** explaining the framework/tool benefits
- Use **hextra shortcodes** for enhanced presentation:
```markdown
{{< hextra/hero-subtitle >}}
Brief engaging description of what users will build
{{< /hextra/hero-subtitle >}}
```

#### Step-by-Step Structure
- Use **steps shortcode** for sequential instructions:
```markdown
{{% steps %}}
### Step Title
Content and commands
{{% /steps %}}
```

- Include **tab groups** for different package managers/approaches:
```markdown
{{< tabs items="npm,yarn,pnpm" >}}
{{< tab >}}Content for npm{{< /tab >}}
{{< tab >}}Content for yarn{{< /tab >}}
{{< /tabs >}}
```

#### Learning Resources
- End with **cards section** linking to related documentation:
```markdown
{{< cards >}}
{{< card link="/path" title="Title" subtitle="Description" icon="icon-name" >}}
{{< /cards >}}
```

### Changelog-Specific Rules

#### Front Matter Format
```yaml
---
title: Descriptive title about the update/feature
description: Brief one-line summary
date: YYYY-MM-DD
tags:
- relevant-product-tags
authors:
- name: Full Name
link: https://github.com/username
image: https://github.com/username.png?size=40
excludeSearch: true
---
```

#### Writing Style for Changelog
- **More personality allowed** - can be engaging and slightly conversational
- **Lead with impact** - explain why this matters to users
- **Provide context** - link to upstream releases, related changes
- **Include practical examples** - show users exactly how to use new features
- **Multiple entries per day acceptable** - don't batch unrelated updates

#### Content Flow Pattern
1. **Context paragraph** - What changed and why it matters
2. **Technical details** - Versions, new features, improvements
3. **Implementation examples** - Concrete commands or configuration
4. **Related links** - Documentation, examples, community resources

#### Command Examples in Changelog
Always show **complete command sequences**:
```bash
# Enable the feature
clever features enable operators

# Check current version
clever keycloak version check yourKeycloakNameOrId

# Update to latest
clever keycloak version update yourKeycloakNameOrId
```

## Technical Implementation Standards

### Code Examples
- **Always complete and runnable** - no placeholder variables without explanation
- **Include setup context** - show what directory, prerequisites needed
- **Use realistic names** - avoid "foo", "bar", "example"
- **Show expected output** when helpful

### Environment Variables
- **Exact variable names** with proper casing: `CC_NODE_BUILD_TOOL`
- **Show complete examples**:
```bash
CC_WEBROOT="public"
CC_RUN_COMMAND="npm start"
```
- **Explain the impact** of each variable

### File References
- **Absolute paths** when referencing project structure
- **Relative paths** when showing user actions: `./package.json`
- **Proper syntax highlighting** for code blocks

## Content Quality Checklist

### Before Publishing Documentation
- [ ] All commands tested and work as shown
- [ ] Environment variables verified with exact syntax
- [ ] Links point to correct, existing pages
- [ ] Examples use realistic project names and values
- [ ] No first-person pronouns (I, we, us, our)
- [ ] Short, clear sentences under 25 words
- [ ] Proper callouts for important information

### Before Publishing Changelog
- [ ] Clear benefit/impact stated upfront
- [ ] Version numbers and dates accurate
- [ ] Complete command examples provided
- [ ] Author information included with GitHub avatar
- [ ] Tags relevant to affected products
- [ ] Links to documentation and examples working

### Before Publishing Guides
- [ ] Step-by-step flow tested end-to-end
- [ ] All code examples complete and functional
- [ ] Prerequisites clearly stated
- [ ] Expected outcomes explained
- [ ] Hextra shortcodes used appropriately
- [ ] Learning resources section included

## Shared Content Usage

### Including Reusable Blocks
- Use `{{% content "filename" %}}` for basic shared content
- Use `{{% content-raw "filename" %}}` for content containing shortcodes
- Available shared blocks in `/shared/` directory include common procedures

### Creating New Shared Content
- Extract **commonly repeated information** into `/shared/filename.md`
- **No headings** in shared content (breaks table of contents)
- Focus on **procedural steps** rather than context

## Maintenance and Updates

### Keeping Content Current
- **Version numbers** should reflect current platform state
- **Screenshots and UI references** need regular updates
- **External links** should be verified periodically
- **Deprecated features** should be clearly marked

### Community Integration
- **Link to community discussions** for new features
- **Reference GitHub examples** when available
- **Encourage feedback** on experimental features
- **Update based on user reports** and common issues

## Deployment Configuration

The site is designed for Clever Cloud hosting with these environment variables:
- `CC_WEBROOT="public"`
- `CC_STATIC_AUTOBUILD_OUTDIR="public/developers"`
- `SERVER_ERROR_PAGE_404="developers/404.html"`
- Optional: `CC_HUGO_VERSION` to specify Hugo version

## Quality Assurance Requirements

### Build Verification
Always test changes with the `hugo` command before committing to ensure the build is functional. Fix any build errors immediately as they prevent deployment. Verify that all links, references, image paths, and shortcode syntax work correctly in the generated output.

### Content Quality Standards
Minimise the use of bullet points and lists. Use them only when essential for clarity or information efficiency.
Structure each section with 2-4 well-developed paragraphs. Avoid single text blocks or overly fragmented content.
Aim for paragraphs of 3-6 lines for optimal readability. Each paragraph should contain a complete thought or concept.
Use descriptive section titles. Titles should create useful table of contents entries.
Organise information logically so each section forms a coherent, useful unit.
Ensure all necessary information is included in readable prose, not fragmented lists.

This document ensures consistent, high-quality content across all Clever Cloud documentation while respecting the different styles appropriate for technical docs, educational guides, and announcement posts.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/new-content-form.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Suggest a new page or section
description: Suggest new content for the documentation
title: "Doc: "
labels: ["documentation"]
projects: "CleverCloud/10"
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this new content form!
- type: checkboxes
id: existing-issue
attributes:
label: Checking for existing issue
description: Have you checked your request hasn't been already addressed in another issue?
options:
- label: I have checked for existing [issues](https://github.com/CleverCloud/documentation/issues)
required: true
- type: textarea
id: describe-content
attributes:
label: "Describe the content you'd like to see"
description: "A clear and concise description of what you want to happen."
placeholder: "I'd like to have a new page/section about…"
validations:
required: true
18 changes: 18 additions & 0 deletions .github/external-doc-issue.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: External doc update from PR {{ env.PR_NUMBER }}
labels: documentation
---

## External documentation update needed

Update the external documentation:

- Author: @{{ payload.sender.login }}
- PR: {{ env.PR_URL }}
- Modified files: {{ env.CHANGED_FILES }}

Make a PR on one of these repositories:

- [Astro](https://github.com/withastro/docs)


14 changes: 14 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
## Describe your PR

_Summarize your changes here : explain what, how, and why. Be as explicict as you can on why your changes are needed and avoid implicit reasoning._


## Checklist

- [ ] My PR is related to an opened issue : #
- [ ] I've read the [contributing guidelines](/CleverCloud/documentation/blob/main/CONTRIBUTING.md)


## Reviewers
_Who should review these changes?_ @CleverCloud/reviewers

10 changes: 10 additions & 0 deletions .github/styles/.vale-config/0-Hugo.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[*.md]
# Exclude `{{< ... >}}`, `{{% ... %}}`, [Who]({{< ... >}})
TokenIgnores = ({{[%<] .* [%>]}}.*?{{[%<] ?/.* [%>]}}), \
(\[.+\]\({{< .+ >}}\)), \
[^\S\r\n]({{[%<] \w+ .+ [%>]}})\s, \
[^\S\r\n]({{[%<](?:/\*) .* (?:\*/)[%>]}})\s

# Exclude `{{< myshortcode `This is some <b>HTML</b>, ... >}}`
BlockIgnores = (?sm)^({{[%<] \w+ [^{]*?\s[%>]}})\n$, \
(?s) *({{< highlight [^>]* ?>}}.*?{{< ?/ ?highlight >}})
8 changes: 8 additions & 0 deletions .github/styles/Clever/ellipsis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extends: substitution
message: "Use '…' (ellipsis character) instead of '%s'"
level: warning
ignorecase: false

# Replace three consecutive periods with proper ellipsis
swap:
'\.\.\.': '…'
9 changes: 9 additions & 0 deletions .github/styles/Clever/hyphens.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
extends: existence
message: "Write '%s' with hyphens when used as an adjective before a noun, but as separate words when it appears as a noun phrase or after a verb"
level: suggestion
ignorecase: true
tokens:
- 'up-to-date'
- 'up to date'
- 'end-of-life'
- 'end of life'
8 changes: 8 additions & 0 deletions .github/styles/Clever/organisation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extends: substitution
message: "Use 'organisation' instead of 'organization'"
level: error
ignorecase: true

swap:
organization: organisation
organizations: organisations
Loading
Loading