Skip to content

hchiam/learning-astro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Learning Astro (a "meta-framework")

Just one of the things I'm learning. https://github.com/hchiam/learning and https://github.com/hchiam/learning-frameworks

The idea: any JS framework --> output and serve just HTML. (Plus only the JS you need, when you need it.)

React and Vue and Svelte and Vanilla JS, etc. =(Astro)=> native HTML + JS

https://github.com/snowpackjs/astro

https://css-tricks.com/newsletter/255-thoughts-on-astro

https://www.youtube.com/watch?v=dsTXcSeAZq8

  • default = no client-side JS by default on components
  • client:load = immediately/always hydrate component with JS
  • client:idle = when you're free
  • client:visible = when visible

From scratch

mkdir new-project-directory
cd new-project-directory
npm init astro # follow instructions
npm install
npm start # http://localhost:3000/

Starting by testing out this repo

git clone https://github.com/hchiam/learning-astro.git && cd learning-template && npm install && npm start;

Deploy

npm run build # build output goes to /dist by default, so you can deploy from /dist

My own example project

https://github.com/hchiam/astro-calendar

https://astro-powered-calendar.surge.sh

Example project starters

https://github.com/snowpackjs/astro/tree/main/examples (go into a folder to see example setup command, for example npm init astro -- --template with-tailwindcss)

Learn more

https://docs.astro.build/core-concepts/project-structure

Everything below was auto-generated by npm init astro:




Welcome to Astro

🧑‍🚀 Seasoned astronaut? Delete this file. Have fun!

🚀 Project Structure

Inside of your Astro project, you'll see the following folders and files:

/
├── public/
│   ├── robots.txt
│   └── favicon.ico
├── src/
│   ├── components/
│   │   └── Tour.astro
│   └── pages/
│       └── index.astro
└── package.json

Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.

There's nothing special about src/components/, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.

Any static assets, like images, can be placed in the public/ directory.

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run start Starts local dev server at localhost:3000
npm run build Build your production site to ./dist/

👀 Want to learn more?

Feel free to check our documentation or jump into our Discord server.

About

Learning Astro

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published