study-buddy/ Pick any file or folder on the left to see what it is, why it exists, when you add it and the mistakes people make with it. Switch the stage to watch the project grow.
Top level, at Growing .git Git history, created by `git init`. .vscode Editor settings and recommended extensions from the template. drizzle SQL migrations generated by `drizzle-kit generate` from db/schema.ts. node_modules Installed packages. src All bot code. Node 24 runs these TypeScript files directly, no build step. tests Vitest tests: services against a real PostgreSQL, commands with fake interactions. .env Your bot token and application id, read by `node --env-file=.env`. .env.example Every variable name with empty or fake values, committed for teammates. .gitignore Node's standard ignore list: logs, node_modules, coverage, caches. .nvmrc Pins Node 24, which the template requires (`engines: >=24.17.0`). .prettierignore Files Prettier skips. .prettierrc.json Prettier settings from the template (tabs, single quotes, wide lines). compose.yaml Docker Compose: PostgreSQL for development, and the bot itself to test the production image. drizzle.config.ts drizzle-kit settings: schema path, migrations folder, PostgreSQL dialect, database URL. eslint.config.js ESLint flat config using eslint-config-neon, the discord.js team's shared rules. package-lock.json Exact versions of every package, written by npm install. package.json Scripts (start, deploy, lint, format), dependencies, `"type": "module"` and the Node engine. README.md What the bot does, the invite link, how to run it locally and how to deploy. tsconfig.eslint.json Extends tsconfig.json and includes config files, so ESLint can type check them too. tsconfig.json Strict TypeScript settings for type checking only: `noEmit`, `erasableSyntaxOnly`, bundler resolution. vitest.config.ts Vitest settings: test folders, a global setup that migrates the test database.