Getting Started with dotCMS

Getting Started with dotCMS

Getting Started with dotCMS

Welcome to dotCMS! This guide will help you get started quickly, whether you’re building a headless site with frontend frameworks or using our templating language Velocity for a more traditional approach.


1. Try the dotCMS Demo Site (No Install Required)

The fastest way to explore dotCMS is through our preconfigured demo instance, which includes sample content, APIs, and admin access.

How to access the Demo Site:
The Demo Site frontend can be accessed here: https://demo.dotcms.com


Login:
Go to https://demo.dotcms.com/dotAdmin and use the following credentials to login:

With the Demo Site, you can:

  • Explore the dotCMS Admin UI instantly

  • Manage and edit content

  • Test APIs, work with Velocity templates, or explore our Frontend SDKs.

Note: Running dotCMS locally is optional and not required to start. The demo instance gives you everything you need to explore and begin building right away.  Keep in mind that the demo site gets rebuilt from scratch twice a day.


2. Run dotCMS Locally (Optional)

If you prefer to run dotCMS on your local machine, you can use Docker (recommended for fast setup).

A. Run with Demo Data

curl -o docker-compose.yml https://dotcms.com/run/demo && docker-compose up

This command will download and start dotCMS with preconfigured demo content for you to explore immediately.

B. Run with a Clean Setup

curl -o docker-compose.yml https://dotcms.com/run/clean && docker-compose up

This option starts dotCMS with a clean setup, where you can create your own content from scratch.

After running either command, open http://localhost:8080/dotAdmin in your browser and log in with:

Fore more info, please read our Installation Quick Start Guide.


3. Choose Your Frontend Setup

dotCMS offers two frontend development approaches:

A. Headless (Next.js, Vue, Angular, Astro, PHP, .NET, etc)

If you’re using dotCMS as a headless CMS, choose a frontend example project:

Framework

Quick Start

Next.js

git clone https://github.com/dotCMS/core/tree/main/examples/nextjs

Vue.js

git clone https://github.com/dotCMS/core/tree/main/examples/vuejs

Angular

git clone https://github.com/dotCMS/core/tree/main/examples/angular

Astro

git clone https://github.com/dotCMS/core/tree/main/examples/astro

Example: Running the Next.js Starter

npx create-next-app my-dotcms-app --example https://github.com/dotCMS/core/tree/main/examples/nextjs
cd my-dotcms-app
npm install
npm run dev

Then, update your .env.local file to point to your dotCMS instance. For more information on how to set up and run our next.js example, read the instructions here.


B. Server Side Templating (Velocity)

If you’re building a server side rendered  website inside dotCMS, you can use Velocity for dynamic content rendering.

Create a Template

  • Go to Templates > New Template

  • Select the Advanced option

  • Add a simple Velocity snippet:

#set($blogs = $dotcontent.pull("+contentType:blog”, 10, “modDate desc”))

#foreach($blog in $blogs)

   <div>$blogcontent.title</div>

#end

Create a Page

  • Go to Pages > Create Page

  • Select your recently created template

  • Save or Publish

  • Now you should be able to see a page with Blog posts rendered in the Page Editor (UVE)

Note: For this Velocity snippet to work, you must create a Blog Content Type and at least one Blog content entry.

Why Velocity?

  • Directly integrates with dotCMS’s native rendering engine

  • High Performance and Scalable

  • Ideal for traditional, full-page CMS-based websites

  • Allows for custom layouts, themes, and server-side logic


4. Next Steps

Now that you have dotCMS running, explore:
✔️ Creating Custom Content Types
✔️ Managing Custom Workflows
✔️ Fetch data using APIs

🔹 Need Help? Check out our Developer Docs or join the dotCMS Community.

)