Starter kit
orbix-vue-starterkit/ is the same Vue application without the demo pages: start a new project from it and
copy pages or components from the full template when you need them.
What it includes
- The application shell: sidebar, topbar, footer, page header, theme customizer, command palette, notifications and language menus.
- The
app,authandblanklayouts and the router. - The nine basic authentication pages (sign in, sign up, forgot and reset password, lock screen, two-step verification, email verification, signed out, success).
- One empty start page at
/; unknown URLs return to it. - The Tailwind CSS CSS engine, the five languages with RTL, the theme runtime, the composables, the foundry-ui Vue components and the test suite.
What it leaves out: the demo pages, the components and page scripts only they use, the demo data and the chart
library. Menu links to removed pages point to # until you add your own.

Install
Exactly as the full template (see Installation):
cd orbix-vue-starterkit
npm install
npm run devBring a page from the full template
- Copy the page component from
orbix-vue/src/pages/...to the same folder of the starter kit. - Copy the components it imports (
@/components/apps/ProductCard.vue→src/components/apps/ProductCard.vue). - Add its line to
src/app/pages.tsand its menu entry tosrc/app/menu.ts. - Every translation file of the full template is already in the starter kit (
src/locales/). - If it calls
usePageScript(init), copy the script fromsrc/scripts/(andsrc/data/for demo data). For charts, also copysrc/core/charts.tsandsrc/composables/useChart.tsand runnpm install echarts. - Run
npm run buildandnpm test.
Connect authentication
The auth pages are screens only, so you can plug in the authentication you prefer (your API, Auth0, Firebase,
Supabase, Clerk...). The sign-in form validates its fields in src/scripts/auth.ts and then navigates to
data-auth-next (the dashboard). To call your API instead, handle the submit in the form component:
<!-- src/components/auth/AuthSignIn.vue -->
<script setup lang="ts">
import { useRouter } from 'vue-router';
const router = useRouter();
async function onSubmit(event: SubmitEvent) {
const data = new FormData(event.currentTarget as HTMLFormElement);
const response = await fetch('/api/login', { method: 'POST', body: data, credentials: 'include' });
if (response.ok) await router.push('/');
}
</script>
<template>
<form class="fd-form" novalidate @submit.prevent="onSubmit">
<!-- the fields of the sign-in form -->
</form>
</template>Remove data-auth-form from that form so the demo validation does not run, keep the input name attributes your
API expects (email, password, remember), and protect your pages with a navigation guard in
src/app/router.ts that checks the session:
router.beforeEach((to) => {
if (to.meta.layout === 'app' && !session.isSignedIn()) return '/auth/basic/sign-in';
});