The web framework that scales with you — Build fast content sites, powerful web applications, dynamic server APIs, and everything in-between ️ Star to support our work!
Find a file
2021-03-30 14:52:09 +00:00
.github Add PR Template (#34) 2021-03-26 14:03:07 -06:00
.vscode Scaffold language server (#25) 2021-03-25 10:38:17 -05:00
examples Add support for doctype (#37) 2021-03-30 10:51:31 -04:00
src [ci] npm run format 2021-03-30 14:52:09 +00:00
test [ci] npm run format 2021-03-30 14:52:09 +00:00
vscode Scaffold language server (#25) 2021-03-25 10:38:17 -05:00
.eslintrc.cjs Fix a few lint errors 2021-03-16 12:43:23 -06:00
.gitignore Scaffold language server (#25) 2021-03-25 10:38:17 -05:00
.prettierrc.json Annoying Lint PR™ (#3) 2021-03-16 12:37:45 -06:00
astro.mjs Add a proper cli 2021-03-15 15:26:23 -04:00
LICENSE Bring compiler into Astro (#4) 2021-03-16 16:08:11 -04:00
package-lock.json Bundling! 🤘 (#36) 2021-03-30 09:24:26 -04:00
package.json Bundling! 🤘 (#36) 2021-03-30 09:24:26 -04:00
README.md New hydration methods (#29) 2021-03-26 17:09:28 -05:00
snowpack-plugin.cjs Add React component SSR (#28) 2021-03-25 16:59:38 -06:00
tsconfig.json initial commit 2021-03-15 13:22:05 -04:00

👩‍🚀 Astro

A next-generation static-site generator with partial hydration. Use your favorite JS framework and ship bare-minimum JS (or none at all!).

🔧 Setup

npm install astro

TODO: astro boilerplate

💧 Partial Hydration

By default, Astro outputs zero client-side JS. If you'd like to include an interactive component in the client output, you may use any of the following techniques.

  • MyComponent:load will render MyComponent on page load
  • MyComponent:idle will use requestIdleCallback to render MyComponent as soon as main thread is free
  • MyComponent:visible will use an IntersectionObserver to render MyComponent when the element enters the viewport

🧞 Development

Add a dev npm script to your /package.json file:

{
  "scripts": {
    "dev": "astro dev ."
  }
}

Then run:

npm run dev

🚀 Build & Deployment

Add a build npm script to your /package.json file:

{
  "scripts": {
    "dev": "astro dev .",
    "build": "astro build ."
  }
}

Then run:

npm run build

Now upload the contents of /_site_ to your favorite static site host.