My personal blog built to host my articles. Here is a list of the features:
- Minimal dependencies, build output is less than 1MB
- Custom-built auth system, with oauth providers
- Edge network compatible, working with all popular runtimes
- Lighthouse 100% on all metrics on all pages
- A+ on security, with headers, strict CSP & security.txt
- SEO optimization with robots.txt & sitemap
- Perfect accessibility with light and dark modes, with client page transitions
- No vendor lock-in, self-hostable with 100% of the features by changing the deploy commands and the adapter (e.g.
@astro/node
)
- CI/CD Actions (test, deployment to staging)
- Add headers links and summary on the left of the page
- Add analytics
- Remove React to use web components
- Add SRI
- If you're hosting on Cloudflare, you need to disable
Speed Brain
. This features isn't compatible with a strict CSP and prefetching is already done inside Astro. - CSP nonce is currently generated in the middleware which defeats the purpose of a strong CSP. There is no alternatives currently in Astro.
- Some environment variables should have their access restricted to secret instead of public in
astro.config.ts
. Currently, I can't make secrets work using Cloudflare. This is not critical (if you share the build output with someone, they could potentially extract your secrets). - Currently BiomeJS partialy supports Astro files. The component script is linted/formatted but not the template part. See the documentation
The custom authentification was heavely inspired by the great Lucia Auth project