Loading repository data…
Loading repository data…
cooperability / repository
Nextjs portfolio website on Vercel. Hosts my personal applets & tools.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
My Next.js portfolio website on Vercel. Several smaller projects within.
.editorconfig for consistency.npmrc for Yarn userscommitlint for commit messages.yarn/cache from git history with git filter-repo (separate follow-up — the migration alone won't reclaim the 508 MB .git)ls -la && ls -la .yarn debug prefix from the build scriptengines.yarn: ">=1.22.0" — it contradicts the Yarn 4 PnP setup and silently allows Yarn 1 installsprop-types (redundant under TypeScript) and convert the last JS files (src/components/date.js, src/components/providers.js) to TSXtsconfig target from es5 to ES2022 (es5 forces needless downleveling on a Node 22 / modern-browser target)/api LLM route using the Anthropic SDK (claude-opus-4-8 / claude-sonnet-5) with streaming responses, and a shared src/lib/ai/ client modulesrc/resources/** MDX + docs (embed at build time, ship a small static index — no vector DB needed at this size)docs/MCP.md currently only describes — expose site content/tools (opioid conversion, prompt composition) over MCP; otherwise mark the doc as aspirationalpublic/llms.txt + llms-full.txt so agents can index the site correctlyCLAUDE.md + repo-local skills/agents under .claude/ / .cursor/CLAUDE.md, AGENTS.md)PrivacyStatement.mdx (what's sent to model providers, retention, opt-out)src/pages; unlocks RSC, streaming, route handlers, and the Metadata API<Head> in layout.tsx with the Metadata API / generateMetadata (fixes SEO, OG, and the <html lang="en"> inside <Head> bug)components/ui + lib/ vs src/components + src/lib, with @/* → ./* resolving to root. Point components.json at src/ and delete the duplication (this is the real fix for the "symlinks" TODO)_document equivalents / custom 404 + 500 pages and a top-level error boundarynext/font for self-hosted, layout-shift-free fontsdangerouslySetInnerHTML service-worker registration in _app.tsx into Serwist's own registration (it's a CSP unsafe-inline liability)tailwind.config.js and tw-animate-css afterwardnext-mdx-remote vs. compile-time MDX now that RSC makes static MDX cheapernext.config.js sets eslint.ignoreDuringBuilds: true — fix the underlying lint errors and turn it back onyarn test is jest --watch, so it's unusable in CI. Add test:ci (jest --ci --coverage) and keep test interactivesecurity-audit.yml exists. Gate PRs on typecheck + lint + test + buildsrc/__tests__/pages/index.test.tsx). Prioritize opioid-converter/utils/calculations.ts (clinical math — highest-consequence code in the repo), mandelbrot-explorer/utils/calculations.ts, and prompt-composer/utils/helpers.ts; set coverage thresholds@axe-core/playwright for the theme-switch, PWA install, and converter flows (already listed as an accessibility maintenance task — this is the mechanism)yarn access runSECURITY.md, CODEOWNERS, a PR template, and a LICENSE (repo has issue templates but none of these)permissions: on each workflowhigh severity audit blocking, or document why it stays advisorynext.config.js headers() — CSP, HSTS, X-Content-Type-Options, Referrer-Policy, Permissions-Policy. Today only images have a CSPsrc/pages/api/hello.tsaccessibility-reports/, tsconfig.tsbuildinfo, .swc/ shouldn't be in gitpackage.json is the source of truthPerson/SoftwareApplication) for the portfolio and each demo@vercel/og per page/demoresources/This project uses a comprehensive suite of quality control tools. For complete documentation, see docs/Tooling.md.
Quick Reference:
yarn dev - Start development serveryarn lint / yarn lint:mdx - ESLint checking (includes MDX validation)yarn format / yarn format:mdx - Prettier formattingyarn test - Jest + React Testing Libraryyarn typecheck - TypeScript validationyarn analyze - Webpack bundle analysisyarn access - Accessibility audits (ESLint + Axe-core + Lighthouse)yarn audit / yarn audit:critical - Security vulnerability scanningSecurity: Pre-push hooks and GitHub Actions block vulnerable code. See docs/Tooling.md#security-auditing.
Key Technologies:
See docs/Tooling.md for setup instructions, troubleshooting, and best practices.
This project implements comprehensive performance optimizations and a content-first responsive design strategy:
Performance:
clamp() for breakpoint-free scalingResponsive Design:
useResponsive hook) for site-wide mobile/desktop splitsSee docs/Performance.md for complete optimization strategies, breakpoint implementation, and best practices.
This project uses skillicons.dev for theme-aware technology stack icons on the demos page. These icons automatically adapt to light/dark theme and provide consistent, professional styling.
Implementation:
next-themes integrationSecurity Configuration (next.config.js):
// next.config.js
module.exports = {
images: {
remotePatterns: [
{ protocol: 'https', hostname: 'skillicons.dev', pathname: '/icons/**' },
],
dangerouslyAllowSVG: true,
contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;",
},
}
Security Measures:
dangerouslyAllowSVG enables external SVG loading (required for skillicons.dev)script-src 'none' prevents XSS attacksBenefits:
Trade-offs:
dependencies)@heroicons/react: SVG icons as React components.@mdx-js/loader: Webpack loader for MDX files.@mdx-js/react: React components for rendering MDX.@next/mdx: Integration for using MDX with Next.js.@tailwindcss/typography: Tailwind plugin for beautiful typography defaults.@vercel/analytics: Vercel integration for website analytics.@vercel/speed-insights: Vercel integration for performance monitoring.date-fns: Modern JavaScript date utility library.gray-matter: Parses front-matter from files (e.g., Markdown metadata).next: The React framework for production.next-mdx-remote: Renders MDX content dynamically in Next.js.next-themes: Theme switching support for Next.js apps.prop-types: Runtime type checking for React props.react: JavaScript library for building user interfaces.react-dom: Serves as the entry point to the DOM and server renderers for React.remark: Markdown processor.remark-html: Plugin for remark to serialize Markdown to HTML.sharp: High-performance Node.js image processing library.devDependencies)@eslint/compat: Compatibility utilities for ESLint flat config.@eslint/eslintrc: Utilities for using .eslintrc configs with flat config.@eslint/js: Core JavaScr