Skip to content

Routing & Pages

PinTeach uses TanStack Router with lazy-loaded routes. All routes are defined in apps/app/src/router.tsx with 30+ pages.

Route Purpose
/ Landing page
/login Google OAuth for teachers
/auth/student-login Magic link flow
/auth/verify Magic link verification
/$slug Public teacher profile
/book/$slug Public booking page
/services/$slug Public services listing
/reviews/$slug Embeddable reviews (iframe)
Route Purpose
/teacher/dashboard KPIs, next session, smart actions
/teacher/calendar Week/agenda views, scheduling
/teacher/messages Student contact (WhatsApp/email)
/teacher/students CRM list, profiles, enrollments
/teacher/payments Transaction history, refunds
/teacher/insights Revenue charts, funnel, retention
/teacher/profile About, layout editor, analytics
/teacher/settings Scheduling, Stripe, Calendar, availability
/teacher/templates Material browser (list/grid/kanban)
/teacher/organization Tag management
/teacher/services Service management (3D picker)
/teacher/widgets Embeddable widget configs
/teacher/reviews Review dashboard (5 tabs)
/teacher/onboarding 4-step setup wizard
Route Purpose
/student/ Credits, upcoming sessions
/student/book Session booking
/student/packages Enrollment purchase
apps/app/src/routes/teacher/sessions.lazy.tsx
import { createLazyFileRoute } from '@tanstack/react-router';
export const Route = createLazyFileRoute('/teacher/sessions')({
component: SessionsPage,
});
function SessionsPage() {
const { t } = useTranslation();
useDocumentTitle(t('nav.sessions'));
// ...
}

The teacher shell uses a collapsible sidebar:

  • Main: Inicio, Calendario, Mensajes, Alumnos
  • Organizacion: Mi Material, Organizacion
  • Negocio: Servicios, Widgets, Resenas, Pagos, Rendimiento
  • Configuracion: Mi perfil, Ajustes

12 navigation shortcuts using two-key sequences (800ms timeout):

Shortcut Destination
g d Dashboard
g c Calendar
g s Students
g p Payments
g i Insights
g t Templates
g v Services
g w Widgets
g r Reviews
g f Profile
g x Settings
g m Messages

Plus 7 calendar-specific shortcuts (N, T, arrows, 1, 2, C).

Cmd+K: Command Palette (student search + shortcut navigation) Shift+?: Shortcut Help dialog