Last modified by Agnease on 2026/05/25 12:55

From version 7.6
edited by Agnease
on 2026/05/25 12:55
Change comment: There is no comment for this version
To version 7.4
edited by Agnease
on 2026/05/22 14:15
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,6 +1,7 @@
1 1  {{velocity}}
2 2  #set ($discard = $xwiki.ssx.use('PublicWebSite.WebHome'))
3 3  {{html clean="false"}}
4 +
4 4   ## PAGE HEADER
5 5   <section class="hero hero-centered service-hero" aria-labelledby="hero-title">
6 6   <div class="container hero-inner">
... ... @@ -8,11 +8,14 @@
8 8   <i class="fa fa-cogs" aria-hidden="true"></i>
9 9   XWiki development and integrations
10 10   </div>
12 +
11 11   <h1 id="hero-title">Custom XWiki applications, workflows and integrations</h1>
14 +
12 12   <p class="lead">
13 13   Extend XWiki beyond documentation with custom applications, structured data, workflows,
14 14   dashboards, automation and integrations adapted to your organization.
15 15   </p>
19 +
16 16   <div class="hero-actions">
17 17   <a class="btn btn-primary" href="$xwiki.getURL('contact.WebHome')">Discuss a project</a>
18 18   <a class="btn btn-secondary" href="#development-process">See the development approach</a>
... ... @@ -21,94 +21,70 @@
21 21   </section>
22 22  
23 23   ## WHY CUSTOM DEVELOPMENT
24 - #set ($developmentReasonItems = [{
25 - 'title': 'Structure your information',
26 - 'icon': 'database',
27 - 'content': 'Use XWiki classes, forms, templates and metadata to organize business information in a maintainable way.',
28 - 'items': [
29 - 'Custom data models',
30 - 'Structured forms and templates',
31 - 'Metadata-driven pages and views'
32 - ]
33 - },{
34 - 'title': 'Automate workflows',
35 - 'icon': 'random',
36 - 'content': 'Support approvals, reviews, notifications, status changes and controlled document lifecycles directly in XWiki.',
37 - 'items': [
38 - 'Review and approval workflows',
39 - 'Role-based actions and permissions',
40 - 'Notifications and task queues'
41 - ]
42 - },{
43 - 'title': 'Connect external systems',
44 - 'icon': 'plug',
45 - 'content': 'Integrate XWiki with authentication systems, APIs, AI tools, internal services and external platforms.',
46 - 'items': [
47 - 'REST API integrations',
48 - 'SSO, LDAP and identity systems',
49 - 'AI-assisted search and knowledge access'
50 - ]
51 - }])
52 -
53 53   <section aria-labelledby="why-development-title">
54 54   <div class="container">
55 55   <h2 id="why-development-title">When XWiki needs to fit your business</h2>
31 +
56 56   <p class="section-intro">
57 57   XWiki is flexible enough to become much more than a documentation system. With the right structure,
58 58   custom applications and integrations, it can support internal processes that would otherwise be handled
59 59   through spreadsheets, scattered documents, manual approvals or disconnected tools.
60 60   </p>
37 +
61 61   <div class="pathways">
62 - #foreach ($entry in $developmentReasonItems)
63 - <article class="pathway-card">
64 - <div class="card-heading">
65 - <div class="pathway-icon">
66 - <i class="fa fa-$entry.icon" aria-hidden="true"></i>
67 - </div>
68 - <h3>$entry.title</h3>
69 - </div>
70 - <p>$entry.content</p>
71 - <ul>
72 - #foreach ($item in $entry.items)
73 - <li>$item</li>
74 - #end
75 - </ul>
76 - </article>
77 - #end
39 + <article class="pathway-card">
40 + <div class="pathway-icon">
41 + <i class="fa fa-database" aria-hidden="true"></i>
42 + </div>
43 + <h3>Structure your information</h3>
44 + <p>
45 + Use XWiki classes, forms, templates and metadata to organize business information in a maintainable way.
46 + </p>
47 + <ul>
48 + <li>Custom data models</li>
49 + <li>Structured forms and templates</li>
50 + <li>Metadata-driven pages and views</li>
51 + </ul>
52 + </article>
53 +
54 + <article class="pathway-card">
55 + <div class="pathway-icon">
56 + <i class="fa fa-random" aria-hidden="true"></i>
57 + </div>
58 + <h3>Automate workflows</h3>
59 + <p>
60 + Support approvals, reviews, notifications, status changes and controlled document lifecycles directly in XWiki.
61 + </p>
62 + <ul>
63 + <li>Review and approval workflows</li>
64 + <li>Role-based actions and permissions</li>
65 + <li>Notifications and task queues</li>
66 + </ul>
67 + </article>
68 +
69 + <article class="pathway-card">
70 + <div class="pathway-icon">
71 + <i class="fa fa-plug" aria-hidden="true"></i>
72 + </div>
73 + <h3>Connect external systems</h3>
74 + <p>
75 + Integrate XWiki with authentication systems, APIs, AI tools, internal services and external platforms.
76 + </p>
77 + <ul>
78 + <li>REST API integrations</li>
79 + <li>SSO, LDAP and identity systems</li>
80 + <li>AI-assisted search and knowledge access</li>
81 + </ul>
82 + </article>
78 78   </div>
79 79   </div>
80 80   </section>
81 81  
82 82   ## COMMON DEVELOPMENT NEEDS
83 - #set ($developmentNeedItems = [{
84 - 'title': 'Custom XWiki applications',
85 - 'icon': 'window-restore',
86 - 'content': 'Business-specific applications using XWiki classes, sheets, templates, UI extensions, scripts and components.'
87 - },{
88 - 'title': 'Workflows and approvals',
89 - 'icon': 'check-square-o',
90 - 'content': 'Review, approval, publishing, document control and status-based processes adapted to your internal rules.'
91 - },{
92 - 'title': 'Dashboards and structured views',
93 - 'icon': 'table',
94 - 'content': 'LiveData views, filters, reports, queues and dashboards that make structured XWiki information easier to use.'
95 - },{
96 - 'title': 'PDF export and document outputs',
97 - 'icon': 'file-pdf-o',
98 - 'content': 'Custom export templates, generated documents, controlled output formats and PDF-related workflow features.'
99 - },{
100 - 'title': 'External and AI integrations',
101 - 'icon': 'plug',
102 - 'content': 'Integration with REST APIs, authentication systems, internal services, automation tools, AI assistants or third-party platforms.'
103 - },{
104 - 'title': 'Macros, components and extensions',
105 - 'icon': 'code',
106 - 'content': 'Custom macros, Java components, Velocity scripts, UI extensions and packaged XWiki extensions.'
107 - }])
108 -
109 109   <section class="services" aria-labelledby="development-needs-title">
110 110   <div class="container">
111 111   <h2 id="development-needs-title">Common development needs</h2>
91 +
112 112   <p class="section-intro">
113 113   Custom XWiki development can range from small improvements to full business applications built on top of
114 114   the platform. The focus is to keep the implementation useful, maintainable and aligned with XWiki conventions.
... ... @@ -115,50 +115,97 @@
115 115   This can also include AI-assisted knowledge access, where selected XWiki content is synchronized with external
116 116   AI tools for question answering and discovery.
117 117   </p>
98 +
118 118   <div class="services-grid">
119 - #foreach ($entry in $developmentNeedItems)
120 - <article class="service">
121 - <div class="service-icon" aria-hidden="true">
122 - <i class="fa fa-$entry.icon"></i>
123 - </div>
100 + <article class="service">
101 + <div class="service-icon" aria-hidden="true">
102 + <i class="fa fa-window-restore"></i>
103 + </div>
104 + <div class="service-body">
105 + <h4>Custom XWiki applications</h4>
106 + <p>
107 + Business-specific applications using XWiki classes, sheets, templates, UI extensions, scripts and components.
108 + </p>
109 + </div>
110 + </article>
124 124  
125 - <div class="service-body">
126 - <h4>$entry.title</h4>
127 - <p>$entry.content</p>
128 - </div>
129 - </article>
130 - #end
112 + <article class="service">
113 + <div class="service-icon" aria-hidden="true">
114 + <i class="fa fa-check-square-o"></i>
115 + </div>
116 + <div class="service-body">
117 + <h4>Workflows and approvals</h4>
118 + <p>
119 + Review, approval, publishing, document control and status-based processes adapted to your internal rules.
120 + </p>
121 + </div>
122 + </article>
123 +
124 + <article class="service">
125 + <div class="service-icon" aria-hidden="true">
126 + <i class="fa fa-table"></i>
127 + </div>
128 + <div class="service-body">
129 + <h4>Dashboards and structured views</h4>
130 + <p>
131 + LiveData views, filters, reports, queues and dashboards that make structured XWiki information easier to use.
132 + </p>
133 + </div>
134 + </article>
135 +
136 + <article class="service">
137 + <div class="service-icon" aria-hidden="true">
138 + <i class="fa fa-file-pdf-o"></i>
139 + </div>
140 + <div class="service-body">
141 + <h4>PDF export and document outputs</h4>
142 + <p>
143 + Custom export templates, generated documents, controlled output formats and PDF-related workflow features.
144 + </p>
145 + </div>
146 + </article>
147 +
148 + <article class="service">
149 + <div class="service-icon" aria-hidden="true">
150 + <i class="fa fa-plug"></i>
151 + </div>
152 + <div class="service-body">
153 + <h4>External and AI integrations</h4>
154 + <p>
155 + Integration with REST APIs, authentication systems, internal services, automation tools,
156 + AI assistants or third-party platforms.
157 + </p>
158 + </div>
159 + </article>
160 +
161 + <article class="service">
162 + <div class="service-icon" aria-hidden="true">
163 + <i class="fa fa-code"></i>
164 + </div>
165 + <div class="service-body">
166 + <h4>Macros, components and extensions</h4>
167 + <p>
168 + Custom macros, Java components, Velocity scripts, UI extensions and packaged XWiki extensions.
169 + </p>
170 + </div>
171 + </article>
131 131   </div>
132 132   </div>
133 133   </section>
134 134  
135 135   ## DEVELOPMENT APPROACH
136 - #set ($developmentProcessItems = [{
137 - 'title': 'Understand the business process',
138 - 'content': 'Clarify users, roles, data, statuses, permissions, outputs, notifications and expected decisions.'
139 - },{
140 - 'title': 'Design the XWiki model',
141 - 'content': 'Define the right structure using pages, spaces, XClasses, templates, sheets, rights and views.'
142 - },{
143 - 'title': 'Choose the implementation level',
144 - 'content': 'Decide whether the feature should be built with configuration, scripting, Java components or a packaged extension.'
145 - },{
146 - 'title': 'Build and validate iteratively',
147 - 'content': 'Implement the feature in manageable steps and validate it with real usage scenarios.'
148 - },{
149 - 'title': 'Document and prepare for maintenance',
150 - 'content': 'Leave clear notes about configuration, custom code, assumptions and future improvement areas.'
151 - }])
152 152   <section id="development-process" class="split-section" aria-labelledby="process-title">
153 153   <div class="container">
154 154   <div class="split-grid">
155 155   <div class="split-copy">
156 156   <h2 id="process-title">A practical development approach</h2>
182 +
157 157   <p>
158 158   XWiki development works best when the solution fits the platform instead of fighting it. The goal is
159 159   to build features that are useful for business users while remaining understandable, maintainable and
160 160   compatible with future upgrades.
161 161   </p>
188 +
162 162   <p>
163 163   Development can start with a small improvement, a prototype or a full application. The important part is
164 164   to clarify the business process, model the information correctly and choose the right technical level:
... ... @@ -165,13 +165,28 @@
165 165   configuration, scripting, extension development, external integration or AI-assisted knowledge access.
166 166   </p>
167 167   </div>
195 +
168 168   <ol class="process-list">
169 - #foreach ($entry in $developmentProcessItems)
170 - <li>
171 - <strong>$entry.title</strong>
172 - $entry.content
173 - </li>
174 - #end
197 + <li>
198 + <strong>Understand the business process</strong>
199 + Clarify users, roles, data, statuses, permissions, outputs, notifications and expected decisions.
200 + </li>
201 + <li>
202 + <strong>Design the XWiki model</strong>
203 + Define the right structure using pages, spaces, XClasses, templates, sheets, rights and views.
204 + </li>
205 + <li>
206 + <strong>Choose the implementation level</strong>
207 + Decide whether the feature should be built with configuration, scripting, Java components or a packaged extension.
208 + </li>
209 + <li>
210 + <strong>Build and validate iteratively</strong>
211 + Implement the feature in manageable steps and validate it with real usage scenarios.
212 + </li>
213 + <li>
214 + <strong>Document and prepare for maintenance</strong>
215 + Leave clear notes about configuration, custom code, assumptions and future improvement areas.
216 + </li>
175 175   </ol>
176 176   </div>
177 177   </div>
... ... @@ -178,57 +178,61 @@
178 178   </section>
179 179  
180 180   ## EXAMPLE SOLUTIONS
181 - #set ($developmentExampleItems = [{
182 - 'title': 'SOP and document control',
183 - 'icon': 'file-text-o',
184 - 'content': 'Controlled documents with review, approval, publishing, revision tracking, PDF export and lifecycle management.'
185 - },{
186 - 'title': 'Internal workflow applications',
187 - 'icon': 'tasks',
188 - 'content': 'Lightweight business applications for requests, approvals, registers, task queues and process tracking.'
189 - },{
190 - 'title': 'Knowledge base structures',
191 - 'icon': 'sitemap',
192 - 'content': 'Templates, metadata, taxonomies, related articles and navigation structures for large knowledge bases.'
193 - },{
194 - 'title': 'AI-assisted knowledge access',
195 - 'icon': 'comments-o',
196 - 'content': 'Integrations that feed selected XWiki content into AI knowledge tools, helping users ask questions and retrieve relevant information while XWiki remains the maintained source of truth.'
197 - }])
198 198   <section aria-labelledby="examples-title">
199 199   <div class="container">
200 200   <h2 id="examples-title">Example solutions</h2>
226 +
201 201   <p class="section-intro">
202 202   The same XWiki foundation can support different internal tools, depending on how your organization manages
203 203   knowledge, documents, processes and collaboration.
204 204   </p>
231 +
205 205   <div class="widgets">
206 - #foreach ($entry in $developmentExampleItems)
207 - <article class="widget">
208 - <div class="icon" aria-hidden="true">
209 - <i class="fa fa-$entry.icon"></i>
210 - <h4>$entry.title</h4>
211 - </div>
212 - <p>$entry.content</p>
213 - </article>
214 - #end
233 + <article class="widget">
234 + <div class="icon" aria-hidden="true">
235 + <i class="fa fa-file-text-o"></i>
236 + <h4>SOP and document control</h4>
237 + </div>
238 + <p>
239 + Controlled documents with review, approval, publishing, revision tracking, PDF export and lifecycle management.
240 + </p>
241 + </article>
242 +
243 + <article class="widget">
244 + <div class="icon" aria-hidden="true">
245 + <i class="fa fa-tasks"></i>
246 + <h4>Internal workflow applications</h4>
247 + </div>
248 + <p>
249 + Lightweight business applications for requests, approvals, registers, task queues and process tracking.
250 + </p>
251 + </article>
252 +
253 + <article class="widget">
254 + <div class="icon" aria-hidden="true">
255 + <i class="fa fa-sitemap"></i>
256 + <h4>Knowledge base structures</h4>
257 + </div>
258 + <p>
259 + Templates, metadata, taxonomies, related articles and navigation structures for large knowledge bases.
260 + </p>
261 + </article>
262 +
263 + <article class="widget">
264 + <div class="icon" aria-hidden="true">
265 + <i class="fa fa-comments-o"></i>
266 + <h4>AI-assisted knowledge access</h4>
267 + </div>
268 + <p>
269 + Integrations that feed selected XWiki content into AI knowledge tools, helping users ask questions
270 + and retrieve relevant information while XWiki remains the maintained source of truth.
271 + </p>
272 + </article>
215 215   </div>
216 216   </div>
217 217   </section>
218 218  
219 219   ## RELATED SERVICES
220 - #set ($relatedDevelopmentServiceItems = [{
221 - 'title': 'XWiki Support & Maintenance',
222 - 'url': 'services.xwiki-maintenance-support',
223 - 'content': 'Ongoing technical care for production environments, including troubleshooting, maintenance planning and recovery support.',
224 - 'linkLabel': 'View support services'
225 - },{
226 - 'title': 'XWiki Upgrade Services',
227 - 'url': 'services.xwiki-upgrades',
228 - 'content': 'Safe LTS upgrades with staging validation, compatibility checks, rollback planning and post-upgrade verification.',
229 - 'linkLabel': 'View upgrade services'
230 - }])
231 -
232 232   <section class="resource-strip" aria-labelledby="related-title">
233 233   <div class="container">
234 234   <h2 id="related-title">Related XWiki services</h2>
... ... @@ -238,13 +238,21 @@
238 238   </p>
239 239  
240 240   <div class="resource-grid">
241 - #foreach ($entry in $relatedDevelopmentServiceItems)
242 - <article class="resource-card">
243 - <h4>$entry.title</h4>
244 - <p>$entry.content</p>
245 - <a href="$xwiki.getURL($entry.url)">$entry.linkLabel</a>
246 - </article>
247 - #end
287 + <article class="resource-card">
288 + <h4>XWiki Support &amp; Maintenance</h4>
289 + <p>
290 + Ongoing technical care for production environments, including troubleshooting, maintenance planning and recovery support.
291 + </p>
292 + <a href="$xwiki.getURL('services.xwiki-maintenance-support')">View support services</a>
293 + </article>
294 +
295 + <article class="resource-card">
296 + <h4>XWiki Upgrade Services</h4>
297 + <p>
298 + Safe LTS upgrades with staging validation, compatibility checks, rollback planning and post-upgrade verification.
299 + </p>
300 + <a href="$xwiki.getURL('services.xwiki-upgrades')">View upgrade services</a>
301 + </article>
248 248   </div>
249 249   </div>
250 250   </section>