Changes for page Pricing

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

From version 2.7
edited by Agnease
on 2026/07/10 04:23
Change comment: There is no comment for this version
To version 2.15
edited by Agnease
on 2026/07/10 05:14
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,13 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 3  #set ($contactURL = $xwiki.getURL('contact.WebHome'))
4 +#set ($upgradeURL = $xwiki.getURL('services.xwiki-upgrades'))
5 +#set ($maintenanceURL = $xwiki.getURL('services.xwiki-maintenance-support'))
6 +#set ($authURL = $xwiki.getURL('services.xwiki-authentication-access-control'))
7 +#set ($mfaURL = $xwiki.getURL('products.xwiki-two-factor-authentication'))
8 +#set ($securityURL = $xwiki.getURL('services.xwiki-security-review'))
9 +#set ($migrationURL = $xwiki.getURL('services.xwiki-migrations'))
10 +#set ($developmentURL = $xwiki.getURL('services.xwiki-development-integrations'))
4 4  #set ($startingPoints = [{
5 5   'icon': 'search',
6 6   'title': 'Review & diagnose',
... ... @@ -38,67 +38,78 @@
38 38   ],
39 39   'cta': 'Discuss support plan'
40 40  }])
41 -#set ($commonPackages = [
42 -{
48 +#set ($commonPackages = [{
43 43   'service': 'XWiki Health Check',
44 44   'price': '€390',
45 - 'description': 'Configuration, version, extension, security and stability review with written recommendations.'
51 + 'description': 'Configuration, version, extension, security and stability review with written recommendations.',
52 + 'url': $securityURL
46 46  },{
47 47   'service': 'Upgrade Readiness Review',
48 48   'price': '€390',
49 - 'description': 'Upgrade path, compatibility, customization risk and effort estimate before implementation.'
56 + 'description': 'Upgrade path, compatibility risks, customizations and effort estimate before implementation.',
57 + 'url': $upgradeURL
50 50  },{
51 51   'service': 'XWiki Authentication Review',
52 52   'price': '€290',
53 - 'description': 'Review of login flow, user provisioning, groups, access control and authentication options.'
61 + 'description': 'Review of login flow, users, groups, access control and authentication options.',
62 + 'url': $authURL
54 54  },{
55 55   'service': 'Urgent XWiki Troubleshooting',
56 - 'price': 'From €250',
57 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
65 + 'price': 'From €250/session',
66 + 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.',
67 + 'url': $maintenanceURL
58 58  },{
59 59   'service': 'Standard XWiki LTS Upgrade',
60 60   'price': 'From €790',
61 - 'description': 'Upgrade preparation, execution, basic compatibility checks and post-upgrade validation.'
71 + 'description': 'Upgrade preparation, execution, compatibility checks and post-upgrade validation.',
72 + 'url': $upgradeURL
62 62  },{
63 63   'service': 'XWiki MFA Installation & Configuration',
64 64   'price': 'From €490',
65 - 'description': 'MFA installation for the standard XWiki login flow. In SSO environments, MFA may be better enforced by the identity provider.'
76 + 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.',
77 + 'url': $mfaURL
66 66  },{
67 67   'service': 'OIDC / Microsoft Entra ID Setup',
68 68   'price': 'From €590',
69 - 'description': 'OpenID Connect setup, user mapping considerations, group and access-control review, and validation.'
81 + 'description': 'OpenID Connect setup, user mapping considerations, access review and validation.',
82 + 'url': $authURL
70 70  },{
71 71   'service': 'LDAP / Active Directory Review',
72 72   'price': 'From €390',
73 - 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.'
86 + 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.',
87 + 'url': $authURL
74 74  },{
75 75   'service': 'Access Control Review',
76 76   'price': 'From €390',
77 - 'description': 'Review of groups, permissions, public/internal/restricted areas and subwiki access model.'
91 + 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.',
92 + 'url': $authURL
78 78  },{
79 79   'service': 'Advanced Authentication Work',
80 - 'price': 'Quoted after review',
81 - 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
95 + 'price': 'Quoted',
96 + 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.',
97 + 'url': $authURL
82 82  },{
83 - 'service': 'XWiki AWS Cloud Hosting',
84 - 'price': 'From €120/month',
85 - 'description': 'Single-instance AWS hosting for small XWiki environments, including cloud server, storage, basic backups and modest traffic. Larger storage, high availability, managed databases or high-traffic environments are quoted separately.'
86 -},
87 -{
88 88   'service': 'AWS Hosting Setup for XWiki',
89 89   'price': 'From €490',
90 - 'description': 'Initial AWS deployment setup for XWiki, including server preparation, database/runtime configuration, HTTPS setup and basic backup strategy.'
101 + 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.',
102 + 'url': $maintenanceURL
103 +},{
104 + 'service': 'XWiki AWS Cloud Hosting',
105 + 'price': 'From €120/month',
106 + 'description': 'Single-instance AWS hosting for small XWiki environments with storage, basic backups and modest traffic.',
107 + 'url': $maintenanceURL
91 91  }])
92 92  #set ($supportPlans = [{
93 93   'icon': 'leaf',
94 94   'title': 'Essential Support',
95 95   'price': '€390/month',
96 - 'description': 'For small teams that need occasional XWiki help.',
113 + 'description': 'For small teams that need occasional XWiki help at a predictable monthly cost.',
97 97   'items': [
98 - 'Up to 4 hours/month',
115 + 'Up to 1 support day/month',
99 99   'Email support',
117 + 'Troubleshooting and guidance',
100 100   'Small configuration fixes',
101 - 'Upgrade and security guidance'
119 + 'Upgrade and security recommendations'
102 102   ],
103 103   'cta': 'Request support plan'
104 104  },{
... ... @@ -105,13 +105,14 @@
105 105   'icon': 'check-circle',
106 106   'title': 'Standard Support',
107 107   'price': '€790/month',
108 - 'description': 'For active XWiki environments that need regular support and maintenance.',
126 + 'description': 'For active XWiki environments that need regular support, maintenance and small improvements.',
109 109   'items': [
110 - 'Up to 8 hours/month',
128 + 'Up to 2 support days/month',
111 111   'Prioritized support',
112 112   'Troubleshooting',
113 113   'Minor improvements',
114 - 'Maintenance guidance'
132 + 'Maintenance guidance',
133 + 'Upgrade planning'
115 115   ],
116 116   'cta': 'Request standard support'
117 117  },{
... ... @@ -120,7 +120,7 @@
120 120   'price': 'From €1,490/month',
121 121   'description': 'For business-critical XWiki platforms or organizations with ongoing XWiki work.',
122 122   'items': [
123 - 'Larger monthly allocation',
142 + 'Larger monthly support allocation',
124 124   'Prioritized handling',
125 125   'Upgrade planning',
126 126   'Authentication and extension support',
... ... @@ -131,19 +131,23 @@
131 131  #set ($complexProjects = [{
132 132   'icon': 'sitemap',
133 133   'title': 'Wiki farms',
134 - 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.'
153 + 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.',
154 + 'url': $authURL
135 135  },{
136 136   'icon': 'exchange',
137 137   'title': 'Migrations',
138 - 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.'
158 + 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.',
159 + 'url': $migrationURL
139 139  },{
140 140   'icon': 'puzzle-piece',
141 141   'title': 'Custom applications',
142 - 'content': 'Workflow applications, structured data, dashboards and internal business tools.'
163 + 'content': 'Workflow applications, structured data, dashboards and internal business tools.',
164 + 'url': $developmentURL
143 143  },{
144 144   'icon': 'tachometer',
145 145   'title': 'Stability work',
146 - 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.'
168 + 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.',
169 + 'url': $maintenanceURL
147 147  }])
148 148  #set ($faqItems = [{
149 149   'question': 'Are these fixed prices?',
... ... @@ -177,7 +177,8 @@
177 177   <h1 id="pricing-title">XWiki Service Packages</h1>
178 178  
179 179   <p class="lead">
180 - Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
203 + Clear starting points for independent XWiki consulting, upgrades, authentication configuration,
204 + AWS hosting setup, troubleshooting and long-term maintenance.
181 181   </p>
182 182  
183 183   <ul class="benefits">
... ... @@ -186,7 +186,7 @@
186 186   <li>Fixed quotes for complex work</li>
187 187   </ul>
188 188  
189 - <div id="hero-cta">
213 + <div class="hero-actions">
190 190   <a class="btn btn-primary" href="$contactURL">Request a quote</a>
191 191   <a class="btn btn-secondary" href="#support">View monthly support</a>
192 192   </div>
... ... @@ -198,8 +198,9 @@
198 198   <div class="container">
199 199   <h2 id="starting-points-title">Three common ways to start</h2>
200 200   <p class="section-intro">
201 - Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
202 - or set up ongoing support.
225 + Agnease provides independent XWiki consulting, upgrade support, authentication configuration,
226 + AWS hosting setup, troubleshooting and long-term maintenance for existing XWiki installations.
227 + Most requests begin by reviewing the current setup, implementing a defined change, or setting up regular support.
203 203   </p>
204 204  
205 205   <div class="pathways">
... ... @@ -230,7 +230,7 @@
230 230   </div>
231 231  </section>
232 232  
233 -<section aria-labelledby="pricing-note-title">
258 +<section class="industry-trust-section" aria-labelledby="pricing-note-title">
234 234   <div class="container">
235 235   <div class="industry-trust-panel">
236 236   <h2 id="pricing-note-title">Simple starting prices, reviewed scope when needed</h2>
... ... @@ -251,24 +251,37 @@
251 251   a quick review before confirming the final scope.
252 252   </p>
253 253  
254 - <table class="table table-bordered table-striped">
255 - <thead>
256 - <tr>
257 - <th>Service</th>
258 - <th>Starting price</th>
259 - <th>What it covers</th>
260 - </tr>
261 - </thead>
262 - <tbody>
263 - #foreach ($entry in $commonPackages)
279 + <div class="table-responsive">
280 + <table class="table table-bordered table-striped">
281 + <thead>
264 264   <tr>
265 - <td><strong>$entry.service</strong></td>
266 - <td>$entry.price</td>
267 - <td>$entry.description</td>
283 + <th>Service</th>
284 + <th>Starting price</th>
285 + <th>What it covers</th>
268 268   </tr>
269 - #end
270 - </tbody>
271 - </table>
287 + </thead>
288 + <tbody>
289 + #foreach ($entry in $commonPackages)
290 + <tr>
291 + <td>
292 + #if ("$!entry.url" != '')
293 + <strong><a href="$entry.url">$entry.service</a></strong>
294 + #else
295 + <strong>$entry.service</strong>
296 + #end
297 + </td>
298 + <td>$entry.price</td>
299 + <td>$entry.description</td>
300 + </tr>
301 + #end
302 + </tbody>
303 + </table>
304 + </div>
305 +
306 + <p class="section-intro">
307 + AWS hosting prices are starting points for small single-instance XWiki environments. Larger storage,
308 + high availability, managed databases, heavier traffic or stricter monitoring requirements are quoted separately.
309 + </p>
272 272   </div>
273 273  </section>
274 274  
... ... @@ -320,7 +320,9 @@
320 320   </div>
321 321  
322 322   <p class="section-intro">
323 - Larger features, migrations, major customizations and complex projects are quoted separately.
361 + Support plans are intended for remote XWiki support, troubleshooting, maintenance guidance,
362 + small configuration changes and minor improvements. Larger features, migrations, major customizations
363 + and complex projects are quoted separately.
324 324   </p>
325 325   </div>
326 326  </section>
... ... @@ -339,7 +339,13 @@
339 339   <div class="widget">
340 340   <div class="icon">
341 341   <i class="fa fa-$entry.icon" aria-hidden="true"></i>
342 - <h4>$entry.title</h4>
382 + <h4>
383 + #if ("$!entry.url" != '')
384 + <a href="$entry.url">$entry.title</a>
385 + #else
386 + $entry.title
387 + #end
388 + </h4>
343 343   </div>
344 344   <p>$entry.content</p>
345 345   </div>
... ... @@ -346,7 +346,7 @@
346 346   #end
347 347   </div>
348 348  
349 - <div id="hero-cta">
395 + <div class="hero-actions">
350 350   <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
351 351   </div>
352 352   </div>
... ... @@ -390,9 +390,117 @@
390 390   },
391 391   "serviceType": "XWiki consulting, support, upgrades, authentication and maintenance",
392 392   "areaServed": "International",
393 - "description": "XWiki service packages for upgrades, support, authentication, troubleshooting, maintenance and implementation."
439 + "description": "Independent XWiki consulting, support, upgrades, authentication configuration, AWS hosting setup, troubleshooting and long-term maintenance for existing XWiki installations.",
440 + "hasOfferCatalog": {
441 + "@type": "OfferCatalog",
442 + "name": "Agnease XWiki service packages",
443 + "itemListElement": [{
444 + "@type": "Offer",
445 + "name": "XWiki Health Check",
446 + "price": "390",
447 + "priceCurrency": "EUR",
448 + "description": "Configuration, version, extension, security and stability review with written recommendations."
449 + },{
450 + "@type": "Offer",
451 + "name": "Upgrade Readiness Review",
452 + "price": "390",
453 + "priceCurrency": "EUR",
454 + "description": "Upgrade path, compatibility risks, customizations and effort estimate before implementation."
455 + },{
456 + "@type": "Offer",
457 + "name": "XWiki Authentication Review",
458 + "price": "290",
459 + "priceCurrency": "EUR",
460 + "description": "Review of login flow, users, groups, access control and authentication options."
461 + },{
462 + "@type": "Offer",
463 + "name": "Urgent XWiki Troubleshooting",
464 + "price": "250",
465 + "priceCurrency": "EUR",
466 + "description": "Starting price per session for live XWiki troubleshooting."
467 + },{
468 + "@type": "Offer",
469 + "name": "Standard XWiki LTS Upgrade",
470 + "price": "790",
471 + "priceCurrency": "EUR",
472 + "description": "Starting price for XWiki LTS upgrade preparation, execution and validation."
473 + },{
474 + "@type": "Offer",
475 + "name": "XWiki MFA Installation & Configuration",
476 + "price": "490",
477 + "priceCurrency": "EUR",
478 + "description": "Starting price for MFA setup for the standard XWiki login flow."
479 + },{
480 + "@type": "Offer",
481 + "name": "OIDC / Microsoft Entra ID Setup",
482 + "price": "590",
483 + "priceCurrency": "EUR",
484 + "description": "Starting price for OpenID Connect setup and validation for XWiki."
485 + },{
486 + "@type": "Offer",
487 + "name": "AWS Hosting Setup for XWiki",
488 + "price": "490",
489 + "priceCurrency": "EUR",
490 + "description": "Starting price for initial AWS deployment setup for XWiki."
491 + },{
492 + "@type": "Offer",
493 + "name": "XWiki AWS Cloud Hosting",
494 + "price": "59",
495 + "priceCurrency": "EUR",
496 + "description": "Starting monthly price for small single-instance AWS hosting for XWiki."
497 + }]
498 + }
394 394  }
395 395  </script>
396 396  
502 +<script type="application/ld+json">
503 +{
504 + "@context": "https://schema.org",
505 + "@type": "FAQPage",
506 + "mainEntity": [{
507 + "@type": "Question",
508 + "name": "Are these fixed prices?",
509 + "acceptedAnswer": {
510 + "@type": "Answer",
511 + "text": "Some services have fixed starting prices. Larger or more complex projects are reviewed first and quoted separately, so the scope, risks and required testing are clear before implementation starts."
512 + }
513 + },{
514 + "@type": "Question",
515 + "name": "Do you charge hourly?",
516 + "acceptedAnswer": {
517 + "@type": "Answer",
518 + "text": "For support plans, time allocation is used to manage monthly work. For projects, Agnease aims to provide clear service packages or fixed quotes whenever the scope can be defined."
519 + }
520 + },{
521 + "@type": "Question",
522 + "name": "Can you work on existing XWiki installations?",
523 + "acceptedAnswer": {
524 + "@type": "Answer",
525 + "text": "Yes. Agnease works with existing XWiki instances, including upgrades, troubleshooting, authentication, customizations, extensions and long-term maintenance."
526 + }
527 + },{
528 + "@type": "Question",
529 + "name": "What happens if my XWiki instance is more complex?",
530 + "acceptedAnswer": {
531 + "@type": "Answer",
532 + "text": "Agnease first reviews the current setup, identifies risks and dependencies, and then provides a quote based on the actual scope."
533 + }
534 + },{
535 + "@type": "Question",
536 + "name": "Can I book a call directly?",
537 + "acceptedAnswer": {
538 + "@type": "Answer",
539 + "text": "Yes. The contact form includes a call booking option, but sending a short description first helps Agnease understand the context before the discussion."
540 + }
541 + },{
542 + "@type": "Question",
543 + "name": "Do prices include external costs?",
544 + "acceptedAnswer": {
545 + "@type": "Answer",
546 + "text": "The prices on this page cover Agnease services. External hosting, infrastructure or third-party costs are discussed separately when relevant."
547 + }
548 + }]
549 +}
550 +</script>
397 397  {{/html}}
398 398  {{/velocity}}