How to Use VS Code Profiles for Different Projects and Tech Stacks

Set up a dedicated VS Code profile for each programming language or project type. Keep extensions, settings, and layouts separate so you never carry JavaScript tooling into a Python project.

6 min read

When you work with multiple programming languages, each stack needs different extensions and settings. Loading everything at once slows down VS Code. Profiles solve this: create one profile per tech stack with only what that stack needs.

When you open a Python project, VS Code loads your Python profile. When you open a React project, it loads your JavaScript profile. If you have not created a profile yet, start with /vscode/how-to-create-and-switch-between-profiles-in-vs-code.

Start from a Profile Template

VS Code includes built-in Profile Templates for common stacks. Templates are the fastest way to set up a working profile because they come with curated extensions and settings.

Built-in templates cover the most common stacks: Python (Ruff, autoDocstring, Python Environments), Data Science (Jupyter, Data Wrangler), Node.js (ESLint, Prettier, Jest), Angular, Java General, Java Spring, and Doc Writer (Markdown tools). To create a profile from a template, open the Profiles editor, select New Profile, and choose Profile Template from the copy-from options. Select the template that matches your stack and preview it in a new window before creating.

Set up a Python profile

The Python template adds several extensions: Python, Ruff, autoDocstring, Python Environments, and Even Better TOML. It also applies these settings:

jsonjson
"python.analysis.autoImportCompletions": true,
"python.analysis.fixAll": ["source.unusedImports"],
"editor.defaultFormatter": "charliermarsh.ruff"

After creating the profile, open a Python project to make it active. You can adjust any setting or add extensions just as you normally would. Your changes stay in this profile.

Set up a JavaScript or Node.js profile

The Node.js template gives you a ready-to-use JavaScript setup:

Extensions added by the template:

  • ESLint (dbaeumer.vscode-eslint)
  • Prettier (esbenp.prettier-vscode)
  • Jest (Orta.vscode-jest)
  • npm Intellisense (christian-kohler.npm-intellisense)
  • DotENV (mikestead.dotenv)
  • Rest Client (humao.rest-client)

Settings applied by the template:

jsonjson
"editor.formatOnPaste": true,
"git.autofetch": true,
"[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
}

After creating this profile, open a React, Vue, Node.js, or plain JavaScript project and VS Code switches into the JavaScript profile automatically.

Create a profile from scratch

If no template matches your stack, create an Empty Profile and build it manually. Open the Profiles editor, select New Profile, and choose Empty Profile. Name it after your stack and install only the extensions you need.

An Empty Profile starts with no extensions and only VS Code defaults. This is the right choice when learning a new language and discovering which extensions you actually need.

Associate profiles with project folders

The most important step is linking each profile to its project folder. VS Code does this automatically: when you switch to a profile while a folder is open, that association is stored.

The next time you open that folder, VS Code activates the associated profile. If you open a different folder that uses a different profile, VS Code switches automatically.

Check your folder associations in the Folders & Workspaces section of the Profiles editor. Each profile entry shows which folders are linked to it.

Apply shared preferences across all profiles

Some settings are personal and should be the same no matter which stack you are working in. Use the Apply Setting to all Profiles option for these:

  • Font family and size
  • Color theme
  • Cursor style
  • Minimap visibility
  • Zoom level

To apply a setting to all profiles, open the Settings editor, find the setting, and select the gear icon next to it. Choose Apply Setting to all Profiles. The setting now stays synchronized across every profile.

The same option exists for extensions. In the Extensions view, select the gear icon next to an installed extension and choose Apply Extension to all Profiles. This is useful for extensions you want everywhere, such as a theme or a Git tool.

Example: Three profiles for three stacks

Here is a realistic setup for a developer who works across Python, JavaScript, and documentation:

ProfileBased onKey extensionsAssociated folders
Python BackendPython templatePython, Ruff, Docker~/projects/api, ~/projects/workers
FrontendNode.js templateESLint, Prettier, Jest, Tailwind CSS~/projects/web, ~/projects/landing
WritingDoc Writer templateCode Spell Checker, markdownlint, Word Count~/projects/docs, ~/blog

Each profile opens with only the extensions relevant to that work. VS Code starts faster and your interface stays clean.

To share a profile you have set up with your team, see /vscode/how-to-export-import-and-share-a-vs-code-profile.

Rune AI

Rune AI

Key Insights

  • Create a separate profile for each language or tech stack you work with regularly.
  • Start from a built-in Profile Template to save time: Python, Node.js, Angular, Java, and more.
  • Profile Templates include curated extensions and settings specific to that stack.
  • Associate each profile with its project folder so VS Code switches automatically on open.
  • Use Apply Setting to all Profiles for editor-wide preferences like font size and theme.
RunePowered by Rune AI

Frequently Asked Questions

Do I need to create profiles from scratch for every language?

No. VS Code includes built-in Profile Templates for Python, Data Science, Node.js, Angular, Java General, Java Spring, and Doc Writer. Start from a template and adjust as needed instead of building from an empty profile.

Can I apply a setting to all my profiles at once?

Yes. In the Settings editor, select the gear icon next to any setting and choose Apply Setting to all Profiles. This setting then stays synchronized across all your profiles. Uncheck the same option to revert it to per-profile control.

Can I apply an extension to all my profiles?

Yes. In the Extensions view, select the gear icon next to an installed extension and choose Apply Extension to all Profiles. The extension then becomes available in every profile without reinstalling.

Conclusion

VS Code profiles let you treat each tech stack as its own environment. Create a profile per language, start from a template when available, and associate profiles with project folders so VS Code switches automatically when you open your work.