Changes for page Pricing

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

From version 1.15
edited by Agnease
on 2026/07/10 04:01
Change comment: There is no comment for this version
To version 1.3
edited by Agnease
on 2026/07/10 03:36
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -7,23 +7,23 @@
7 7   'icon': 'search',
8 8   'title': 'Review & diagnose',
9 9   'price': 'From €290',
10 - 'description': 'For teams that need to understand risks, issues or the current XWiki state before making changes.',
10 + 'description': 'For teams that need to understand risks, issues or the current state before making changes.',
11 11   'items': [
12 - 'Health checks',
13 - 'Upgrade readiness reviews',
14 - 'Authentication reviews',
15 - 'Urgent troubleshooting'
12 + 'XWiki Health Check',
13 + 'Upgrade Readiness Review',
14 + 'Authentication Review',
15 + 'Urgent Troubleshooting'
16 16   ],
17 17   'cta': 'Start with a review'
18 18  },{
19 19   'icon': 'cogs',
20 - 'title': 'Implement changes',
20 + 'title': 'Implement & configure',
21 21   'price': 'From €490',
22 22   'description': 'For teams ready to make a specific XWiki change, upgrade or authentication improvement.',
23 23   'items': [
24 - 'XWiki LTS upgrades',
25 - 'MFA installation',
26 - 'OIDC / Entra ID setup',
24 + 'Standard XWiki LTS Upgrade',
25 + 'MFA Installation',
26 + 'OIDC / Microsoft Entra ID Setup',
27 27   'LDAP / Active Directory work'
28 28   ],
29 29   'cta': 'Request implementation quote'
... ... @@ -56,7 +56,7 @@
56 56  },{
57 57   'service': 'Urgent XWiki Troubleshooting',
58 58   'price': 'From €250',
59 - 'description': 'Live troubleshooting for blocking issues, errors, failed upgrades or production problems.'
59 + 'description': 'Live troubleshooting session for blocking issues, errors, failed upgrades or production problems.'
60 60  },{
61 61   'service': 'Standard XWiki LTS Upgrade',
62 62   'price': 'From €790',
... ... @@ -64,7 +64,7 @@
64 64  },{
65 65   'service': '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.'
67 + 'description': 'MFA installation, login flow integration, basic configuration, testing and administrator guidance.'
68 68  },{
69 69   'service': 'OIDC / Microsoft Entra ID Setup',
70 70   'price': 'From €590',
... ... @@ -83,6 +83,28 @@
83 83   'description': 'Custom authenticators, container authentication, special login flows or wiki farm authentication strategy.'
84 84  }])
85 85  
86 +#set ($authRows = [{
87 + 'service': 'XWiki Authentication Review',
88 + 'price': '€290',
89 + 'bestFor': 'Understanding the current login flow, users, groups and access model.'
90 +},{
91 + 'service': 'OIDC / Microsoft Entra ID Setup',
92 + 'price': 'From €590',
93 + 'bestFor': 'SSO setup with Microsoft Entra ID, Keycloak or another compatible OIDC provider.'
94 +},{
95 + 'service': 'XWiki MFA Installation',
96 + 'price': 'From €490',
97 + 'bestFor': 'Adding MFA to the standard XWiki login flow.'
98 +},{
99 + 'service': 'LDAP / Active Directory Review',
100 + 'price': 'From €390',
101 + 'bestFor': 'LDAP or AD login, profile mapping, group mapping and synchronization questions.'
102 +},{
103 + 'service': 'Advanced Authentication Work',
104 + 'price': 'Quoted after review',
105 + 'bestFor': 'Custom authenticators, container authentication, special redirects or complex wiki farm scenarios.'
106 +}])
107 +
86 86  #set ($supportPlans = [{
87 87   'icon': 'leaf',
88 88   'title': 'Essential Support',
... ... @@ -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 -}])
148 +#set ($complexProjects = [
149 + 'Wiki farm restructuring',
150 + 'Major XWiki LTS upgrades',
151 + 'Microsoft Entra ID, OIDC, LDAP or SAML integrations',
152 + 'Custom workflow applications',
153 + 'Intranet and knowledge platform development',
154 + 'Performance and stability improvements',
155 + 'Content and platform migrations'
156 +])
143 143  
144 144  #set ($faqItems = [{
145 145   'question': 'Are these fixed prices?',
... ... @@ -163,202 +163,217 @@
163 163  
164 164  {{html clean="false"}}
165 165  
166 -<section class="hero hero-centered" aria-labelledby="pricing-title">
180 +<section class="resource-header" aria-labelledby="hero-title">
167 167   <div class="container">
168 - <div class="hero-inner">
182 + <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>
187 + </div>
173 173  
174 - <h1 id="pricing-title">XWiki Service Packages</h1>
189 + <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>
191 + <p class="resource-summary">
192 + Clear starting points for XWiki upgrades, authentication, troubleshooting and long-term support.
193 + Start with a review, request an implementation quote, or choose a support plan for ongoing XWiki help.
194 + </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 - <a class="btn btn-secondary" href="#starting-points">Compare options</a>
189 - </div>
196 + <div id="hero-cta">
197 + <a class="btn btn-primary" href="$contactURL">Request a quote</a>
198 + <a class="btn btn-secondary" href="#starting-points">Compare starting points</a>
190 190   </div>
191 191   </div>
192 192  </section>
193 193  
194 -<section id="starting-points" aria-labelledby="starting-points-title">
203 +<section class="resource-page">
195 195   <div class="container">
196 - <h2 id="starting-points-title">Choose your starting point</h2>
197 - <p class="section-intro">
198 - Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
199 - or set up ongoing support.
200 - </p>
205 + <div class="resource-layout">
206 + <article class="resource-content services">
201 201  
202 - <div class="pathways">
203 - #foreach ($entry in $startingPoints)
204 - <article class="pathway-card">
205 - <div class="card-heading">
206 - <div class="pathway-icon" aria-hidden="true">
207 - <i class="fa fa-$entry.icon"></i>
208 - </div>
209 - <h3>$entry.title</h3>
210 - </div>
208 + <div class="resource-note">
209 + <p>
210 + <strong>Pricing note:</strong> Prices are starting points and exclude VAT where applicable.
211 + Final pricing depends on the XWiki version, installed extensions, customizations, hosting setup,
212 + authentication configuration, wiki farm complexity and required testing.
213 + </p>
214 + </div>
211 211  
212 - <p><strong>$entry.price</strong></p>
213 - <p>$entry.description</p>
216 + <h2 id="starting-points">Choose your starting point</h2>
214 214  
215 - <ul>
216 - #foreach ($item in $entry.items)
217 - <li>$item</li>
218 - #end
219 - </ul>
218 + <p>
219 + Most XWiki requests fit into one of three paths: review the current setup, implement a defined change,
220 + or set up ongoing support. This keeps the first step clear without pretending that every XWiki environment
221 + has the same complexity.
222 + </p>
220 220  
221 - <div class="card-link">
222 - <a href="$contactURL">$entry.cta</a>
223 - </div>
224 - </article>
225 - #end
226 - </div>
227 - </div>
228 -</section>
224 + <div class="services-grid">
225 + #foreach ($entry in $startingPoints)
226 + <article class="service">
227 + <div class="service-icon" aria-hidden="true">
228 + <i class="fa fa-$entry.icon"></i>
229 + </div>
230 + <div class="service-body">
231 + <h4>$entry.title</h4>
232 + <p><strong>$entry.price</strong></p>
233 + <p>$entry.description</p>
234 + <ul>
235 + #foreach ($item in $entry.items)
236 + <li>$item</li>
237 + #end
238 + </ul>
239 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
240 + </div>
241 + </article>
242 + #end
243 + </div>
229 229  
230 -<section aria-labelledby="pricing-note-title">
231 - <div class="container">
232 - <div class="industry-trust-panel">
233 - <h2 id="pricing-note-title">Simple starting prices, reviewed scope when needed</h2>
234 - <p class="section-intro">
235 - Prices are starting points and exclude VAT where applicable. Final pricing depends on the XWiki version,
236 - installed extensions, customizations, hosting setup, authentication configuration, wiki farm complexity
237 - and required testing.
238 - </p>
239 - </div>
240 - </div>
241 -</section>
245 + <h2 id="common-packages">Common starting packages</h2>
242 242  
243 -<section id="common-packages" aria-labelledby="common-packages-title">
244 - <div class="container">
245 - <h2 id="common-packages-title">Common starting packages</h2>
246 - <p class="section-intro">
247 - These are practical entry points for common XWiki needs. Some can start directly, while others require
248 - a quick review before confirming the final scope.
249 - </p>
247 + <p>
248 + These are practical entry points for common XWiki needs. Some can start directly, while others require
249 + a quick review before confirming the final scope.
250 + </p>
250 250  
251 - <table class="table table-bordered table-striped">
252 - <thead>
253 - <tr>
254 - <th>Service</th>
255 - <th>Starting price</th>
256 - <th>What it covers</th>
257 - </tr>
258 - </thead>
259 - <tbody>
260 - #foreach ($entry in $commonPackages)
261 - <tr>
262 - <td><strong>$entry.service</strong></td>
263 - <td>$entry.price</td>
264 - <td>$entry.description</td>
265 - </tr>
266 - #end
267 - </tbody>
268 - </table>
269 - </div>
270 -</section>
252 + <table class="table table-bordered table-striped">
253 + <thead>
254 + <tr>
255 + <th>Service</th>
256 + <th>Starting price</th>
257 + <th>What it covers</th>
258 + </tr>
259 + </thead>
260 + <tbody>
261 + #foreach ($entry in $commonPackages)
262 + <tr>
263 + <td><strong>$entry.service</strong></td>
264 + <td>$entry.price</td>
265 + <td>$entry.description</td>
266 + </tr>
267 + #end
268 + </tbody>
269 + </table>
271 271  
272 -<section id="upgrade-offer" aria-labelledby="upgrade-offer-title" class="industry-trust-section">
273 - <div class="container">
274 - <div class="industry-trust-panel">
275 - <h2 id="upgrade-offer-title">New customer upgrade offer</h2>
276 - <p class="section-intro">
277 - If the Upgrade Readiness Review leads to an upgrade project with Agnease, the review cost can be credited
278 - toward the upgrade implementation.
279 - </p>
280 - <a class="btn btn-primary" href="$contactURL">Plan an upgrade</a>
281 - </div>
282 - </div>
283 -</section>
271 + <div id="upgrade-offer" class="resource-note">
272 + <p>
273 + <strong>New customer upgrade offer:</strong> If the Upgrade Readiness Review leads to an upgrade
274 + project with Agnease, the review cost can be credited toward the upgrade implementation.
275 + </p>
276 + </div>
284 284  
285 -<section id="support" aria-labelledby="support-title">
286 - <div class="container">
287 - <h2 id="support-title">Monthly support plans</h2>
288 - <p class="section-intro">
289 - Support plans are designed for organizations that already use XWiki and want regular help with troubleshooting,
290 - maintenance, upgrades, configuration, authentication and small improvements.
291 - </p>
278 + <h2 id="authentication">Authentication & access control</h2>
292 292  
293 - <div class="pathways">
294 - #foreach ($entry in $supportPlans)
295 - <article class="pathway-card">
296 - <div class="card-heading">
297 - <div class="pathway-icon" aria-hidden="true">
298 - <i class="fa fa-$entry.icon"></i>
299 - </div>
300 - <h3>$entry.title</h3>
301 - </div>
280 + <p>
281 + XWiki authentication depends on the current login method, identity provider, user source,
282 + group mapping and access-control model. Agnease can help review, configure or improve standard
283 + XWiki login, LDAP, Active Directory, OpenID Connect, Microsoft Entra ID, MFA and more advanced
284 + authentication scenarios.
285 + </p>
302 302  
303 - <p><strong>$entry.price</strong></p>
304 - <p>$entry.description</p>
287 + <div class="resource-note">
288 + <p>
289 + <strong>MFA is treated separately:</strong> SSO, LDAP and OIDC define how users log in.
290 + MFA adds an additional verification layer. In some environments MFA belongs in XWiki, while in
291 + others it is better enforced by the external identity provider.
292 + </p>
293 + </div>
305 305  
306 - <ul>
307 - #foreach ($item in $entry.items)
308 - <li>$item</li>
295 + <table class="table table-bordered table-striped">
296 + <thead>
297 + <tr>
298 + <th>Authentication service</th>
299 + <th>Starting price</th>
300 + <th>Best for</th>
301 + </tr>
302 + </thead>
303 + <tbody>
304 + #foreach ($entry in $authRows)
305 + <tr>
306 + <td><strong>$entry.service</strong></td>
307 + <td>$entry.price</td>
308 + <td>$entry.bestFor</td>
309 + </tr>
309 309   #end
310 - </ul>
311 + </tbody>
312 + </table>
311 311  
312 - <div class="card-link">
313 - <a href="$contactURL">$entry.cta</a>
314 - </div>
315 - </article>
316 - #end
317 - </div>
314 + <div class="resource-cta">
315 + <h3>Need authentication changes?</h3>
316 + <p>
317 + Send a short description of your current login method, user source, identity provider and the
318 + authentication result you want to achieve.
319 + </p>
320 + <a class="btn btn-primary" href="$contactURL">Request authentication review</a>
321 + </div>
318 318  
319 - <p class="section-intro">
320 - Larger features, migrations, major customizations and complex projects are quoted separately.
321 - </p>
322 - </div>
323 -</section>
323 + <h2 id="support">Monthly support plans</h2>
324 324  
325 -<section id="complex-projects" aria-labelledby="complex-projects-title">
326 - <div class="container">
327 - <h2 id="complex-projects-title">Need something more complex?</h2>
328 - <p class="section-intro">
329 - Some XWiki projects cannot be priced responsibly before the environment is reviewed. For wiki farms,
330 - major upgrades, migrations, custom applications, authentication changes or infrastructure restructuring,
331 - Agnease first reviews the current setup and then provides a fixed project quote.
332 - </p>
325 + <p>
326 + Support plans are designed for organizations that already use XWiki and want regular help with
327 + troubleshooting, maintenance, upgrades, configuration, authentication and small improvements.
328 + </p>
333 333  
334 - <div class="widgets">
335 - #foreach ($entry in $complexProjects)
336 - <div class="widget">
337 - <div class="icon">
338 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
339 - <h4>$entry.title</h4>
340 - </div>
341 - <p>$entry.content</p>
330 + <div class="services-grid">
331 + #foreach ($entry in $supportPlans)
332 + <article class="service">
333 + <div class="service-icon" aria-hidden="true">
334 + <i class="fa fa-$entry.icon"></i>
335 + </div>
336 + <div class="service-body">
337 + <h4>$entry.title</h4>
338 + <p><strong>$entry.price</strong></p>
339 + <p>$entry.description</p>
340 + <ul>
341 + #foreach ($item in $entry.items)
342 + <li>$item</li>
343 + #end
344 + </ul>
345 + <p><a class="btn btn-primary" href="$contactURL">$entry.cta</a></p>
346 + </div>
347 + </article>
348 + #end
342 342   </div>
343 - #end
344 - </div>
345 345  
346 - <div id="hero-cta">
347 - <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
348 - </div>
349 - </div>
350 -</section>
351 + <div class="resource-note">
352 + <p>
353 + Larger features, migrations, major customizations and complex projects are quoted separately.
354 + </p>
355 + </div>
351 351  
352 -<section id="faq" aria-labelledby="faq-title">
353 - <div class="container">
354 - <h2 id="faq-title">FAQ</h2>
357 + <h2 id="complex-projects">Need something more complex?</h2>
355 355  
356 - #foreach ($entry in $faqItems)
357 - <details class="resource-faq-item" #if ($foreach.first)open#end>
358 - <summary>$entry.question</summary>
359 - <p>$entry.answer</p>
360 - </details>
361 - #end
359 + <p>
360 + Some XWiki projects cannot be priced responsibly before the environment is reviewed. For wiki farms,
361 + major upgrades, migrations, custom applications, authentication changes or infrastructure restructuring,
362 + Agnease first reviews the current setup and then provides a fixed project quote.
363 + </p>
364 +
365 + <ul class="resource-checklist">
366 + #foreach ($item in $complexProjects)
367 + <li>$item</li>
368 + #end
369 + </ul>
370 +
371 + <div class="resource-cta">
372 + <h3>Request a project quote</h3>
373 + <p>
374 + Send a short description of your XWiki environment, current version, hosting setup and what you
375 + are trying to achieve.
376 + </p>
377 + <a class="btn btn-primary" href="$contactURL">Request a project quote</a>
378 + </div>
379 +
380 + <h2 id="faq">FAQ</h2>
381 +
382 + #foreach ($entry in $faqItems)
383 + <details class="resource-faq-item" #if ($foreach.first)open#end>
384 + <summary>$entry.question</summary>
385 + <p>$entry.answer</p>
386 + </details>
387 + #end
388 +
389 + </article>
390 + </div>
362 362   </div>
363 363  </section>
364 364