Namraj Pudasaini
May 29, 2026
A clean workflow saves time and keeps projects manageable as they grow. This post covers the folder structure, editor setup, and build process I use for most web projects.
Every project starts with a clear separation between source files and compiled output:
project/
images/
app/
style.scss
script.js
dist/
style.css
index.html
This separation means you never manually edit compiled files. Your source of truth is always in app/.
A few settings make VS Code more comfortable for daily use:
18px or whatever feels comfortable. Find it in Settings or use Ctrl+, and search for font size.2 instead of the default 4 for cleaner indentation in HTML, CSS, and JS.Install these from the Extensions Marketplace (Ctrl+Shift+X):
.scss to .css on save and injects changes into the browser.These shortcuts speed up everyday editing:
| Shortcut | Action |
|---|---|
Shift+Alt+Down |
Copy the current line down |
Ctrl+D |
Select the next occurrence of the current selection |
Ctrl+B |
Toggle the sidebar |
Ctrl+P |
Quick file search |
Ctrl+R |
Switch between recent folders |
Ctrl+Shift+P |
Open the Command Palette |
Alt+Click |
Add a second cursor |
I use a setup where the app/ folder contains the main style.scss file along with partials:
app/
style.scss
_globals.scss
_variables.scss
_mixins.scss
_typography.scss
The main file imports the partials:
@import "variables";
@import "mixins";
@import "globals";
@import "typography";
The Live Sass Compiler extension watches these files and outputs a single style.css into the dist/ folder every time you save. Your HTML links to dist/style.css, and the browser updates automatically during development.
To debug, open Chrome DevTools (F12) and inspect the elements to confirm your compiled styles are applied correctly.
Initialise the repository before you have written much code, and write a .gitignore first:
node_modules/
.env
dist/
Ignoring dist/ follows the same rule as the folder structure above — compiled output is generated from source, so tracking it only produces noisy diffs. The exception is a static host that does not run a build step for you — then dist/style.css has to be committed, since it is what the live site serves.
app/, let the compiler output to dist/.This workflow keeps source and output separate, gives you instant feedback while editing, and scales well as projects grow in complexity.