bencium-code-conventions
Bence's code style, tech stack, and workflow conventions
Install
npx skills add https://github.com/bencium/bencium-marketplace --skill bencium-code-conventionsSKILL.md
Code Conventions
Core Technologies
- Frontend: ReactJS, Next.js (App Router structure), TypeScript
- Styling: TailwindCSS v3.x (never v4), Shadcn UI
- Build Tools: Vite (when applicable)
- Backend: Postgres compatible convex.dev or Supabase (always ask, never local postgres)
- Deployment: Netlify or Vercel or Fly - suggest
- Environment: Mac M2, Python3 with virtual environments, no CUDA, no Docker
- Alternative Languages: Avoid python if you can, try using RUST
Code Style & Structure
- Use ES modules (import/export) syntax
- Destructure imports when possible
- Use TypeScript for all new code
- Use async/await instead of Promise chains
- Prefer const/let over var; use early returns
- Use consts instead of functions:
const toggle = () =>. Define types. - Use descriptive variable names with auxiliary verbs (e.g.,
isLoading,hasError) - Use lowercase with dashes for directory names (e.g.,
components/auth-wizard)
Framework Conventions
- Next.js: Use App Router (app directory) structure and page.tsx files
- React: Functional and declarative patterns; avoid classes
- State Management: Zustand, TanStack React Query
- Validation: Zod for schema validation
Component Library & Styling
- Component Library: Prefer shadcn components from
@/components/ui - Styling: Tailwind utility classes
- Layout: Grid/flex wrappers with
gapfor spacing - Icons:
@phosphor-icons/react - Toasts:
sonnerfor notifications - Always add loading states, spinners, placeholder animations
Quality Assurance & Testing
- TDD: Write failing tests first, commit them, then iterate until suite passes
- Never mock tests - if there's a test script, execute all until done
- Always write SQL in chunks with test steps after each chunk
- Typecheck after making code changes
- Run tests before committing
- Prefer running single tests for performance, not whole suite
Error Handling
- Implement proper error handling and user input validation
- Error messages should be understood by non-technical people
- Use early returns for error conditions
- Test APIs via curl commands first, then implement in code
Performance & Architecture
- Minimize
'use client',useEffect,setState; favor RSC and Next.js SSR - Implement dynamic imports for code splitting
- Optimize images: WebP format, size data, lazy loading
- Favor small, simple, well-named modules
Development Workflow
Process: Explore → Plan → Code → Commit
- Read relevant files
- Think through a plan
- Implement
- Then commit
- Never local backend, always ask (usually Supabase, Neon)
- Minimal dependency, no docker
Environment & Deployment
- Add .env files for API keys; warn me to save keys in Vercel/Netlify env variables
- Write code deployable to Netlify or Vercel; prepare to build locally first
- Document progress in progress.md; ask for implementation plan
Related skills
improve-codebase-architecturemattpocock1MScan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.codebase-designmattpocock691KShared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.web-design-guidelinesvercel-labs676KReview UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".code-reviewmattpocock631KReview the changes since a fixed point (commit, branch, tag, or merge-base) along two axes: Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match what the originating issue/spec asked for?). Runs both reviews in parallel sub-agents and reports them side by side. Use when the user wants to review a branch, a PR, work-in-progress changes, or asks to \"review since X\".