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

From version 7.5
edited by Agnease
on 2026/05/25 12:53
Change comment: There is no comment for this version
To version 7.6
edited by Agnease
on 2026/05/25 12:55
Change comment: There is no comment for this version

Summary

Details

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