Being able to create and publish content from the Front-End of your website had been accessible to most business' since 2007. However, until 2011, this was reserved strictly for administrators. Company employees and small business owners would login to the Front-End with restricted access, and edit or publish a new page or article. This changed with the introduction of custom Apps. With a CMS like Joomla, and powerful Content Construction Kits like Zoo, we began producing custom Apps.
Let's use the Craigslist-style marketplace as an example. We would want our application to allow website visitors to create and publish content - in this case a listing - on their own, without any help. We might also want to extend options to registered users, that public users don't get access to. This is a pretty standard, simple application need.
We'd need a bunch of categories for listings to be posted to. We'd also want to configure item creation for the listing model. Some elements that would make sense here would be the Title, Images, Price, Description, Contact and maybe some Tags. We might also want a Date element so the items can be sorted by Most Recent when visitors are browsing or searching to buy things. Lastly, we'd want a Related Item element to associate the User Profile with the listing itself. With the Related Items element, we could automatically show every listing from a user when you look at their Profile. In reverse, we could automatically show a link (or Name and Image, etc) to the user's Profile on every listing.