Wiki source code of Public Web Site

Version 20.8 by Agnease on 2026/05/30 16:24

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