Rath Frontend Template
This repository is a lightweight frontend boilerplate powered by Next.js 16, React 19, and MUI 7. It sets up a modern React stack with out-of-the-box routing, styling, and component utilities so you can focus on shaping your UI rather than wiring tooling.
Highlights
- Next.js App Router – frameworks defaults to
src/appand ships with the"use client"entry point shown inpage.js. - MUI + Emotion – themeable UI primitives via
@mui/material,@mui/material-nextjs, and Emotion CSS-in-JS helpers. - Premium data grid ready –
@mui/x-data-grid-premiumis installed so you can build rich admin tables without additional dependency management. - Shared component package – imports
@tranz-rath/components, which is transpiled throughnext.config.mjsso you can consume it directly. - Migration-friendly linting –
eslintconfigured witheslint-config-next’s Core Web Vitals rules and customized ignore list. - Path aliases –
@/*resolves to./src/*, making deep imports simpler. - Zero opinionated styles – component shell returns an empty card so you can drop in your own layout/logic quickly.
Getting Started
- Install dependencies (Node.js 18+ recommended):
npm install - Start the dev server:
The site will be available at
npm run devhttp://localhost:3000by default.
Available Scripts
npm run dev– launches Next.js in development mode with fast refresh and the app router.npm run build– creates an optimized production build (.next/output).npm run start– serves the production build (run this afternpm run build).npm run lint– runs ESLint using the Next.js core web vitals configuration.
Project Layout
.
├── public/ # Static assets served from the root URL
└── src/
└── app/
└── page.js # Root client component (empty card shell + action column template)
page.js exports a client component that already imports MUI layout primitives and defines an Action column template to illustrate how @mui/material chips can link into a CRUD workflow (edit, clone, ledger routes).
Configuration Notes
next.config.mjsenables the experimental React compiler and tells Next to transpile@tranz-rath/components, ensuring compatibility with the app router.jsconfig.jsondefines the@/*alias for nicer imports fromsrc.eslint.config.mjsextends the Core Web Vitals rules and keeps Next’s default ignore patterns while allowing you to add more if needed.
Extending the Template
- Drop additional routes in
src/app(each folder is treated as a route segment). - Replace the empty
CardContentinsidepage.jswith your dashboard or page content, wiring data grids, charts, or forms as needed. - Add theme overrides or a custom
_applayout if you need global state/context providers. - Use
public/for favicons, fonts, or static JSON – they are served from/.
Next Steps
- Wire API/data fetching (SSR or client-fetching) depending on your UX needs.
- Swap in global providers (ThemeProvider, localization, auth) before returning the root layout.
- Create sensible test coverage once the UI fills out.