Changes for page Pricing

Last modified by Agnease on 2026/07/10 06:00

From version 1.16
edited by Agnease
on 2026/07/10 04:02
Change comment: There is no comment for this version
To version 1.2
edited by Agnease
on 2026/07/10 03:26
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -Pricing
1 +pricing
Content
... ... @@ -3,84 +3,143 @@
3 3  
4 4  #set ($contactURL = $xwiki.getURL('contact.WebHome'))
5 5  
6 -#set ($startingPoints = [{
7 - 'icon': 'search',
8 - 'title': 'Review & diagnose',
9 - 'price': 'From 290',
10 - 'description': 'For teams that need to understand risks, issues or the current XWiki state before making changes.',
6 +#set ($quickStartPackages = [{
7 + 'icon': 'stethoscope',
8 + 'title': 'XWiki Health Check',
9 + 'price': '€390',
10 + 'description': 'For organizations that want a clear view of their current XWiki setup.',
11 11   'items': [
12 - 'Health checks',
13 - 'Upgrade readiness reviews',
14 - 'Authentication reviews',
15 - 'Urgent troubleshooting'
12 + 'Configuration review',
13 + 'Version and extension review',
14 + 'Security and stability observations',
15 + 'Upgrade readiness notes',
16 + 'Written recommendations'
16 16   ],
17 - 'cta': 'Start with a review'
18 + 'cta': 'Request health check'
18 18  },{
19 - 'icon': 'cogs',
20 - 'title': 'Implement changes',
21 - 'price': 'From 490',
22 - 'description': 'For teams ready to make a specific XWiki change, upgrade or authentication improvement.',
20 + 'icon': 'road',
21 + 'title': 'Upgrade Readiness Review',
22 + 'price': '€390',
23 + 'description': 'For teams planning an upgrade and wanting to understand risks before starting.',
23 23   'items': [
24 - 'XWiki LTS upgrades',
25 - 'MFA installation',
26 - 'OIDC / Entra ID setup',
27 - 'LDAP / Active Directory work'
25 + 'Current version review',
26 + 'Extension compatibility check',
27 + 'Customization risk review',
28 + 'Recommended upgrade path',
29 + 'Effort estimate'
28 28   ],
29 - 'cta': 'Request implementation quote'
31 + 'cta': 'Plan an upgrade'
30 30  },{
33 + 'icon': 'lock',
34 + 'title': 'XWiki Authentication Review',
35 + 'price': '€290',
36 + 'description': 'For teams that want to understand their current login, user provisioning and access-control setup.',
37 + 'items': [
38 + 'Current authentication setup review',
39 + 'Login flow observations',
40 + 'User and group provisioning review',
41 + 'Access control considerations',
42 + 'SSO, LDAP, OIDC or MFA recommendations'
43 + ],
44 + 'cta': 'Review authentication'
45 +},{
31 31   'icon': 'life-ring',
32 - 'title': 'Maintain & support',
33 - 'price': 'From €390/month',
34 - 'description': 'For organizations that need regular XWiki help, troubleshooting, maintenance and planning.',
47 + 'title': 'Urgent XWiki Troubleshooting',
48 + 'price': 'From €250',
49 + 'description': 'For blocking issues, failed upgrades, errors or urgent production problems.',
35 35   'items': [
36 - 'Monthly support',
37 - 'Troubleshooting',
38 - 'Maintenance guidance',
39 - 'Upgrade planning'
51 + 'Live troubleshooting session',
52 + 'Log analysis',
53 + 'Configuration review',
54 + 'Immediate recommendations',
55 + 'Fix plan when more work is needed'
40 40   ],
41 - 'cta': 'Discuss support plan'
57 + 'cta': 'Request urgent support'
42 42  }])
43 43  
44 -#set ($commonPackages = [{
45 - 'service': 'XWiki Health Check',
46 - 'price': '€390',
47 - 'description': 'Configuration, version, extension, security and stability review with written recommendations.'
48 -},{
49 - 'service': 'Upgrade Readiness Review',
50 - 'price': '€390',
51 - 'description': 'Upgrade path, compatibility, customization risk and effort estimate before implementation.'
52 -},{
53 - 'service': 'XWiki Authentication Review',
54 - 'price': '€290',
55 - 'description': 'Review of login flow, user provisioning, groups, access control and authentication options.'
56 -},{
57 - 'service': 'Urgent XWiki Troubleshooting',
58 - 'price': 'From €250',
59 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
60 -},{
61 - 'service': 'Standard XWiki LTS Upgrade',
60 +#set ($implementationPackages = [{
61 + 'icon': 'refresh',
62 + 'title': 'Standard XWiki LTS Upgrade',
62 62   'price': 'From €790',
63 - 'description': 'Upgrade preparation, execution, basic compatibility checks and post-upgrade validation.'
64 + 'description': 'For standard XWiki instances with a clear upgrade path and limited customizations.',
65 + 'items': [
66 + 'Upgrade preparation',
67 + 'Upgrade execution',
68 + 'Basic compatibility checks',
69 + 'Post-upgrade validation',
70 + 'Recommendations after completion'
71 + ],
72 + 'note': 'Complex upgrades, wiki farms, custom applications, authentication changes or infrastructure changes are quoted after review.',
73 + 'cta': 'Request upgrade quote'
64 64  },{
65 - 'service': 'XWiki MFA Installation & Configuration',
75 + 'icon': 'shield',
76 + 'title': 'XWiki MFA Installation & Configuration',
66 66   'price': 'From €490',
67 - 'description': 'MFA installation for the standard XWiki login flow. In SSO environments, MFA may be better enforced by the identity provider.'
78 + 'description': 'Installation and configuration of MFA for XWiki environments using the standard XWiki login flow.',
79 + 'items': [
80 + 'MFA application installation',
81 + 'Login flow integration',
82 + 'Basic configuration',
83 + 'Recovery and administration guidance',
84 + 'Basic testing and rollout recommendations'
85 + ],
86 + 'note': 'For environments using external SSO, MFA may be handled by the identity provider instead.',
87 + 'cta': 'Install MFA'
68 68  },{
69 - 'service': 'OIDC / Microsoft Entra ID Setup',
89 + 'icon': 'sign-in',
90 + 'title': 'OIDC / Microsoft Entra ID Setup',
70 70   'price': 'From €590',
71 - 'description': 'OpenID Connect setup, user mapping considerations, group and access-control review, and validation.'
72 -},{
73 - 'service': 'LDAP / Active Directory Review',
92 + 'description': 'Setup and validation of OpenID Connect authentication for XWiki environments.',
93 + 'items': [
94 + 'OIDC configuration',
95 + 'Authentication flow setup',
96 + 'User profile mapping considerations',
97 + 'Group and access-control considerations',
98 + 'Testing and administrator guidance'
99 + ],
100 + 'note': 'Useful for Microsoft Entra ID, Keycloak or another compatible OIDC provider.',
101 + 'cta': 'Set up OIDC / SSO'
102 +}])
103 +
104 +#set ($authenticationPackages = [{
105 + 'icon': 'key',
106 + 'title': 'LDAP / Active Directory Integration Review',
74 74   'price': 'From €390',
75 - 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.'
108 + 'description': 'For organizations using, migrating or troubleshooting LDAP or Active Directory authentication with XWiki.',
109 + 'items': [
110 + 'LDAP / Active Directory configuration review',
111 + 'User profile mapping review',
112 + 'Group mapping considerations',
113 + 'Login and synchronization observations',
114 + 'Recommended configuration improvements'
115 + ],
116 + 'cta': 'Review LDAP / AD setup'
76 76  },{
77 - 'service': 'Access Control Review',
118 + 'icon': 'sitemap',
119 + 'title': 'Access Control Review',
78 78   'price': 'From €390',
79 - 'description': 'Review of groups, permissions, public/internal/restricted areas and subwiki access model.'
121 + 'description': 'For teams that need clearer groups, permissions and access rules across spaces or subwikis.',
122 + 'items': [
123 + 'Group and rights review',
124 + 'Public, internal and restricted area review',
125 + 'Subwiki access considerations',
126 + 'Permission risk observations',
127 + 'Governance recommendations'
128 + ],
129 + 'cta': 'Review access control'
80 80  },{
81 - 'service': 'Advanced Authentication Work',
131 + 'icon': 'cogs',
132 + 'title': 'Advanced Authentication Work',
82 82   'price': 'Quoted after review',
83 - 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
134 + 'description': 'For custom authentication behavior, container authentication, special login flows or complex wiki farm authentication needs.',
135 + 'items': [
136 + 'Custom authenticator analysis',
137 + 'Container-based authentication review',
138 + 'Special login redirects or flows',
139 + 'Internal and external user strategy',
140 + 'Implementation quote after review'
141 + ],
142 + 'cta': 'Request authentication quote'
84 84  }])
85 85  
86 86  #set ($supportPlans = [{
... ... @@ -123,23 +123,15 @@
123 123   'cta': 'Discuss extended support'
124 124  }])
125 125  
126 -#set ($complexProjects = [{
127 - 'icon': 'sitemap',
128 - 'title': 'Wiki farms',
129 - 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.'
130 -},{
131 - 'icon': 'exchange',
132 - 'title': 'Migrations',
133 - 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.'
134 -},{
135 - 'icon': 'puzzle-piece',
136 - 'title': 'Custom applications',
137 - 'content': 'Workflow applications, structured data, dashboards and internal business tools.'
138 -},{
139 - 'icon': 'tachometer',
140 - 'title': 'Stability work',
141 - 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.'
142 -}])
185 +#set ($complexProjects = [
186 + 'Wiki farm restructuring',
187 + 'Major XWiki LTS upgrades',
188 + 'Microsoft Entra ID, OIDC, LDAP or SAML integrations',
189 + 'Custom workflow applications',
190 + 'Intranet and knowledge platform development',
191 + 'Performance and stability improvements',
192 + 'Content and platform migrations'
193 +])
143 143  
144 144  #set ($faqItems = [{
145 145   'question': 'Are these fixed prices?',
... ... @@ -163,201 +163,233 @@
163 163  
164 164  {{html clean="false"}}
165 165  
166 -<section class="hero hero-centered" aria-labelledby="pricing-title">
217 +<section class="resource-header" aria-labelledby="hero-title">
167 167   <div class="container">
168 - <div class="hero-inner">
219 + <div class="text-center">
169 169   <div class="hero-kicker">
170 170   <i class="fa fa-eur" aria-hidden="true"></i>
171 171   XWiki consulting, support and implementation
172 172   </div>
224 + </div>
173 173  
174 - <h1 id="pricing-title">XWiki Service Packages</h1>
226 + <h1 id="hero-title">XWiki Service Packages</h1>
175 175  
176 - <p class="lead">
177 - Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
178 - </p>
228 + <p class="resource-summary">
229 + Clear starting points for XWiki upgrades, support, authentication, troubleshooting and long-term maintenance.
230 + </p>
179 179  
180 - <ul class="benefits">
181 - <li>Specialized XWiki consulting</li>
182 - <li>Practical starting prices</li>
183 - <li>Fixed quotes for complex work</li>
184 - </ul>
185 -
186 - <div id="hero-cta">
187 - <a class="btn btn-primary" href="$contactURL">Request a quote</a>
188 - </div>
232 + <div id="hero-cta">
233 + <a class="btn btn-primary" href="$contactURL">Request a quote</a>
234 + <a class="btn btn-secondary" href="$contactURL">Book an initial consultation</a>
189 189   </div>
190 190   </div>
191 191  </section>
192 192  
193 -<section id="starting-points" aria-labelledby="starting-points-title">
239 +<section class="resource-page">
194 194   <div class="container">
195 - <h2 id="starting-points-title">Choose your starting point</h2>
196 - <p class="section-intro">
197 - Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
198 - or set up ongoing support.
199 - </p>
241 + <div class="resource-layout">
200 200  
201 - <div class="pathways">
202 - #foreach ($entry in $startingPoints)
203 - <article class="pathway-card">
204 - <div class="card-heading">
205 - <div class="pathway-icon" aria-hidden="true">
206 - <i class="fa fa-$entry.icon"></i>
207 - </div>
208 - <h3>$entry.title</h3>
209 - </div>
243 + <aside class="resource-sidebar" aria-label="Pricing page summary">
244 + <h4>Service packages</h4>
245 + <ul>
246 + <li><a href="#quick-start">Quick-start reviews</a></li>
247 + <li><a href="#implementation">Implementation packages</a></li>
248 + <li><a href="#authentication">Authentication & access control</a></li>
249 + <li><a href="#support">Monthly support plans</a></li>
250 + <li><a href="#complex-projects">Complex projects</a></li>
251 + <li><a href="#upgrade-offer">New customer offer</a></li>
252 + <li><a href="#faq">FAQ</a></li>
253 + </ul>
254 + </aside>
210 210  
211 - <p><strong>$entry.price</strong></p>
212 - <p>$entry.description</p>
256 + <article class="resource-content services">
213 213  
214 - <ul>
215 - #foreach ($item in $entry.items)
216 - <li>$item</li>
217 - #end
218 - </ul>
258 + <p>
259 + Agnease provides practical XWiki service packages for common needs such as upgrades, reviews,
260 + MFA, SSO, troubleshooting and support. When an environment is more complex, Agnease reviews
261 + the setup first and provides a fixed project quote.
262 + </p>
219 219  
220 - <div class="card-link">
221 - <a href="$contactURL">$entry.cta</a>
222 - </div>
223 - </article>
224 - #end
225 - </div>
226 - </div>
227 -</section>
264 + <div class="resource-note">
265 + <p>
266 + <strong>Pricing note:</strong> Prices are starting points and exclude VAT where applicable.
267 + Final pricing depends on the XWiki version, installed extensions, customizations, hosting setup,
268 + authentication configuration, wiki farm complexity and required testing.
269 + </p>
270 + </div>
228 228  
229 -<section aria-labelledby="pricing-note-title">
230 - <div class="container">
231 - <div class="industry-trust-panel">
232 - <h2 id="pricing-note-title">Simple starting prices, reviewed scope when needed</h2>
233 - <p class="section-intro">
234 - Prices are starting points and exclude VAT where applicable. Final pricing depends on the XWiki version,
235 - installed extensions, customizations, hosting setup, authentication configuration, wiki farm complexity
236 - and required testing.
237 - </p>
238 - </div>
239 - </div>
240 -</section>
272 + <h2 id="quick-start">Quick-start reviews</h2>
241 241  
242 -<section id="common-packages" aria-labelledby="common-packages-title">
243 - <div class="container">
244 - <h2 id="common-packages-title">Common starting packages</h2>
245 - <p class="section-intro">
246 - These are practical entry points for common XWiki needs. Some can start directly, while others require
247 - a quick review before confirming the final scope.
248 - </p>
274 + <p>
275 + These packages are useful when you need a clear technical starting point before deciding on an
276 + upgrade, authentication change, support plan or larger implementation.
277 + </p>
249 249  
250 - <table class="table table-bordered table-striped">
251 - <thead>
252 - <tr>
253 - <th>Service</th>
254 - <th>Starting price</th>
255 - <th>What it covers</th>
256 - </tr>
257 - </thead>
258 - <tbody>
259 - #foreach ($entry in $commonPackages)
260 - <tr>
261 - <td><strong>$entry.service</strong></td>
262 - <td>$entry.price</td>
263 - <td>$entry.description</td>
264 - </tr>
265 - #end
266 - </tbody>
267 - </table>
268 - </div>
269 -</section>
279 + <div class="services-grid">
280 + #foreach ($entry in $quickStartPackages)
281 + <article class="service">
282 + <div class="service-icon" aria-hidden="true">
283 + <i class="fa fa-$entry.icon"></i>
284 + </div>
285 + <div class="service-body">
286 + <h4>$entry.title</h4>
287 + <p><strong>$entry.price</strong></p>
288 + <p>$entry.description</p>
289 + <ul>
290 + #foreach ($item in $entry.items)
291 + <li>$item</li>
292 + #end
293 + </ul>
294 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
295 + </div>
296 + </article>
297 + #end
298 + </div>
270 270  
271 -<section id="upgrade-offer" aria-labelledby="upgrade-offer-title" class="industry-trust-section">
272 - <div class="container">
273 - <div class="industry-trust-panel">
274 - <h2 id="upgrade-offer-title">New customer upgrade offer</h2>
275 - <p class="section-intro">
276 - If the Upgrade Readiness Review leads to an upgrade project with Agnease, the review cost can be credited
277 - toward the upgrade implementation.
278 - </p>
279 - <a class="btn btn-primary" href="$contactURL">Plan an upgrade</a>
280 - </div>
281 - </div>
282 -</section>
300 + <h2 id="implementation">Implementation packages</h2>
283 283  
284 -<section id="support" aria-labelledby="support-title">
285 - <div class="container">
286 - <h2 id="support-title">Monthly support plans</h2>
287 - <p class="section-intro">
288 - Support plans are designed for organizations that already use XWiki and want regular help with troubleshooting,
289 - maintenance, upgrades, configuration, authentication and small improvements.
290 - </p>
302 + <p>
303 + Implementation packages are starting points for practical XWiki work where the scope is reasonably
304 + clear. More complex environments are reviewed before a final quote is provided.
305 + </p>
291 291  
292 - <div class="pathways">
293 - #foreach ($entry in $supportPlans)
294 - <article class="pathway-card">
295 - <div class="card-heading">
296 - <div class="pathway-icon" aria-hidden="true">
297 - <i class="fa fa-$entry.icon"></i>
298 - </div>
299 - <h3>$entry.title</h3>
300 - </div>
307 + <div class="services-grid">
308 + #foreach ($entry in $implementationPackages)
309 + <article class="service">
310 + <div class="service-icon" aria-hidden="true">
311 + <i class="fa fa-$entry.icon"></i>
312 + </div>
313 + <div class="service-body">
314 + <h4>$entry.title</h4>
315 + <p><strong>$entry.price</strong></p>
316 + <p>$entry.description</p>
317 + <ul>
318 + #foreach ($item in $entry.items)
319 + <li>$item</li>
320 + #end
321 + </ul>
322 + <p><em>$entry.note</em></p>
323 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
324 + </div>
325 + </article>
326 + #end
327 + </div>
301 301  
302 - <p><strong>$entry.price</strong></p>
303 - <p>$entry.description</p>
329 + <h2 id="authentication">Authentication & access control</h2>
304 304  
305 - <ul>
306 - #foreach ($item in $entry.items)
307 - <li>$item</li>
308 - #end
309 - </ul>
331 + <p>
332 + XWiki authentication depends on the current login method, identity provider, user source,
333 + group mapping and access-control model. Agnease can help review, configure or improve
334 + standard XWiki login, LDAP, Active Directory, OpenID Connect, Microsoft Entra ID, MFA
335 + and more advanced authentication scenarios.
336 + </p>
310 310  
311 - <div class="card-link">
312 - <a href="$contactURL">$entry.cta</a>
313 - </div>
314 - </article>
315 - #end
316 - </div>
338 + <div class="resource-note">
339 + <p>
340 + <strong>Important:</strong> Authentication changes should be reviewed carefully because the right
341 + setup depends on the current XWiki version, identity provider, subwiki structure, user lifecycle
342 + and access-control requirements.
343 + </p>
344 + </div>
317 317  
318 - <p class="section-intro">
319 - Larger features, migrations, major customizations and complex projects are quoted separately.
320 - </p>
321 - </div>
322 -</section>
346 + <div class="services-grid">
347 + #foreach ($entry in $authenticationPackages)
348 + <article class="service">
349 + <div class="service-icon" aria-hidden="true">
350 + <i class="fa fa-$entry.icon"></i>
351 + </div>
352 + <div class="service-body">
353 + <h4>$entry.title</h4>
354 + <p><strong>$entry.price</strong></p>
355 + <p>$entry.description</p>
356 + <ul>
357 + #foreach ($item in $entry.items)
358 + <li>$item</li>
359 + #end
360 + </ul>
361 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
362 + </div>
363 + </article>
364 + #end
365 + </div>
323 323  
324 -<section id="complex-projects" aria-labelledby="complex-projects-title">
325 - <div class="container">
326 - <h2 id="complex-projects-title">Need something more complex?</h2>
327 - <p class="section-intro">
328 - Some XWiki projects cannot be priced responsibly before the environment is reviewed. For wiki farms,
329 - major upgrades, migrations, custom applications, authentication changes or infrastructure restructuring,
330 - Agnease first reviews the current setup and then provides a fixed project quote.
331 - </p>
367 + <h2 id="support">Monthly support plans</h2>
332 332  
333 - <div class="widgets">
334 - #foreach ($entry in $complexProjects)
335 - <div class="widget">
336 - <div class="icon">
337 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
338 - <h4>$entry.title</h4>
339 - </div>
340 - <p>$entry.content</p>
369 + <p>
370 + Support plans are designed for organizations that already use XWiki and want regular help with
371 + troubleshooting, maintenance, upgrades, configuration, authentication and small improvements.
372 + </p>
373 +
374 + <div class="services-grid">
375 + #foreach ($entry in $supportPlans)
376 + <article class="service">
377 + <div class="service-icon" aria-hidden="true">
378 + <i class="fa fa-$entry.icon"></i>
379 + </div>
380 + <div class="service-body">
381 + <h4>$entry.title</h4>
382 + <p><strong>$entry.price</strong></p>
383 + <p>$entry.description</p>
384 + <ul>
385 + #foreach ($item in $entry.items)
386 + <li>$item</li>
387 + #end
388 + </ul>
389 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
390 + </div>
391 + </article>
392 + #end
341 341   </div>
342 - #end
343 - </div>
344 344  
345 - <div id="hero-cta">
346 - <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
347 - </div>
348 - </div>
349 -</section>
395 + <div class="resource-note">
396 + <p>
397 + Larger features, migrations, major customizations and complex projects are quoted separately.
398 + </p>
399 + </div>
350 350  
351 -<section id="faq" aria-labelledby="faq-title">
352 - <div class="container">
353 - <h2 id="faq-title">FAQ</h2>
401 + <h2 id="complex-projects">Need something more complex?</h2>
354 354  
355 - #foreach ($entry in $faqItems)
356 - <details class="resource-faq-item" #if ($foreach.first)open#end>
357 - <summary>$entry.question</summary>
358 - <p>$entry.answer</p>
359 - </details>
360 - #end
403 + <p>
404 + Some XWiki projects cannot be priced responsibly before the environment is reviewed. For wiki farms,
405 + major upgrades, migrations, custom applications, authentication changes or infrastructure restructuring,
406 + Agnease first reviews the current setup and then provides a fixed project quote.
407 + </p>
408 +
409 + <ul class="resource-checklist">
410 + #foreach ($item in $complexProjects)
411 + <li>$item</li>
412 + #end
413 + </ul>
414 +
415 + <div class="resource-cta">
416 + <h3>Request a project quote</h3>
417 + <p>
418 + Send a short description of your XWiki environment, current version, hosting setup and what you
419 + are trying to achieve.
420 + </p>
421 + <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
422 + </div>
423 +
424 + <h2 id="upgrade-offer">New customer upgrade offer</h2>
425 +
426 + <div class="resource-note">
427 + <p>
428 + <strong>If the Upgrade Readiness Review leads to an upgrade project with Agnease, the review cost
429 + can be credited toward the upgrade implementation.</strong>
430 + </p>
431 + </div>
432 +
433 + <h2 id="faq">FAQ</h2>
434 +
435 + #foreach ($entry in $faqItems)
436 + <details class="resource-faq-item" #if ($foreach.first)open#end>
437 + <summary>$entry.question</summary>
438 + <p>$entry.answer</p>
439 + </details>
440 + #end
441 +
442 + </article>
443 + </div>
361 361   </div>
362 362  </section>
363 363