Initial commit

This commit is contained in:
2026-08-22 17:29:31 +00:00
commit 080c4d0f39
14 changed files with 7128 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts
+15
View File
@@ -0,0 +1,15 @@
{
"editor.detectIndentation": false,
"editor.insertSpaces": false,
"editor.tabSize": 4,
"eslint.options": {
"overrideConfigFile": "./eslint.config.mts"
},
"eslint.validate": [
"javascript",
"typescript",
"javascriptreact",
"typescriptreact"
],
"eslint.run": "onType"
}
+36
View File
@@ -0,0 +1,36 @@
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).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
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.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
## Deploy on Vercel
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.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
+17
View File
@@ -0,0 +1,17 @@
@import "tailwindcss";
:root {
--background: #FFFFFF;
--foreground: #000000;
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
}
body {
background: var(--background);
color: var(--foreground);
font-family: Arial, Helvetica, sans-serif;
}
+29
View File
@@ -0,0 +1,29 @@
import { type ReactNode } from 'react';
import { type Metadata } from 'next';
import '@/app/globals.css';
type Props = Readonly<{
children: ReactNode;
}>;
export const metadata: Metadata = {
title: {
default: '<Title>',
template: '%s | <Template>'
},
description: '<Description>',
keywords: [ '<Keyword>' ],
alternates: {
canonical: 'https://<domain>'
}
};
export default function RootLayout({ children }: Props) {
return (
<html lang="de" >
<body>
{children}
</body>
</html>
);
}
+5
View File
@@ -0,0 +1,5 @@
export default function Page() {
return (
<p>Works!</p>
);
}
+19
View File
@@ -0,0 +1,19 @@
import { type MetadataRoute } from 'next';
export default function robots(): MetadataRoute.Robots {
return {
rules: [
{
userAgent: '*',
allow: '/',
disallow: [
'/private/',
'/cdn-cgi/',
'/_next/'
]
}
],
sitemap: 'https://<domain>/sitemap.xml'
};
}
+30
View File
@@ -0,0 +1,30 @@
import { type MetadataRoute } from 'next';
type Route = MetadataRoute.Sitemap[number];
type Params = Readonly<{
path: string;
changeFrequency?: Route['changeFrequency'];
priority?: Route['priority'];
}>;
const baseURL = 'https://<domain>';
function buildRoute({ path, changeFrequency = 'yearly', priority = 0.0 }: Params) {
const route = {
url: `${baseURL}${path}`,
changeFrequency,
priority
} as Route;
return route;
}
export default function sitemap(): MetadataRoute.Sitemap {
return [
buildRoute({ path: '/', changeFrequency: 'monthly', priority: 1.0 })
];
}
+43
View File
@@ -0,0 +1,43 @@
import { defineConfig, globalIgnores } from 'eslint/config';
import nextVitals from 'eslint-config-next/core-web-vitals';
import nextTs from 'eslint-config-next/typescript';
const eslintConfig = defineConfig([
...nextVitals,
...nextTs,
// Override default ignores of eslint-config-next.
globalIgnores([
// Default ignores of eslint-config-next:
'.next/**',
'out/**',
'build/**',
'next-env.d.ts'
]),
{
rules: {
// Diese Regeln sind heilig und dürfen NIE verändert werden.
// Andernfalls droht der Tod durch Amboss.
'semi': [ 'error', 'always' ],
'quotes': [ 'error', 'single' ],
'jsx-quotes': [ 'error', 'prefer-double' ],
'comma-dangle': [ 'error', 'never' ],
'brace-style': [ 'error', '1tbs', { allowSingleLine: true } ],
'object-curly-spacing': [ 'error', 'always' ],
'array-bracket-spacing': [ 'error', 'always' ],
'comma-spacing': [ 'error', { before: false, after: true } ],
'id-length': [ 'error', { min: 2, exceptions: [ '_', 'x', 'y', 't' ] } ],
'indent': [ 'error', 'tab', { SwitchCase: 1, flatTernaryExpressions: true } ],
'camelcase': [ 'error', { properties: 'always', ignoreDestructuring: true } ],
'eqeqeq': [ 'error', 'always' ],
'yoda': 'error',
'no-unused-vars': 'off',
'no-console': 'warn',
'no-debugger': 'warn',
'@typescript-eslint/no-unused-vars': [ 'warn', { args: 'all', argsIgnorePattern: '^_', destructuredArrayIgnorePattern: '^_' } ],
'no-useless-assignment': [ 'warn' ]
}
}
]);
export default eslintConfig;
+8
View File
@@ -0,0 +1,8 @@
import { type NextConfig } from 'next';
const nextConfig: NextConfig = {
output: 'standalone',
poweredByHeader: false
};
export default nextConfig;
+6818
View File
File diff suppressed because it is too large Load Diff
+26
View File
@@ -0,0 +1,26 @@
{
"name": "website-template",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
},
"dependencies": {
"next": "16.2.10",
"react": "19.2.4",
"react-dom": "19.2.4"
},
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "16.2.10",
"tailwindcss": "^4",
"typescript": "^5"
}
}
+7
View File
@@ -0,0 +1,7 @@
const config = {
plugins: {
'@tailwindcss/postcss': {}
}
};
export default config;
+34
View File
@@ -0,0 +1,34 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
}
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts",
"**/*.mts"
],
"exclude": ["node_modules"]
}