Skip to content

Commit d78a943

Browse files
feat(app): scaffold Next.js + Tailwind + routes (#42)
- Single Next.js app (App Router) at apps/web/ - Tailwind CSS initialized - Routes: / (placeholder landing), /inspector (placeholder), /docs (placeholder) - Workspace dependencies on @ocpp-debugkit/core, scenarios, reporter - "private": true (never publishable to npm) - No changeset (private package, not published) Closes #26
1 parent a959fa4 commit d78a943

20 files changed

Lines changed: 3404 additions & 93 deletions

‎CURRENT_STATE.md‎

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ report exported. CLI and web inspector.
106106
- ✅ `AnalysisResult` input type
107107
- ✅ 11 tests (structure, failure inclusion, readability, metadata, severity)
108108

109-
### CLI Package (in progress — this PR)
109+
### CLI Package (PR #41)
110110

111111
- ✅ `packages/cli/` — new package
112112
- ✅ `ocpp-debugkit inspect <file>` — parse + analyze + output
@@ -118,16 +118,24 @@ report exported. CLI and web inspector.
118118
- ✅ 17 integration tests (execa-based)
119119
- ✅ Converted JSON fixtures to TS modules (fixes Node.js ESM JSON import issue)
120120

121+
### Next.js App Scaffold (in progress — this PR)
122+
123+
- ✅ `apps/web/` — single Next.js app (App Router)
124+
- ✅ Tailwind CSS initialized
125+
- ✅ Routes: `/` (placeholder), `/inspector` (placeholder), `/docs` (placeholder)
126+
- ✅ Workspace dependencies on `@ocpp-debugkit/core`, `scenarios`, `reporter`
127+
- ✅ `"private": true` (never publishable to npm)
128+
121129
## What's Next
122130

123131
1. **Issue #20** → complete (PR #33): data model + parser + normalizer
124132
2. **Issue #21** → complete (PR #34): timeline + detection + summarizer + validator
125133
3. **Issue #22** → complete (PR #35): public API export + package config
126134
4. **Issue #23** → complete (PR #39): scenarios package (format + 5 initial scenarios)
127135
5. **Issue #24** → complete (PR #40): reporter package (Markdown report generator)
128-
6. **Issue #25** (this PR) → complete: CLI package (scaffold + inspect + report + scenario commands)
129-
7. **Issue #26**: Next.js app scaffold (Next.js + Nextra + Tailwind + Shadcn)
130-
8. **Issue #27**: Landing page
136+
6. **Issue #25** → complete (PR #41): CLI package (scaffold + inspect + report + scenario commands)
137+
7. **Issue #26** (this PR) → complete: Next.js app scaffold (Next.js + Tailwind, routes for /, /inspector, /docs)
138+
8. **Issue #27**: Landing page (hero, features, architecture, quick start, footer)
131139
9. **Issue #28**: Inspector (trace input + timeline + message inspector)
132140

133141
## Known Blockers / Decisions Pending
@@ -144,4 +152,4 @@ report exported. CLI and web inspector.
144152
| `@ocpp-debugkit/cli` | in progress (inspect + report + scenario) | 0.0.0 |
145153
| `@ocpp-debugkit/replay` | not started | — |
146154
| `@ocpp-debugkit/react` | not started | — |
147-
| `apps/web` | not started | — |
155+
| `apps/web` | in progress (scaffold + routes) | — |

‎apps/web/.gitignore‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.*
7+
.yarn/*
8+
!.yarn/patches
9+
!.yarn/plugins
10+
!.yarn/releases
11+
!.yarn/versions
12+
13+
# testing
14+
/coverage
15+
16+
# next.js
17+
/.next/
18+
/out/
19+
20+
# production
21+
/build
22+
23+
# misc
24+
.DS_Store
25+
*.pem
26+
27+
# debug
28+
npm-debug.log*
29+
yarn-debug.log*
30+
yarn-error.log*
31+
.pnpm-debug.log*
32+
33+
# env files (can opt-in for committing if needed)
34+
.env*
35+
36+
# vercel
37+
.vercel
38+
39+
# typescript
40+
*.tsbuildinfo
41+
next-env.d.ts

‎apps/web/README.md‎

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
2+
3+
## Getting Started
4+
5+
First, run the development server:
6+
7+
```bash
8+
npm run dev
9+
# or
10+
yarn dev
11+
# or
12+
pnpm dev
13+
# or
14+
bun dev
15+
```
16+
17+
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
18+
19+
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
20+
21+
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
22+
23+
## Learn More
24+
25+
To learn more about Next.js, take a look at the following resources:
26+
27+
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
28+
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
29+
30+
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
31+
32+
## Deploy on Vercel
33+
34+
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
35+
36+
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.

‎apps/web/eslint.config.mjs‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { defineConfig, globalIgnores } from 'eslint/config';
2+
import nextVitals from 'eslint-config-next/core-web-vitals';
3+
import nextTs from 'eslint-config-next/typescript';
4+
5+
const eslintConfig = defineConfig([
6+
...nextVitals,
7+
...nextTs,
8+
// Override default ignores of eslint-config-next.
9+
globalIgnores([
10+
// Default ignores of eslint-config-next:
11+
'.next/**',
12+
'out/**',
13+
'build/**',
14+
'next-env.d.ts',
15+
]),
16+
]);
17+
18+
export default eslintConfig;

‎apps/web/next.config.ts‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import type { NextConfig } from 'next';
2+
3+
const nextConfig: NextConfig = {/* config options here */};
4+
5+
export default nextConfig;

‎apps/web/package.json‎

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"name": "web",
3+
"version": "0.1.0",
4+
"private": true,
5+
"scripts": {
6+
"dev": "next dev",
7+
"build": "next build",
8+
"start": "next start",
9+
"lint": "eslint",
10+
"typecheck": "tsc --noEmit",
11+
"clean": "rm -rf .next .turbo"
12+
},
13+
"dependencies": {
14+
"@ocpp-debugkit/core": "workspace:*",
15+
"@ocpp-debugkit/scenarios": "workspace:*",
16+
"@ocpp-debugkit/reporter": "workspace:*",
17+
"next": "16.2.10",
18+
"react": "19.2.4",
19+
"react-dom": "19.2.4"
20+
},
21+
"devDependencies": {
22+
"@tailwindcss/postcss": "^4",
23+
"@types/node": "^20",
24+
"@types/react": "^19",
25+
"@types/react-dom": "^19",
26+
"eslint": "^9",
27+
"eslint-config-next": "16.2.10",
28+
"tailwindcss": "^4",
29+
"typescript": "^5"
30+
}
31+
}

‎apps/web/postcss.config.mjs‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const config = {
2+
plugins: {
3+
'@tailwindcss/postcss': {},
4+
},
5+
};
6+
7+
export default config;

‎apps/web/public/file.svg‎

Lines changed: 1 addition & 0 deletions
Loading

‎apps/web/public/globe.svg‎

Lines changed: 1 addition & 0 deletions
Loading

‎apps/web/public/next.svg‎

Lines changed: 1 addition & 0 deletions
Loading

0 commit comments

Comments
 (0)