import { useEffect, useState } from 'react' import { apiBaseUrl, apiFetch } from './api/client' import './App.css' type InfoResponse = { name: string version: string environment: string timestamp: string } function App() { const [info, setInfo] = useState(null) const [error, setError] = useState(null) const [loading, setLoading] = useState(true) useEffect(() => { apiFetch('/v1/info') .then(setInfo) .catch((err: unknown) => setError(err instanceof Error ? err.message : 'Unknown error'), ) .finally(() => setLoading(false)) }, []) return (

React + .NET Starter

A minimal monorepo skeleton for new projects.

Frontend

Vite + React + TypeScript running on port 3000. Extend{' '} src/App.tsx to begin building your application.

Backend API

Requests go to {apiBaseUrl} via{' '} VITE_API_BASE_URL.

{loading &&

Checking API…

} {error && (

Unable to reach API: {error}

)} {info && (
Status
Connected
Name
{info.name}
Version
{info.version}
Environment
{info.environment}
Server time (UTC)
{new Date(info.timestamp).toISOString()}
)}
) } export default App