The marketing site, documentation, and developer portal for Fleetbase — the open-source logistics and supply-chain platform.
- Marketing site — home, platform pages, solutions, pricing, partners, customer stories (
/oli-max,/true-vegan) - Documentation — Platform, FleetOps, Storefront, Pallet, Ledger, CLI, Fleetbase UI, Extension Development, API Reference, Contributing — all rendered with Fumadocs
- API reference generator — auto-generates
/docs/api/*MDX from thefleetbase/postmancollection at build time (seescripts/generate-api-docs.mjs) - Blog — pulled from a Ghost CMS via the Content API
- Customer stories — branded landing pages for production deployments of the Fleetbase Storefront app
- Next.js 15 with the App Router
- TypeScript, React 19
- Tailwind CSS 4 + shadcn/ui components
- Fumadocs for the documentation system (MDX + search)
- Ghost for blog content
- PostHog for product analytics
- pnpm for package management
- Vercel for hosting
Requirements: Node.js 20+, pnpm 10+.
git clone --recurse-submodules git@github.com:fleetbase/fleetbase.io.git
cd fleetbase.io
pnpm install
pnpm devThe site runs at http://localhost:3000.
The
vendor/postmangit submodule supplies the API documentation source. If you cloned without--recurse-submodules, rungit submodule update --init --recursivebeforepnpm install.
Copy .env.local.example to .env.local and fill in the required values:
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_POSTHOG_KEY |
PostHog project key (frontend) |
NEXT_PUBLIC_POSTHOG_HOST |
PostHog ingest host (e.g. https://us.i.posthog.com) |
GHOST_API_URL |
Ghost CMS base URL for the blog |
GHOST_CONTENT_API_KEY |
Ghost Content API key |
GHOST_API_VERSION |
Ghost API version (e.g. v5.0) |
Without the Ghost variables, blog routes fall back to an empty state. Without the PostHog variables, analytics calls no-op locally.
pnpm dev # start the dev server (regenerates API docs first)
pnpm build # production build (regenerates API docs first)
pnpm start # serve the production build
pnpm generate:api-docs # regenerate /docs/api/* from the postman submodule
pnpm lint # next lintfleetbase.io/
├── content/ # MDX content for docs, blog, changelog
│ ├── docs/ # docs sections — platform, fleet-ops, storefront, etc.
│ ├── blog/ # blog post sources
│ └── changelog/
├── public/ # static assets
│ └── images/
│ └── screenshots/ # console + mobile app screenshots used across the site
├── scripts/ # build-time helpers
│ ├── generate-api-docs.mjs # walks vendor/postman and emits /docs/api/* MDX
│ ├── sdk-emitters.mjs # JS / PHP / Python SDK code samples
│ └── api-docs.config.mjs # per-collection mapping & SDK store names
├── src/
│ ├── app/ # Next.js App Router routes
│ ├── components/ # UI components, layout, MDX components
│ └── lib/ # utilities, source loaders, GitHub stars helper
├── vendor/
│ └── postman/ # submodule — fleetbase/postman collection
├── source.config.ts # Fumadocs MDX source registration
└── next.config.ts
Docs live in content/docs/ as .mdx files. Each top-level folder (platform/, fleet-ops/, storefront/, etc.) is registered as its own Fumadocs source in src/lib/source.ts and gets its own sidebar.
The API reference under /docs/api/* is auto-generated from the postman submodule — don't edit those MDX files directly. To improve the API reference, edit the YAML side-files in vendor/postman and submit a PR there. See scripts/README.md for the full generator architecture.
The Contributing Guide covers code, documentation, translations, extensions, and reporting issues. PRs welcome.
AGPL-3.0. Commercial licensing is available — see /licensing/commercial for full details, pricing tiers, and terms.
