Skip to content

Repository files navigation

README - Devflow

A community-driven platform for asking and answering programming questions. Get help, share knowledge, and collaborate with other developers from around the world.


🤖 Claude Code Setup

Claude Code uses the Playwright CLI (not the Playwright MCP) to drive a browser when exploring the app. Install once globally and pull the latest skill files:

# Claude Code uses for browser exploration (Global chosen)
npm install -g @playwright/cli@latest
# Ensure latest Playwright CLI skill
playwright-cli install --skills

What's Installed?

Next.js 16 with the below:

CategoryToolWhat it does
LanguageTypeScript 6Static type checking with strict mode enabled
StylingTailwind CSS v4Utility-first CSS framework for rapid styling
next-themesLight/dark mode theming provider
LintingBiomeFast linter and formatter (replaces ESLint + Prettier)
markdownlint-cli2Lints markdown files for consistent formatting
TestingVitestFast unit test runner (Vite-native, Jest-compatible)
PlaywrightE2E browser testing (Chromium, Firefox, WebKit, Mobile)
Testing LibraryReact component testing utilities
Git HooksLefthookRuns checks on commit (lint, typecheck, unit tests) and push (build, E2E tests)
OptimisationReact CompilerAutomatic memoisation and performance optimisations
AnalyticsVercel Speed InsightsReal user performance metrics viewable on Vercel
Vercel Web AnalyticsPrivacy-friendly visitor analytics viewable on Vercel

For exact list see package.json

⚙️ Config Files Explained

FileWhatGenerally In This Project Template
.gitattributesGit line ending and file type handlingNormalises line endings across platforms for consistent Git diffs
.gitignoreFiles and directories Git should ignorePrevents build outputs and dependencies from being committed
.markdownlint.yamlMarkdownlint configurationDisables strict linting rules for practical writing
.vscode/extensions.jsonVS Code extension recommendationsUseful extensions to use in this Next.js project
.vscode/settings.jsonVS Code editor and formatting settingsEnables auto-formatting and configures Biome and Tailwind extensions
🌺 .claude/commands/Claude Code repeatable promptsWrite commits, evaluate CodeRabbit comments etc.
🌺 .claude/settings.jsonClaude Code permissionsAllow/Deny permissions for files, commands, websearch etc
🌺 .mcp.jsonClaude Code MCP configshadcn MCP for component install, Ref MCP for docs search
🌺 CLAUDE.mdClaude Code project contextDocuments tech stack for Claude Code (customise!)
🅽 next.config.tsNext.js framework configurationEnables React Compiler and customises Next.js build settings
🅽 package.jsonProject dependencies and npm scriptsDefines project dependencies, scripts, and npm package metadata
🅽 postcss.config.mjsPostCSS plugins config for CSS processingEnables Tailwind CSS v4 processing via PostCSS plugin
🧪 biome.jsonBiome linter and formatterSets linting rules, formatting style, and import organisation
🧪 lefthook.ymlGit hooks managerAutomates code quality checks on commit and E2E tests on push
🧪 tsconfig.jsonTypeScript compiler settingsConfigures TypeScript compiler options and module resolution behaviour
🧪 playwright.config.tsPlaywright E2E test runner configurationSets test browsers (desktop + mobile), parallel execution, and base URLs
🧪 .playwright/Playwright test outputs (custom organisation)Contains test artifacts in test-results/ and HTML playwright-report/ (all Playwright outputs nested under /.playwright/ for clean structure)
🧪 vitest.config.tsVitest test runner configSets up React component testing environment and references vitest.setup.ts
🧪 vitest.setup.tsGlobal test setupAdds helpful test assertions like expect(element).toBeVisible()
🚀 .github/dependabot.ymlDependabot configAutomated dependency update PRs weekly (npm + GitHub Actions)
🚀 .github/workflows/check-lint-type.ymlGitHub Actions CI workflowRuns Biome linting/formatting checks and TypeScript type checking on PRs
🚀 .github/workflows/test-e2e.ymlGitHub Actions CI workflowRuns Playwright E2E tests on PRs (builds production, tests browsers, uploads reports)
🚀 .github/workflows/test-e2e-vercel.ymlGitHub Actions CI workflowRuns Playwright E2E tests against Vercel Preview deployments (triggered by Vercel)
🚀 .github/workflows/test-unit.ymlGitHub Actions CI workflowRuns Vitest unit tests on PRs (uses jsdom environment, React Testing Library)

📝 Quick Notes

(1) Use Ngrok to Test App From Phone: (Terminal 1: npm run dev) + (Terminal 2: ngrok http 3000)

(2) GitHub Action - A branch protection ruleset exists to protect main. Includes checks for GitHub workflow jobs to pass before merging PR to main. See .xdocs/project-setup.md for config details.

(3) Vercel For Deploys - When you raise a PR it automatically deploys to Vercel Preview and Playwright e2e tests run on that too in addition to GitHub servers. When you merge the PR into main, you are deploying to Vercel prod. See .xdocs/project-setup.md for config details.

About

A community-driven platform for asking and answering programming questions, a take on Stack Overflow. A learning project.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Used by

Contributors

Languages