Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/michaelpayne02/portfolio

My portfolio site
https://github.com/michaelpayne02/portfolio

astro wasm webcomponents

Last synced: 4 months ago
JSON representation

My portfolio site

Awesome Lists containing this project

README

        

# Portfolio

## Features

- Hybrid SSR/static rendering
- Webcomponents for:
- Dark/light mode
- [Pagefind](https://pagefind.app/) site search
- View count for each page using [Drizzle](https://orm.drizzle.team/), [Cloudflare D1](https://developers.cloudflare.com/d1/), and Astro's [Server Islands](https://astro.build/blog/future-of-astro-server-islands/).
- Image [lightbox](https://code.juliancataldo.com/component/astro-lightbox/) in mdx content
- Automatic [sitemap](https://docs.astro.build/en/guides/integrations-guide/sitemap/) and [RSS feed](https://docs.astro.build/en/guides/rss/)
- Contact form using [Astro Actions](https://github.com/withastro/roadmap/blob/actions/proposals/0046-actions.md) and [React Email](https://react.email/), protected by [Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/)
- Comments using [Webmentions](https://indieweb.org/Webmention), cached in R2 object store
- [Rive](https://github.com/rive-app/rive-wasm) logo animation
- Static social image generation using [Satori] and [Resvg](https://github.com/vercel/satori), based on [this guide](https://dietcode.io/p/astro-og/). The resulting images are cached in the `node_modules/.astro` folder.
- Animated map using [MapLibre GL JS](https://maplibre.org/) and [Deck.gl](https://deck.gl/). Hydration isn't necessary, an intersection observer dynamically imports the necessary chunks.
- [Bun](https://bun.sh/) to build the site on Github Actions

## Credits

Heavily modified from [astro-theme-resume](https://github.com/srleom/astro-theme-resume) and
[astro-theme-cactus](https://github.com/chrismwilliams/astro-theme-cactus)