Cloudcore

Frontend Starters

Three starter templates to get your site running. Each connects to the Public API to fetch published content. Deploy to Vercel, Netlify, or Cloudflare Pages.

In production, point your frontend at the Public API (api.yourdomain.com) rather than the CMS directly. This keeps the CMS locked down behind Cloudflare Access while your site reads content through a hardened, read-only endpoint.

React + Vite

Single-page app with React Router and TanStack Query. Client-side rendering.

git clone https://github.com/cloudcore-cms/cloudcore-react.git
cd cloudcore-react
cp .env.example .env
# Edit .env: VITE_CMS_URL=https://api.yourdomain.com
npm install && npm run dev
PlatformDeploy
Vercelnpx vercel — set VITE_CMS_URL env var
Netlifynpx netlify deploy --build — set env in dashboard
Cloudflare Pagesnpm run build && npx wrangler pages deploy dist

Next.js

Server-rendered with App Router. ISR for dynamic content. Image optimization.

git clone https://github.com/cloudcore-cms/cloudcore-next.git
cd cloudcore-next
cp .env.example .env.local
# Edit .env.local: NEXT_PUBLIC_CMS_URL=https://api.yourdomain.com
npm install && npm run dev
PlatformDeploy
Vercelnpx vercel — auto-detects Next.js
Netlifynpx netlify deploy --build (requires @netlify/plugin-nextjs)
Cloudflare PagesRequires @cloudflare/next-on-pages

Astro

Static site generation. Zero JavaScript shipped by default. Perfect Lighthouse scores.

git clone https://github.com/cloudcore-cms/cloudcore-astro.git
cd cloudcore-astro
cp .env.example .env
# Edit .env: PUBLIC_CMS_URL=https://api.yourdomain.com
npm install && npm run dev
PlatformDeploy
Vercelnpx vercel
Netlifynpx netlify deploy --build
Cloudflare Pagesnpm run build && npx wrangler pages deploy dist

Build your own

The public API is framework-agnostic. Use any frontend — Vue, Svelte, Solid, or even a mobile app. The key endpoints:

GET /api/v1/public/content?type=page          # List published pages
GET /api/v1/public/content?type=post          # List published posts
GET /api/v1/public/content/page/home          # Get page by slug
GET /api/v1/public/content/post/my-post       # Get post by slug
GET /api/v1/public/categories                 # List categories
GET /api/v1/public/tags                       # List tags
GET /api/v1/media/:id/file                    # Serve media file

Or use an AI coding assistant to generate a custom frontend — give it the API docs and your design requirements.