Standardized frontend template for projects in the Inkubator IT GitHub organization. This template is built and maintained by the DevOps team to unify stack choices, local development, containerization, and deployment conventions across client projects.
- Runtime: Bun (scripts, tooling)
- Build tool: Vite
- Framework: React
- Language: TypeScript
- UI: Tailwind CSS v4
- Icons: lucide-react
- Quality: Biome (lint & format)
- Containerization: Docker (Nginx static serving)
.
├─ src/
│ ├─ assets/ # Static assets (e.g., logos)
│ ├─ lib/ # Shared utilities
│ ├─ App.tsx # Root component
│ ├─ index.css # Global styles (Tailwind v4)
│ ├─ main.tsx # App bootstrap
│ └─ vite-env.d.ts # Vite type declarations
├─ public/ # Public assets copied as-is
│ └─ vite.svg
├─ index.html # HTML entry
├─ vite.config.ts # Vite config (alias `@` → `src`)
├─ Dockerfile # Multi-stage (Bun build → Nginx serve)
├─ components.json # UI components registry (if used)
├─ biome.json # Biome config (lint/format)
├─ tsconfig.json # TypeScript config
├─ tsconfig.app.json # TS project references (app)
├─ tsconfig.node.json # TS project references (node build)
├─ package.json # Scripts and deps
└─ bun.lock # Bun lockfile
- Bun installed locally (
bun --version) - Docker (optional, for container builds)
- Create a new repository using this template in the Inkubator IT organization.
- Clone your new repository.
- Copy the
.env.examplefile to.envand fill in the values. - Install dependencies:
bun install- Start the dev server (hot reload):
bun run dev- Open
http://localhost:5173(default Vite port).
Vite reads env files and exposes variables that start with VITE_ to the client.
- Place env files at the project root:
.env,.env.development, etc. - Prefix variables with
VITE_.
Example .env:
VITE_API_BASE_URL="http://localhost:3000"Use in code:
const apiBaseUrl = import.meta.env.VITE_API_BASE_URL as string | undefined;- dev:
vite - build:
tsc -b && vite build - preview:
vite preview - lint:
bunx biome lint - lint:fix:
bunx biome lint --write - format:
bunx biome format --write
Run examples:
bun run dev
bun run build
bun run previewThis template sets an import alias for cleaner paths:
- Alias:
@→./src(seevite.config.ts)
Example:
import { cn } from "@/lib/utils";- Tailwind CSS v4 is preconfigured via
@import "tailwindcss"insrc/index.css. - Light/dark theme tokens are included. Apply
.darkon a parent node to switch.
Build a production image (static site served by Nginx):
docker build -t inkubatorit/vite-react-template .Run the container:
docker run --rm -p 8080:80 inkubatorit/vite-react-templateOpen http://localhost:8080.
This template uses Biome for linting and formatting. Run locally before commits:
bun run lint
bun run format- The production build outputs static files in
dist/. - The provided
Dockerfileservesdist/with Nginx on port80. - Vite env variables are injected at build time; ensure correct values during
build. - If hosting behind a sub-path, set Vite
baseaccordingly invite.config.ts.
This template is maintained by the Inkubator IT DevOps team. Contributions and improvements are welcome via Pull Requests. For significant changes, please open an Issue for discussion first.
For questions or support, contact the Inkubator IT DevOps team.
Copyright (c) Inkubator IT. All rights reserved.