Changes for page Pricing

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

From version 2.12
edited by Agnease
on 2026/07/10 05:06
Change comment: There is no comment for this version
To version 2.4
edited by Agnease
on 2026/07/10 04:22
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,13 +1,6 @@
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'))
11 11  #set ($startingPoints = [{
12 12   'icon': 'search',
13 13   'title': 'Review & diagnose',
... ... @@ -45,78 +45,67 @@
45 45   ],
46 46   'cta': 'Discuss support plan'
47 47  }])
48 -#set ($commonPackages = [{
41 +#set ($commonPackages = [
42 +{
49 49   'service': 'XWiki Health Check',
50 50   'price': '€390',
51 - 'description': 'Configuration, version, extension, security and stability review with written recommendations.',
52 - 'url': $securityURL
45 + 'description': 'Configuration, version, extension, security and stability review with written recommendations.'
53 53  },{
54 54   'service': 'Upgrade Readiness Review',
55 55   'price': '€390',
56 - 'description': 'Upgrade path, compatibility risks, customizations and effort estimate before implementation.',
57 - 'url': $upgradeURL
49 + 'description': 'Upgrade path, compatibility, customization risk and effort estimate before implementation.'
58 58  },{
59 59   'service': 'XWiki Authentication Review',
60 60   'price': '€290',
61 - 'description': 'Review of login flow, users, groups, access control and authentication options.',
62 - 'url': $authURL
53 + 'description': 'Review of login flow, user provisioning, groups, access control and authentication options.'
63 63  },{
64 64   'service': 'Urgent XWiki Troubleshooting',
65 - 'price': 'From €250/session',
66 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.',
67 - 'url': $maintenanceURL
56 + 'price': 'From €250',
57 + 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
68 68  },{
69 69   'service': 'Standard XWiki LTS Upgrade',
70 70   'price': 'From €790',
71 - 'description': 'Upgrade preparation, execution, compatibility checks and post-upgrade validation.',
72 - 'url': $upgradeURL
61 + 'description': 'Upgrade preparation, execution, basic compatibility checks and post-upgrade validation.'
73 73  },{
74 74   'service': 'XWiki MFA Installation & Configuration',
75 75   'price': 'From €490',
76 - 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.',
77 - 'url': $mfaURL
65 + 'description': 'MFA installation for the standard XWiki login flow. In SSO environments, MFA may be better enforced by the identity provider.'
78 78  },{
79 79   'service': 'OIDC / Microsoft Entra ID Setup',
80 80   'price': 'From €590',
81 - 'description': 'OpenID Connect setup, user mapping considerations, access review and validation.',
82 - 'url': $authURL
69 + 'description': 'OpenID Connect setup, user mapping considerations, group and access-control review, and validation.'
83 83  },{
84 84   'service': 'LDAP / Active Directory Review',
85 85   'price': 'From €390',
86 - 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.',
87 - 'url': $authURL
73 + 'description': 'LDAP or Active Directory configuration review, profile mapping and group mapping recommendations.'
88 88  },{
89 89   'service': 'Access Control Review',
90 90   'price': 'From €390',
91 - 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.',
92 - 'url': $authURL
77 + 'description': 'Review of groups, permissions, public/internal/restricted areas and subwiki access model.'
93 93  },{
94 94   'service': 'Advanced Authentication Work',
95 - 'price': 'Quoted',
96 - 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.',
97 - 'url': $authURL
80 + 'price': 'Quoted after review',
81 + 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
98 98  },{
99 - 'service': 'AWS Hosting Setup for XWiki',
100 - 'price': 'From €490',
101 - 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.',
102 - 'url': $maintenanceURL
103 -},{
104 104   'service': 'XWiki AWS Cloud Hosting',
105 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
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 + 'service': 'AWS Hosting Setup for XWiki',
89 + 'price': 'From €490',
90 + 'description': 'Initial AWS deployment setup for XWiki, including server preparation, database/runtime configuration, HTTPS setup and basic backup strategy.'
108 108  }])
109 109  #set ($supportPlans = [{
110 110   'icon': 'leaf',
111 111   'title': 'Essential Support',
112 112   'price': '€390/month',
113 - 'description': 'For small teams that need occasional XWiki help at a predictable monthly cost.',
96 + 'description': 'For small teams that need occasional XWiki help.',
114 114   'items': [
115 - 'Up to 1 support day/month',
98 + 'Up to 4 hours/month',
116 116   'Email support',
117 - 'Troubleshooting and guidance',
118 118   'Small configuration fixes',
119 - 'Upgrade and security recommendations'
101 + 'Upgrade and security guidance'
120 120   ],
121 121   'cta': 'Request support plan'
122 122  },{
... ... @@ -123,14 +123,13 @@
123 123   'icon': 'check-circle',
124 124   'title': 'Standard Support',
125 125   'price': '€790/month',
126 - 'description': 'For active XWiki environments that need regular support, maintenance and small improvements.',
108 + 'description': 'For active XWiki environments that need regular support and maintenance.',
127 127   'items': [
128 - 'Up to 2 support days/month',
110 + 'Up to 8 hours/month',
129 129   'Prioritized support',
130 130   'Troubleshooting',
131 131   'Minor improvements',
132 - 'Maintenance guidance',
133 - 'Upgrade planning'
114 + 'Maintenance guidance'
134 134   ],
135 135   'cta': 'Request standard support'
136 136  },{
... ... @@ -139,7 +139,7 @@
139 139   'price': 'From €1,490/month',
140 140   'description': 'For business-critical XWiki platforms or organizations with ongoing XWiki work.',
141 141   'items': [
142 - 'Larger monthly support allocation',
123 + 'Larger monthly allocation',
143 143   'Prioritized handling',
144 144   'Upgrade planning',
145 145   'Authentication and extension support',
... ... @@ -150,23 +150,19 @@
150 150  #set ($complexProjects = [{
151 151   'icon': 'sitemap',
152 152   'title': 'Wiki farms',
153 - 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.',
154 - 'url': $authURL
134 + 'content': 'Restructuring, subwiki access models, internal and external collaboration areas.'
155 155  },{
156 156   'icon': 'exchange',
157 157   'title': 'Migrations',
158 - 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.',
159 - 'url': $migrationURL
138 + 'content': 'Content, platform or documentation migrations into a cleaner XWiki structure.'
160 160  },{
161 161   'icon': 'puzzle-piece',
162 162   'title': 'Custom applications',
163 - 'content': 'Workflow applications, structured data, dashboards and internal business tools.',
164 - 'url': $developmentURL
142 + 'content': 'Workflow applications, structured data, dashboards and internal business tools.'
165 165  },{
166 166   'icon': 'tachometer',
167 167   'title': 'Stability work',
168 - 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.',
169 - 'url': $maintenanceURL
146 + 'content': 'Performance, troubleshooting, upgrade cleanup and long-term maintainability improvements.'
170 170  }])
171 171  #set ($faqItems = [{
172 172   'question': 'Are these fixed prices?',
... ... @@ -200,8 +200,7 @@
200 200   <h1 id="pricing-title">XWiki Service Packages</h1>
201 201  
202 202   <p class="lead">
203 - Clear starting points for independent XWiki consulting, upgrades, authentication configuration,
204 - AWS hosting setup, troubleshooting and long-term maintenance.
180 + Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
205 205   </p>
206 206  
207 207   <ul class="benefits">
... ... @@ -210,7 +210,7 @@
210 210   <li>Fixed quotes for complex work</li>
211 211   </ul>
212 212  
213 - <div class="hero-actions">
189 + <div id="hero-cta">
214 214   <a class="btn btn-primary" href="$contactURL">Request a quote</a>
215 215   <a class="btn btn-secondary" href="#support">View monthly support</a>
216 216   </div>
... ... @@ -222,9 +222,8 @@
222 222   <div class="container">
223 223   <h2 id="starting-points-title">Three common ways to start</h2>
224 224   <p class="section-intro">
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.
201 + Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
202 + or set up ongoing support.
228 228   </p>
229 229  
230 230   <div class="pathways">
... ... @@ -255,7 +255,7 @@
255 255   </div>
256 256  </section>
257 257  
258 -<section class="industry-trust-section" aria-labelledby="pricing-note-title">
233 +<section aria-labelledby="pricing-note-title">
259 259   <div class="container">
260 260   <div class="industry-trust-panel">
261 261   <h2 id="pricing-note-title">Simple starting prices, reviewed scope when needed</h2>
... ... @@ -276,37 +276,24 @@
276 276   a quick review before confirming the final scope.
277 277   </p>
278 278  
279 - <div class="table-responsive">
280 - <table class="table table-bordered table-striped">
281 - <thead>
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)
282 282   <tr>
283 - <th>Service</th>
284 - <th>Starting price</th>
285 - <th>What it covers</th>
265 + <td><strong>$entry.service</strong></td>
266 + <td>$entry.price</td>
267 + <td>$entry.description</td>
286 286   </tr>
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>
269 + #end
270 + </tbody>
271 + </table>
310 310   </div>
311 311  </section>
312 312  
... ... @@ -358,9 +358,7 @@
358 358   </div>
359 359  
360 360   <p class="section-intro">
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.
323 + Larger features, migrations, major customizations and complex projects are quoted separately.
364 364   </p>
365 365   </div>
366 366  </section>
... ... @@ -379,13 +379,7 @@
379 379   <div class="widget">
380 380   <div class="icon">
381 381   <i class="fa fa-$entry.icon" aria-hidden="true"></i>
382 - <h4>
383 - #if ("$!entry.url" != '')
384 - <a href="$entry.url">$entry.title</a>
385 - #else
386 - $entry.title
387 - #end
388 - </h4>
342 + <h4>$entry.title</h4>
389 389   </div>
390 390   <p>$entry.content</p>
391 391   </div>
... ... @@ -392,7 +392,7 @@
392 392   #end
393 393   </div>
394 394  
395 - <div class="hero-actions">
349 + <div id="hero-cta">
396 396   <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
397 397   </div>
398 398   </div>
... ... @@ -436,117 +436,9 @@
436 436   },
437 437   "serviceType": "XWiki consulting, support, upgrades, authentication and maintenance",
438 438   "areaServed": "International",
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": "120",
495 - "priceCurrency": "EUR",
496 - "description": "Starting monthly price for small single-instance AWS hosting for XWiki."
497 - }]
498 - }
393 + "description": "XWiki service packages for upgrades, support, authentication, troubleshooting, maintenance and implementation."
499 499  }
500 500  </script>
501 501  
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>
551 551  {{/html}}
552 552  {{/velocity}}