A new article about XWiki

I wrote an article called The Power of XWiki about how I used XWiki to build my website.

The main point is to explain how the “XObjects” feature allowed me to build the site based on objects, not just static HTML/CSS/XWiki. Feel free to leave comments on that page or here.



@atripp This is awesome! We love it when we see users who grasp the power of XWiki! :slight_smile:

Thanks a lot for writing and sharing this article!

I’ve linked it from https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/DataModel/#HSuggestedReading

My favorite quotes:

This is a very old problem. I’ve been searching for over 30 years to find a reasonable tool that requires minimal programming, let’s me build a reasonable UI (a website). I’ve found many that claim to be what I’m looking for but are not, and even some that are close. But never really what I’m looking for, until now.

Eventually, I came across this tutorial with a catchy name of Creating a FAQ Application (Manual). At some point in the middle, a lightbulb appeared above my head as I realized that this is (almost) exactly what I’m looking for! Not just for this current website, but perhaps also the thing I’ve been searching for the last 35 years!

XWiki is the first and only tool that does that. And I don’t believe mine is a just a narrow use case. The website that I’ve built with XWiki happens to look a lot like a wiki, but I believe everything I’ve said here would also apply if it was any generic non-trivial website.

@atripp I’ve taken the liberty of quoting you onhttps://www.xwiki.org/xwiki/bin/view/Main/Feedback/Testimonials :slight_smile: I hope this is fine with you.

@atripp BTW what you described is exactly what XWiki is about to me, see the “did you know” box on the right on https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/SecondGenerationWiki/

That’s fine.

Yes, I think so too. Or, at least, the whole idea of “build an app that’s based on DATA, not static pages” is XWiki’s best feature, and I don’t see that feature on other wiki software (though I’ve only tried a couple), or anything else for that matter. It can take a long time using MediaWiki, WordPress, or whatever to even realize “this is NOT going to be maintainable”. WordPress is fine for a simple website, but if your website depends on data (i.e. has a database), you’re in trouble. You would think that MediaWiki would be better because so much info on wikipedia can be based on semantic data, but it doesn’t really let you build data objects. I thought [[https://www.semantic-mediawiki.org/wiki/Semantic_MediaWiki]] might be what I wanted, but it seems very convoluted.

Instead, I spent an hour going through the FAQ tutorial and at some point suddenly “got it”.

Even listing several types of applications that you can build with a “2nd generation wiki” is kind of selling it short. You should be able to build nearly ANY web application.

Also, I’m not a fan of AWM, or at least the FAQ Tutorial that uses it.. When I tried it, I thought “wait, I didn’t just build an app, I just pulled together an app that someone else has already built”, and felt let down.

What I would really like to see is the “FAQ Manual Tutorial” enhanced to include not just two text fields, but a whole bunch of fields. For example, a “Contact Manager” app where the Person XObject has name, age, sex, etc. And present it as “How to build a full application with XWiki”. And list the ability to build a “full web based application” as one of your Features

Would you be ready to create a new tutorial with this idea? We could then show it, in addition to the FAQ one.

Actually we do that here: https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/Applications

(I’ve edited it a bit to add some links).

It’s also available at https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Architecture/

Isn’t that enough? What could we do more?

Yes, those pages look good.

For me, “a picture is worth a thousand words” and “an example is worth a thousand documents”. I had read most of the XWiki documentation, but only after going through the FAQ example did I really “get it”.

So what I would suggest is a new “Example XWiki Application”. A complete, robust, feature-rich web app (not at all wiki), built with XWiki. And “tutorial-style” documentation that explains how to build it. I will start it off with a tutorial on how to build a Contact Manager app, going through really the same steps as the FAQ example. But instead of a FAQ object with just “question” and “answer” fields, I’ll have a “Person” object with many fields.

Cool, are you willing to help and contribute such a tutorial? I don’t mind if we have several examples.

For me the tutorial was enough because it uses 2 fields and I don’t see the difference between 2 fields or 4 fields. When you follow it, you can clearly see that you can use any field types and as many fields as you want (either from the AWM tutorial or the manual one). But I’m very fine if you’re ok to have a try at providing a tutorial for a second app and be willing to maintain it. Would be a nice contribution. You could start the tutorial page on https://dev.xwiki.org/xwiki/bin/view/Drafts/ until it’s ready to be merged. WDYT?


Note that the FAQ app is not at all wiki IMO. Maybe you meant a less generic app.?

Another idea of an app:

I created a first draft here: https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Tutorials/Creating%20A%20Contact%20Manager%20Application/

Sorry, I did this before I read your post, so I didn’t know there was a “Drafts” area.

There are a handful of “TODOs” left, but it’s pretty close to what I was picturing.
It’s essentially “another person’s take” on the FAQ tutorial. I tried not to cover the same material too much. (e.g. using SOLR instead of XWQL, using a template instead of a custom form, using different custom code rather than a livetable).

@atripp This is awesome, thanks for writing it.

I haven’t fully read it but will do so very soon.

One small comment: we have some style guide for xwiki.org, especially for images, so that we have a consistent L&F. Do you think you could use the {{image/}} macro with the proper width? See:

Cool, I’ll try to do a review later today.

Keep it up! :slight_smile:


Some other tip:

  • Use ##...## for computer terms. For example instead of writing: This is the "age" xproperty, you’d write: This is the ##age## property.


This about page is the best introduction I’ve seen to using XWiki to build an object driven wiki page.

Thank you!

Great, I plan to clean up the article today.

Thanks! I guess I should really move it from my site to the xwiki site. @vmassol do you agree? and if so, where does it belong?

I think that would be nice, I agree. Now it’s up to you to decide if you’re willing to donate it to xwiki.org :slight_smile:

In term of location, I think we could add a section on https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/SecondGenerationWiki/ at the bottom about user testimonials and link to the article that we would put in a nested page under it.

This page (https://www.xwiki.org/xwiki/bin/view/Documentation/UserGuide/Features/SecondGenerationWiki/ ) is good to me since it’s supposed to explain this concept of xwiki being a platform for developing web app.

Then we have your new tutorial that links to it too, which is good.


Sounds good. I will move it.

And I think I’m done cleaning up this tutorial: https://www.xwiki.org/xwiki/bin/view/Documentation/DevGuide/Tutorials/Creating%20A%20Contact%20Manager%20Application/

I fixed up the style stuff you mentioned, did other cleanup, and added a whole section about how to customize the display of an object (i.e. not just use the default code that you get when you create a sheet).

And I beefed up the conclusion to be quite a shameless plug for XWiki :wink: