Changes for page Pricing

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

From version 2.10
edited by Agnease
on 2026/07/10 04:29
Change comment: There is no comment for this version
To version 2.16
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',
... ... @@ -41,51 +41,63 @@
41 41  #set ($commonPackages = [{
42 42   'service': 'XWiki Health Check',
43 43   'price': '€390',
44 - '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
45 45  },{
46 46   'service': 'Upgrade Readiness Review',
47 47   'price': '€390',
48 - 'description': 'Upgrade path, compatibility risks, customizations and effort estimate before implementation.'
56 + 'description': 'Upgrade path, compatibility risks, customizations and effort estimate before implementation.',
57 + 'url': $upgradeURL
49 49  },{
50 50   'service': 'XWiki Authentication Review',
51 51   'price': '€290',
52 - 'description': 'Review of login flow, users, groups, access control and authentication options.'
61 + 'description': 'Review of login flow, users, groups, access control and authentication options.',
62 + 'url': $authURL
53 53  },{
54 54   'service': 'Urgent XWiki Troubleshooting',
55 55   'price': 'From €250/session',
56 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
66 + 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.',
67 + 'url': $maintenanceURL
57 57  },{
58 58   'service': 'Standard XWiki LTS Upgrade',
59 59   'price': 'From €790',
60 - 'description': 'Upgrade preparation, execution, compatibility checks and post-upgrade validation.'
71 + 'description': 'Upgrade preparation, execution, compatibility checks and post-upgrade validation.',
72 + 'url': $upgradeURL
61 61  },{
62 62   'service': 'XWiki MFA Installation & Configuration',
63 63   'price': 'From €490',
64 - 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.'
76 + 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.',
77 + 'url': $mfaURL
65 65  },{
66 66   'service': 'OIDC / Microsoft Entra ID Setup',
67 67   'price': 'From €590',
68 - 'description': 'OpenID Connect setup, user mapping considerations, access review and validation.'
81 + 'description': 'OpenID Connect setup, user mapping considerations, access review and validation.',
82 + 'url': $authURL
69 69  },{
70 70   'service': 'LDAP / Active Directory Review',
71 71   'price': 'From €390',
72 - '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
73 73  },{
74 74   'service': 'Access Control Review',
75 75   'price': 'From €390',
76 - 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.'
91 + 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.',
92 + 'url': $authURL
77 77  },{
78 78   'service': 'Advanced Authentication Work',
79 79   'price': 'Quoted',
80 - 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
96 + 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.',
97 + 'url': $authURL
81 81  },{
82 82   'service': 'AWS Hosting Setup for XWiki',
83 83   'price': 'From €490',
84 - 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.'
101 + 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.',
102 + 'url': $maintenanceURL
85 85  },{
86 86   'service': 'XWiki AWS Cloud Hosting',
87 - 'price': 'From €120/month',
88 - 'description': 'Single-instance AWS hosting for small XWiki environments with storage, basic backups and modest traffic.'
105 + 'price': 'From €59/month',
106 + 'description': 'Single-instance AWS hosting for small XWiki environments with storage, basic backups and modest traffic.',
107 + 'url': $maintenanceURL
89 89  }])
90 90  #set ($supportPlans = [{
91 91   'icon': 'leaf',
... ... @@ -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}}