New here?

Our Getting Started tutorial will get you up to speed with Hippo development.

Follow the Hippo Trail


The relations between repository, CMS and delivery tier.

How it all fits together

Developer Info

Source code, forge, license, roadmap and system requirements.

Developer Info


Interested? We're always on the lookout for new talent.

Have a look

What is Hippo CMS?

Hippo CMS is an open source Java CMS. We built it so you can easily integrate it into your existing architecture.

Open Platform

We are big believers in open source. We use and contribute to many open source components - and our entire core is available under the Apache License

Java Stack

What you'd expect from a Java environment: easy to integrate, testable, ready for continuous integration, and sticking to familiar Java standards such as JCR 2.0 and JAX-RS


Highly scalable platform which supports both clustering and replication


Performance matters to us! Hippo CMS  scales both  horizontally and vertically and makes use of  multi-layered caching to squeeze the most out of your implementation


Query content using REST, or import content from somewhere else into Hippo. Hook up an external application into the rendering phase via Spring. Build a Mobile app or an AngularJS app that consumes content from Hippo. Use external data systems to feed our personalisation engine


Protect your content with fine grained authorizations,  LDAP support and secure replication

The CMS Features You'd Expect

Content editing, workflow, history, version control, image library, user management, out of the box

Multi-lingual, Multi-site, Multi-channel

Out of the box support for multi-language, multi-site and multi-channel implementations. Cross-domain, cross-site, cross-language and cross-channel linking between documents are resolved automatically.

Separate Content from Presentation

Break free from page oriented development. Redesign your website without modifying content and reuse your content across websites, mobile  apps, etc. Use Hippo's  fully customizable document oriented model and built-in modelling tools to separate content from presentation.


Deploy on-premise or in the cloud on your preferred servlet container

Extensible Components

Use or extend existing components from the Hippo Feature Library or build your own. Use JSP, Freemarker or AngularJS to render your components

Give Control To End Users

End users can manage page configurations, menus, URL structures and component mappings. Without you having to go into code


Deliver personalized pages to visitors with the Relevance module


We don't mess with your HTML output. Use whatever web framework you like; Bootstrap, AngularJS, it's up to you


Out of the box querying, facetting and full text search capabilities based on Apache Lucene - or hook up Elasticsearch if you need more power


Can I try it out?

Yes! Try the online demo of  Hippo Enterprise Edition or create your own  project with Hippo Community Edition.

Look under the hood if you like, we share our source code.

Gallery Media Banner

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s

Did you see this?

Meet Hippo CMS 10 for Developers
May 27, 2015

Last week, we announced the release of Hippo CMS 10. Now we want to take the time to truly introduce this new release.

Simplify Upgrades with Hippo's Synchronization Add-on
June 15, 2015

Use the Synchronization Add-on you to smoothen the process of continuous delivery.

Re: [hippo-community] How to display multiple documents under the same page
by: Gangel Dávid | 05-08-15 12:09:05 (CEST)

AFAIK linking together 2 document can be done as you said based on docbase and with built in compund type link. I know that with link you get the benefit of: A Link field is used to create an internal link to a different content item (such as a document or asset) in the repository. It is stored as

Re: [hippo-community] Strange behavior filter.addContain()
by: m.chatzidakis | 05-08-15 11:53:10 (CEST)

Hi, I think the query you're testing with is not close to what is queried when using filter.addContains(..). I would do the following: 1. Test with a query making use of jcr:contains, e.g. "//content/documents//*[jcr:contains(*, 'model-test')]" 2. Add a breakpoint in my code, just before the

Re: [hippo-community] Strange behavior filter.addContain()
by: arsdeep.singh | 05-08-15 11:29:38 (CEST)

In Repository servlet with the xpath: content*/*documents/myproject*/*test-folder//*[@myproject:title='model-test' and @hippo:availability = 'live'] I get the *correct 3 results*. *These are published documents * Yes my documents are published. I think I have to go for an workaround. Regards,

Re: Embedding javascript
by: zakijuma | 05-08-15 11:26:26 (CEST)

Oops my fault. of course I had to switch to toggel html source and then add the javascript code.

Re: [hippo-community] Strange behavior filter.addContain()
by: t.jeger | 05-08-15 11:24:13 (CEST)

Hmm, then I'd expect you don't need to escape it in the filter either. are the documents with the model-test title published? If not, that may be why you get no results. On Wed, Aug 5, 2015 at 10:53 AM, arsdeep.singh <> wrote: > In my repository servlet query, I *don't

Re: [hippo-community] Strange behavior filter.addContain()
by: arsdeep.singh | 05-08-15 10:53:25 (CEST)

In my repository servlet query, I *don't escape* the '-'. Regards, Arsdeep Op woensdag 5 augustus 2015 10:49:31 UTC+2 schreef t.jeger: > > The latter I indeed expect to fail, see my comments on [1]. > > So in your repository servlet query, you don't escape the '-'? > > Tobi > > > [1] https://issue

Looking for assistance? You're welcome to ask for help. We have a very active mailing list! Please do check the tutorials and the guidelines first, though.