Skip to content

Routing & Pages

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

RoutePurpose
/Landing page
/loginGoogle OAuth for teachers
/auth/student-loginMagic link flow
/auth/verifyMagic link verification
/$slugPublic teacher profile
/book/$slugPublic booking page
/services/$slugPublic services listing
/reviews/$slugEmbeddable reviews (iframe)
RoutePurpose
/teacher/dashboardKPIs, next session, smart actions
/teacher/calendarWeek/agenda views, scheduling
/teacher/messagesStudent contact (WhatsApp/email)
/teacher/studentsCRM list, profiles, enrollments
/teacher/paymentsTransaction history, refunds
/teacher/insightsRevenue charts, funnel, retention
/teacher/profileAbout, layout editor, analytics
/teacher/settingsScheduling, Stripe, Calendar, availability
/teacher/templatesMaterial browser (list/grid/kanban)
/teacher/organizationTag management
/teacher/servicesService management (3D picker)
/teacher/widgetsEmbeddable widget configs
/teacher/reviewsReview dashboard (5 tabs)
/teacher/onboarding4-step setup wizard
RoutePurpose
/student/Credits, upcoming sessions
/student/bookSession booking
/student/packagesEnrollment purchase
apps/web/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):

ShortcutDestination
g dDashboard
g cCalendar
g sStudents
g pPayments
g iInsights
g tTemplates
g vServices
g wWidgets
g rReviews
g fProfile
g xSettings
g mMessages

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

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