npm create astro@latest -- --template basics🧑🚀 Seasoned astronaut? Delete this file. Have fun!
Inside of your Astro project, you'll see the following folders and files:
/
├── public/
│ └── favicon.svg
├── src/
│ ├── layouts/
│ │ └── Layout.astro
│ └── pages/
│ └── index.astro
└── package.json
To learn more about the folder structure of an Astro project, refer to our guide on project structure.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
npm install |
Installs dependencies |
npm run dev |
Starts local dev server at localhost:4321 |
npm run build |
Build your production site to ./dist/ |
npm run preview |
Preview your build locally, before deploying |
npm run astro ... |
Run CLI commands like astro add, astro check |
npm run astro -- --help |
Get help using the Astro CLI |
Feel free to check our documentation or jump into our Discord server.
If you keep your blog posts and assets inside an Obsidian vault and pointed this repo to them via symlinks (e.g. src/data/assets and src/data/blog/posts), Git will only track the symlinks, not the files they point to. To make the files themselves tracked in this repo, use the sync script:
-
One‑time migration: this imports the content from the current symlink targets and replaces the symlinks with real folders that Git can track.
bun run sync:obsidian
-
After migration, consider inverting the symlinks: create symlinks inside your Obsidian vault that point back into this repository (to
src/data/assetsandsrc/data/blog/posts). That way, this repo remains the source of truth and Obsidian can still read/write those files.
Notes:
- The script reads optional ignore patterns from
.assetsignore(one filename per line)..DS_Storeand.obsidianare ignored by default. - No network access is required; this only copies from local symlink targets.
