Wiki source code of Public Web Site

Version 25.41 by Agnease on 2026/06/30 12:18

Hide last authors
Agnease 1.2 1 {{velocity}}
Agnease 3.5 2 #macro (displayPublicContent)
Agnease 3.4 3 #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
4 {{html clean="false"}}
Agnease 25.40 5 <section class="hero hero-saas" id="top">
6 <div class="container">
7 <div class="hero-layout">
8 <div class="hero-copy">
9 <h1>Professional XWiki consulting <span>and engineering</span></h1>
10 <p class="lead">
11 Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical engineering support, custom development, integrations and long-term care.
12 </p>
13 <ul class="benefits">
14 <li>XWiki LTS upgrades</li>
15 <li>Maintenance and support</li>
16 <li>Custom XWiki development</li>
17 <li>Migrations and integrations</li>
18 </ul>
19 <div class="hero-actions" id="hero-cta">
20 <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">
21 Book a free discussion
22 </a>
23 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
24 </div>
25 </div>
26 <div class="hero-visual" aria-hidden="true">
27 <div class="hero-browser">
28 <div class="hero-browser-top">
29 <div class="hero-dot"></div>
30 <div class="hero-dot"></div>
31 <div class="hero-dot"></div>
32 <div class="hero-search"></div>
33 </div>
34 <div class="hero-browser-body">
35 <div class="hero-sidebar">
36 <div class="hero-nav-item"><span class="hero-nav-icon"></span>Home</div>
37 <div class="hero-nav-item"><span class="hero-nav-icon"></span>Documentation</div>
38 <div class="hero-nav-item"><span class="hero-nav-icon"></span>Processes</div>
39 <div class="hero-nav-item"><span class="hero-nav-icon"></span>Policies</div>
40 <div class="hero-nav-item"><span class="hero-nav-icon"></span>Teams</div>
41 </div>
42 <div class="hero-content-panel">
43 <div class="hero-panel-title">Production XWiki Platform</div>
44 <div class="hero-skeleton"></div>
45 <div class="hero-skeleton"></div>
46 <div class="hero-skeleton short"></div>
47 <div class="hero-dashboard-grid">
48 <div class="hero-mini-card">
49 <h4>Recent work</h4>
50 <div class="hero-status-row"><span class="hero-status-dot"></span>LTS upgrade plan</div>
51 <div class="hero-status-row"><span class="hero-status-dot"></span>Extension review</div>
52 <div class="hero-status-row"><span class="hero-status-dot"></span>Production validation</div>
53 </div>
54 <div class="hero-mini-card">
55 <h4>Platform care</h4>
56 <div class="hero-status-row"><span class="hero-status-dot"></span>Permissions</div>
57 <div class="hero-status-row"><span class="hero-status-dot"></span>Authentication</div>
58 <div class="hero-status-row"><span class="hero-status-dot"></span>Maintainability</div>
59 </div>
60 </div>
61 </div>
62 </div>
63 </div>
64 <div class="hero-floating hero-upgrade-card">
65 <div class="hero-card-title">Upgrade with confidence</div>
66 <div class="hero-version-flow">
67 <div class="hero-version">XWiki<br/>LTS</div>
68 <div class="hero-arrow">→</div>
69 <div class="hero-version">Staging</div>
70 <div class="hero-arrow">→</div>
71 <div class="hero-version active">Production</div>
72 </div>
73 </div>
74 <div class="hero-floating hero-security-card">
75 <div class="hero-card-title">Security-aware maintenance</div>
76 <ul>
77 <li>Permissions review</li>
78 <li>Authentication support</li>
79 <li>Audit and traceability</li>
80 </ul>
81 </div>
82 <div class="hero-flow">
83 <div class="hero-env">Review</div>
84 <div class="hero-arrow">→</div>
85 <div class="hero-env">Plan</div>
86 <div class="hero-arrow">→</div>
87 <div class="hero-env">Validate</div>
88 </div>
89 </div>
90 </div>
91 </div>
92 </section>
93 #*
Agnease 20.1 94 <section class="hero hero-centered" aria-labelledby="hero-title">
Agnease 5.1 95 <div class="container hero-inner">
Agnease 12.25 96 <h1 id="hero-title">Professional XWiki consulting and engineering</h1>
Agnease 6.27 97
98 <p class="lead">
Agnease 12.20 99 Agnease helps organizations upgrade, maintain, secure and extend production XWiki platforms with practical
100 engineering support, custom development, integrations and long-term care.
Agnease 6.27 101 </p>
102
Agnease 3.89 103 <ul class="benefits">
Agnease 12.20 104 <li>XWiki LTS upgrades</li>
105 <li>Maintenance and support</li>
106 <li>Custom XWiki development</li>
107 <li>Migrations and integrations</li>
Agnease 3.89 108 </ul>
Agnease 6.27 109
110 <div class="hero-actions">
Agnease 20.1 111 <a class="btn btn-primary" href="https://calendly.com/alex-agnease/30min?back=1&month=2026-06">Book a free discussion</a>
Agnease 13.20 112 ##<a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Request a consultation</a>
Agnease 6.27 113 <a class="btn btn-secondary" href="$xwiki.getURL('services.WebHome')">View XWiki services</a>
Agnease 3.4 114 </div>
Agnease 1.2 115 </div>
Agnease 3.4 116 </section>
Agnease 25.40 117 *#
Agnease 6.27 118 <section class="trust-strip" aria-label="Agnease experience">
Agnease 3.4 119 <div class="container">
Agnease 6.27 120 <ul>
121 <li><i class="fa fa-check-circle" aria-hidden="true"></i> 11+ years of XWiki experience</li>
122 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Upgrades, support and custom development</li>
123 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Security-aware maintenance</li>
124 <li><i class="fa fa-check-circle" aria-hidden="true"></i> Practical long-term collaboration</li>
125 </ul>
Agnease 1.2 126 </div>
Agnease 3.4 127 </section>
Agnease 6.27 128
129 <section aria-labelledby="platform-title">
Agnease 3.4 130 <div class="container">
Agnease 12.20 131 <h2 id="platform-title">XWiki support for production knowledge platforms</h2>
Agnease 6.27 132 <p class="section-intro">
Agnease 12.20 133 XWiki often grows from a documentation space into a business-critical knowledge platform.
Agnease 12.24 134 When it supports intranets, procedures, workflows, audits or integrations, it needs structured technical care
135 for upgrades, security, permissions and maintainability.
Agnease 5.1 136 </p>
Agnease 1.1 137
Agnease 6.27 138 <div class="pathways">
139 <article class="pathway-card">
Agnease 13.2 140 <div class="card-heading">
141 <div class="pathway-icon">
142 <i class="fa fa-refresh" aria-hidden="true"></i>
143 </div>
144 <h3>Upgrade XWiki safely</h3>
Agnease 6.27 145 </div>
146 <p>
Agnease 12.20 147 Plan and execute XWiki LTS upgrades with compatibility checks, staging validation and rollback planning.
Agnease 6.27 148 </p>
149 <ul>
150 <li>LTS upgrade planning</li>
151 <li>Extension and custom code review</li>
Agnease 12.20 152 <li>Staging and production validation</li>
Agnease 6.27 153 </ul>
154 <p class="card-link">
Agnease 6.32 155 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Agnease 6.27 156 </p>
157 </article>
Agnease 5.1 158
Agnease 6.27 159 <article class="pathway-card">
Agnease 13.2 160 <div class="card-heading">
161 <div class="pathway-icon">
162 <i class="fa fa-life-ring" aria-hidden="true"></i>
163 </div>
164 <h3>Maintain XWiki reliably</h3>
Agnease 6.27 165 </div>
166 <p>
Agnease 12.20 167 Keep production XWiki instances stable with troubleshooting, maintenance planning, recovery support and security-aware care.
Agnease 6.27 168 </p>
169 <ul>
170 <li>Troubleshooting and recovery</li>
171 <li>Performance and log analysis</li>
Agnease 12.21 172 <li>Upgrade and maintenance planning</li>
Agnease 6.27 173 </ul>
174 <p class="card-link">
Agnease 6.32 175 <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
Agnease 6.27 176 </p>
177 </article>
178
179 <article class="pathway-card">
Agnease 13.2 180 <div class="card-heading">
181 <div class="pathway-icon">
182 <i class="fa fa-cogs" aria-hidden="true"></i>
183 </div>
184 <h3>Extend XWiki for your processes</h3>
Agnease 6.27 185 </div>
186 <p>
Agnease 12.22 187 Build custom XWiki applications, workflows, dashboards and integrations around real business needs.
Agnease 6.27 188 </p>
189 <ul>
190 <li>Custom XWiki applications</li>
191 <li>Workflows and approvals</li>
Agnease 12.22 192 <li>APIs, SSO, LDAP and integrations</li>
Agnease 6.27 193 </ul>
194 <p class="card-link">
Agnease 6.32 195 <a href="$xwiki.getURL('services.xwiki-development-integrations')">View development services</a>
Agnease 6.27 196 </p>
197 </article>
Agnease 3.4 198 </div>
Agnease 1.2 199 </div>
Agnease 3.4 200 </section>
Agnease 6.27 201
Agnease 20.2 202 <section class="industry-trust-section" aria-labelledby="industry-trust-title">
203 <div class="container">
Agnease 20.3 204 <div class="industry-trust-panel">
Agnease 20.5 205 <h2 id="industry-trust-title">Trusted XWiki expertise for business-critical platforms</h2>
Agnease 20.2 206
Agnease 20.3 207 <p class="section-intro">
208 Experience supporting XWiki platforms used in healthcare, financial services, scientific research,
209 government institutions, transportation, software development, compliance programs and regulated environments.
210 </p>
Agnease 20.2 211
Agnease 20.3 212 <div class="industry-tags" aria-label="Industries and environments supported">
213 <span>Healthcare</span>
214 <span>Financial services</span>
215 <span>Scientific research</span>
216 <span>Government institutions</span>
217 <span>Transportation</span>
218 <span>Software development</span>
219 <span>Compliance programs</span>
220 <span>Regulated environments</span>
221 </div>
222
223 <p class="industry-support">
Agnease 20.5 224 Organizations rely on these platforms to manage documentation, workflows, compliance processes,
225 research knowledge and critical business information. From upgrades and authentication integrations
226 to workflow systems and long-term maintenance, Agnease helps keep XWiki secure, stable and ready for the future.
Agnease 20.3 227 </p>
Agnease 20.2 228 </div>
229 </div>
230 </section>
231
Agnease 6.27 232 <section class="split-section" aria-labelledby="why-title">
Agnease 3.4 233 <div class="container">
Agnease 6.27 234 <div class="split-grid">
235 <div class="split-copy">
Agnease 12.22 236 <h2 id="why-title">Why work with an XWiki specialist</h2>
Agnease 6.27 237 <p>
Agnease 12.22 238 XWiki projects often involve more than pages. Production platforms may include custom code,
Agnease 20.8 239 extensions, authentication, permissions, workflows, integrations, compliance documentation
240 and business-critical knowledge.
Agnease 6.27 241 </p>
242 <p>
Agnease 20.8 243 Agnease brings 11+ years of hands-on XWiki experience to help reduce risk, support long-term reliability
Agnease 12.22 244 and leave the platform easier to maintain after the work is complete.
Agnease 6.27 245 </p>
246 </div>
247
248 <ol class="process-list">
249 <li>
Agnease 12.22 250 <strong>Review the XWiki environment</strong>
251 Version, extensions, infrastructure, authentication, permissions, custom code and critical features.
Agnease 6.27 252 </li>
253 <li>
Agnease 12.22 254 <strong>Define the safest next steps</strong>
255 Scope, risks, dependencies, effort, rollback options and validation requirements.
Agnease 6.27 256 </li>
257 <li>
Agnease 12.22 258 <strong>Implement, validate and document</strong>
259 Controlled changes, testing, production validation and notes for future maintenance.
Agnease 6.27 260 </li>
261 </ol>
262 </div>
263 </div>
264 </section>
265
Agnease 10.38 266 <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title">
Agnease 6.27 267 <div class="container">
Agnease 12.22 268 <h2 id="resources-title">XWiki resources for safer long-term maintenance</h2>
Agnease 6.27 269 <p class="section-intro">
Agnease 12.22 270 Practical articles about XWiki upgrades, customization and production platform care.
Agnease 3.4 271 </p>
Agnease 6.27 272
273 <div class="resource-grid">
274 <article class="resource-card">
275 <h4>Why upgrade your XWiki instance?</h4>
276 <p>
Agnease 12.22 277 Learn why regular XWiki upgrades reduce security exposure, compatibility issues and long-term maintenance risk.
Agnease 6.27 278 </p>
Agnease 12.22 279 <a href="$xwiki.getURL('resources.why-upgrade-xwiki')">Read the article</a>
Agnease 6.27 280 </article>
281
282 <article class="resource-card">
283 <h4>XWiki upgrade services</h4>
284 <p>
Agnease 12.22 285 See how XWiki upgrades can be planned, tested and validated for production instances with customizations and integrations.
Agnease 6.27 286 </p>
Agnease 12.22 287 <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
Agnease 6.27 288 </article>
289 </div>
Agnease 3.4 290 </div>
291 </section>
Agnease 3.16 292
Agnease 6.27 293 <section class="cta-section" aria-labelledby="contact-title">
294 <div class="container">
295 <div class="cta-panel">
Agnease 12.22 296 <h2 id="contact-title">Need XWiki consulting or support?</h2>
Agnease 6.27 297 <p>
Agnease 12.22 298 Send your current XWiki version, the issue you are facing, or the type of project you want to build.
299 A short description is enough to define practical next steps.
Agnease 6.27 300 </p>
301 <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Contact Agnease</a>
Agnease 3.16 302 </div>
303 </div>
Agnease 6.27 304 </section>
305
306 {{/html}}
Agnease 3.16 307 #end
Agnease 3.55 308
Agnease 3.66 309 #macro (stripHTMLMacro $displayOutput)
Agnease 3.77 310 $stringtool.removeEnd($stringtool.removeStart($displayOutput, '{{html clean="false" wiki="false"}}'), '{{/html}}').replace('Agnease.Code.Lead.LeadClass_0_', 'acl-')
Agnease 3.66 311 #end
312
Agnease 3.55 313 #macro (displayFormFromSheetCode)
Agnease 3.61 314 #set ($editing = true)
Agnease 3.55 315 ## The object to display.
Agnease 3.65 316 #set ($xobject = $doc.newObject('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 317 ## The class that describes the object properties.
Agnease 3.60 318 #set ($xclass = $xwiki.getClass('Agnease.Code.Lead.LeadClass'))
Agnease 3.55 319 ## Make sure the following display* method calls use the right object.
320 #set ($discard = $doc.use($xobject))
321 ## Using the xform vertical form layout.
Agnease 3.70 322 <div class="xform">
Agnease 3.55 323 <dl>
324 #foreach ($property in $xclass.properties)
Agnease 3.84 325 #if ($property.name != 'status')
326 <dt #if (!$editing)
327 class="editableProperty"
328 #set ($xobjectPropertyReference = $xobject.getPropertyReference($property.name))
329 data-property="$escapetool.xml($services.model.serialize($xobjectPropertyReference))"
330 data-property-type="object"#end>
331 ## This must match the id generated by the $doc.display() method below.
332 #set ($propertyId = "acl-$property.name")
333 <label#if ($editing) for="$escapetool.xml($propertyId)"#end>
334 $escapetool.xml($property.translatedPrettyName)
335 </label>
336 ## Support for specifying a translation key as hint in the property definition.
337 <span class="xHint">$!escapetool.xml($services.localization.render($property.hint))</span>
338 </dt>
339 #set ($displayOutput = $doc.display($property.name, 'edit'))
340 <dd>#stripHTMLMacro($displayOutput)</dd>
341 #end
Agnease 3.55 342 #end
343 #if (!$xclass.properties || $xclass.properties.size() == 0)
344 ## Keep the empty definition term in order to have valid HTML.
345 <dt></dt>
346 <dd>$escapetool.xml($services.localization.render('xclass.defaultObjectSheet.noProperties'))</dd>
347 #end
348 </dl>
349 </div>
350 #end
Agnease 1.2 351 {{/velocity}}