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:
Username: admin@dotcms.com
Password: admin
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:
Username: admin@dotcms.com
Password: admin
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.