Configuration¶
Configuration Files¶
| File | Purpose |
|---|---|
package.json |
Scripts, dependencies, metadata |
next.config.ts |
Next.js runtime config (output mode, images, security headers) |
tsconfig.json |
TypeScript compiler options and path aliases |
postcss.config.mjs |
Tailwind CSS v4 PostCSS integration |
eslint.config.mjs |
Flat ESLint config using eslint-config-next |
pnpm-workspace.yaml |
Workspace constraints (disable native builds for sharp, unrs-resolver) |
.env / .env.local |
Environment variables (do not commit secrets) |
zensical.toml |
Zensical docs site configuration |
Makefile |
Docker and local dev targets |
Dockerfile |
Multi-stage production image definition |
public/manifest.json |
PWA manifest |
public/robots.txt |
Crawler rules |
Package Scripts¶
Defined in package.json:
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "eslint"
}
}
Environment Variables¶
Defined in .env at the project root.
| Name | Current Value | Used in |
|---|---|---|
APP_NAME |
CipherPortfolio |
Metadata / display |
APP_VERSION |
1.3.4 |
package.json |
CONTACT_EMAIL |
cipherunit.dev@gmail.com |
Footer, Contact.tsx, ContactBox.tsx |
GITHUB_API_BASE_URL |
https://api.github.com/users |
Future integrations |
GITHUB_ACCESS_TOKEN |
placeholder only | Future integrations |
PORT |
3000 |
Dev / prod server port |
Local development should create .env.local with real values and ensure it is gitignored.
TypeScript Configuration¶
tsconfig.json highlights:
- Strict mode enabled
- Target: ES2017
- Module: esnext with bundler resolution
- Path alias:
@/*maps to./src/* resolveJsonModule,isolatedModules,jsx: react-jsx- Next.js plugin enabled
Tailwind CSS v4¶
Configured through @tailwindcss/postcss in postcss.config.mjs.
Theme tokens are in src/app/styles/globals.css:
:root {
--color-bg: #282c33;
--color-pink: #E06B74;
--color-green: #98C379;
--color-yellow: #E5C07A;
--color-blue: #62AEEF;
--color-primery: #C778DD;
--color-secondary: #55B6C2;
--color-stroke: #ABB2BF;
--color-terminal: #00ff00;
--color-bg-terminal: #1e1e1e;
--color-shadow-primery: rgba(199,120,221,0.6);
}
Global overflow behavior disables the native scrollbar for a custom-tinted experience.
Next.js Config¶
next.config.ts:
output: 'standalone'— produces a minimal standalone server bundle suitable for Docker.images.remotePatternsallows:https://res.cloudinary.com/*https://cipherunit.xyz/*- Headers middleware returns security headers for all routes (
/(.*)).
Zensical Configuration¶
zensical.toml configures the documentation site:
- Site name, author, and description
- Dark (
default) and light (slate) palettes - Navigation structure
- Markdown extensions (abbreviations, tasklists, code blocks, footnotes, etc.)
- Features: instant navigation, search highlighting, code block copy/select, etc.
Docker Build Arguments¶
The Dockerfile hardcodes:
- builder image: node:20
- runner image: node:20
- pnpm version installed globally: pnpm@10.5.1
- working directory: /app
If managing builds through the Makefile, these are fixed in the Dockerfile. To override, edit the Dockerfile directly or use build args.