Changes for page Pricing

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

From version 2.31
edited by Agnease
on 2026/07/10 05:20
Change comment: There is no comment for this version
To version 2.11
edited by Agnease
on 2026/07/10 04:30
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',
... ... @@ -48,63 +48,51 @@
48 48  #set ($commonPackages = [{
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
44 + '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
48 + 'description': 'Upgrade path, compatibility risks, customizations 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
52 + 'description': 'Review of login flow, users, groups, access control and authentication options.'
63 63  },{
64 64   'service': 'Urgent XWiki Troubleshooting',
65 65   'price': 'From €250/session',
66 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.',
67 - 'url': $maintenanceURL
56 + '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
60 + 'description': 'Upgrade preparation, execution, 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
64 + 'description': 'MFA setup for the standard XWiki login flow, with configuration, testing and guidance.'
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
68 + 'description': 'OpenID Connect setup, user mapping considerations, access 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
72 + '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
76 + 'description': 'Review of groups, permissions, restricted areas, public access and subwiki access model.'
93 93  },{
94 94   'service': 'Advanced Authentication Work',
95 95   'price': 'Quoted',
96 - 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.',
97 - 'url': $authURL
80 + 'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
98 98  },{
99 99   'service': 'AWS Hosting Setup for XWiki',
100 100   'price': 'From €490',
101 - 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.',
102 - 'url': $maintenanceURL
84 + 'description': 'Initial AWS deployment setup, including server preparation, HTTPS and basic backup strategy.'
103 103  },{
104 104   'service': 'XWiki AWS Cloud Hosting',
105 - 'price': 'From €49/month',
106 - 'description': 'Minimal single-instance AWS hosting for small XWiki environments, using EC2, Nginx, Docker, XWiki, database container, Let’s Encrypt SSL, instance storage and basic snapshots.',
107 - 'url': $maintenanceURL
87 + 'price': 'From €120/month',
88 + 'description': 'Single-instance AWS hosting for small XWiki environments with storage, basic backups and modest traffic.'
108 108  }])
109 109  #set ($supportPlans = [{
110 110   'icon': 'leaf',
... ... @@ -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,36 +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. The minimal setup uses one EC2 instance with Nginx, Docker, XWiki, database, Let’s Encrypt SSL, EBS storage and basic snapshots. Larger storage, higher traffic, high availability, managed databases, advanced monitoring or stricter backup requirements are quoted separately.
308 - </p>
269 + #end
270 + </tbody>
271 + </table>
309 309   </div>
310 310  </section>
311 311  
... ... @@ -378,13 +378,7 @@
378 378   <div class="widget">
379 379   <div class="icon">
380 380   <i class="fa fa-$entry.icon" aria-hidden="true"></i>
381 - <h4>
382 - #if ("$!entry.url" != '')
383 - <a href="$entry.url">$entry.title</a>
384 - #else
385 - $entry.title
386 - #end
387 - </h4>
344 + <h4>$entry.title</h4>
388 388   </div>
389 389   <p>$entry.content</p>
390 390   </div>
... ... @@ -391,7 +391,7 @@
391 391   #end
392 392   </div>
393 393  
394 - <div class="hero-actions">
351 + <div id="hero-cta">
395 395   <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
396 396   </div>
397 397   </div>
... ... @@ -435,117 +435,9 @@
435 435   },
436 436   "serviceType": "XWiki consulting, support, upgrades, authentication and maintenance",
437 437   "areaServed": "International",
438 - "description": "Independent XWiki consulting, support, upgrades, authentication configuration, AWS hosting setup, troubleshooting and long-term maintenance for existing XWiki installations.",
439 - "hasOfferCatalog": {
440 - "@type": "OfferCatalog",
441 - "name": "Agnease XWiki service packages",
442 - "itemListElement": [{
443 - "@type": "Offer",
444 - "name": "XWiki Health Check",
445 - "price": "390",
446 - "priceCurrency": "EUR",
447 - "description": "Configuration, version, extension, security and stability review with written recommendations."
448 - },{
449 - "@type": "Offer",
450 - "name": "Upgrade Readiness Review",
451 - "price": "390",
452 - "priceCurrency": "EUR",
453 - "description": "Upgrade path, compatibility risks, customizations and effort estimate before implementation."
454 - },{
455 - "@type": "Offer",
456 - "name": "XWiki Authentication Review",
457 - "price": "290",
458 - "priceCurrency": "EUR",
459 - "description": "Review of login flow, users, groups, access control and authentication options."
460 - },{
461 - "@type": "Offer",
462 - "name": "Urgent XWiki Troubleshooting",
463 - "price": "250",
464 - "priceCurrency": "EUR",
465 - "description": "Starting price per session for live XWiki troubleshooting."
466 - },{
467 - "@type": "Offer",
468 - "name": "Standard XWiki LTS Upgrade",
469 - "price": "790",
470 - "priceCurrency": "EUR",
471 - "description": "Starting price for XWiki LTS upgrade preparation, execution and validation."
472 - },{
473 - "@type": "Offer",
474 - "name": "XWiki MFA Installation & Configuration",
475 - "price": "490",
476 - "priceCurrency": "EUR",
477 - "description": "Starting price for MFA setup for the standard XWiki login flow."
478 - },{
479 - "@type": "Offer",
480 - "name": "OIDC / Microsoft Entra ID Setup",
481 - "price": "590",
482 - "priceCurrency": "EUR",
483 - "description": "Starting price for OpenID Connect setup and validation for XWiki."
484 - },{
485 - "@type": "Offer",
486 - "name": "AWS Hosting Setup for XWiki",
487 - "price": "490",
488 - "priceCurrency": "EUR",
489 - "description": "Starting price for initial AWS deployment setup for XWiki."
490 - },{
491 - "@type": "Offer",
492 - "name": "XWiki AWS Cloud Hosting",
493 - "price": "49",
494 - "priceCurrency": "EUR",
495 - "description": "Starting monthly price for small single-instance AWS hosting for XWiki."
496 - }]
497 - }
395 + "description": "XWiki service packages for upgrades, support, authentication, troubleshooting, maintenance and implementation."
498 498  }
499 499  </script>
500 500  
501 -<script type="application/ld+json">
502 -{
503 - "@context": "https://schema.org",
504 - "@type": "FAQPage",
505 - "mainEntity": [{
506 - "@type": "Question",
507 - "name": "Are these fixed prices?",
508 - "acceptedAnswer": {
509 - "@type": "Answer",
510 - "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."
511 - }
512 - },{
513 - "@type": "Question",
514 - "name": "Do you charge hourly?",
515 - "acceptedAnswer": {
516 - "@type": "Answer",
517 - "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."
518 - }
519 - },{
520 - "@type": "Question",
521 - "name": "Can you work on existing XWiki installations?",
522 - "acceptedAnswer": {
523 - "@type": "Answer",
524 - "text": "Yes. Agnease works with existing XWiki instances, including upgrades, troubleshooting, authentication, customizations, extensions and long-term maintenance."
525 - }
526 - },{
527 - "@type": "Question",
528 - "name": "What happens if my XWiki instance is more complex?",
529 - "acceptedAnswer": {
530 - "@type": "Answer",
531 - "text": "Agnease first reviews the current setup, identifies risks and dependencies, and then provides a quote based on the actual scope."
532 - }
533 - },{
534 - "@type": "Question",
535 - "name": "Can I book a call directly?",
536 - "acceptedAnswer": {
537 - "@type": "Answer",
538 - "text": "Yes. The contact form includes a call booking option, but sending a short description first helps Agnease understand the context before the discussion."
539 - }
540 - },{
541 - "@type": "Question",
542 - "name": "Do prices include external costs?",
543 - "acceptedAnswer": {
544 - "@type": "Answer",
545 - "text": "The prices on this page cover Agnease services. External hosting, infrastructure or third-party costs are discussed separately when relevant."
546 - }
547 - }]
548 -}
549 -</script>
550 550  {{/html}}
551 551  {{/velocity}}