https://github.com/smartwatermelon/projectinsomnia
Source repo for the new and improved projectinsomnia.com
https://github.com/smartwatermelon/projectinsomnia
astro netlify-deployment rss website
Last synced: 3 months ago
JSON representation
Source repo for the new and improved projectinsomnia.com
- Host: GitHub
- URL: https://github.com/smartwatermelon/projectinsomnia
- Owner: smartwatermelon
- Created: 2026-02-18T00:26:45.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2026-04-03T06:36:30.000Z (3 months ago)
- Last Synced: 2026-04-03T09:54:12.564Z (3 months ago)
- Topics: astro, netlify-deployment, rss, website
- Language: Astro
- Homepage: https://projectinsomnia.com/
- Size: 11.9 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project Insomnia
Personal site for [Andrew Rich](https://projectinsomnia.com) — writing, projects, and a live /now page.
Built with [Astro 5](https://astro.build), hosted on [Netlify](https://netlify.com).
## Stack
- **Astro 5** — static output with selective SSR for the /now page
- **@astrojs/netlify** — adapter for Netlify on-demand functions
- **@netlify/blobs** — blob store for /now page feed data
- **MDX** — blog posts
- **astro-expressive-code** — syntax highlighting (Dracula theme)
## Pages
| Route | Description |
| :---- | :---------- |
| `/` | Homepage with recent posts |
| `/blog/` | Full post archive |
| `/now/` | Live feed: GitHub activity, Strava, Instagram |
| `/projects/` | Apps, client work, and open source repos |
| `/about/` | About page |
## /now page feeds
The /now page lazy-loads three live feeds via Netlify on-demand functions:
| Feed | Function | Source |
| :--- | :------- | :----- |
| GitHub | `/api/github-feed` | Public Atom feed |
| Strava | `/api/strava-feed` | Strava API v3 (OAuth 2.0) |
| Instagram | `/api/instagram-feed` | IFTTT webhook → Netlify Blobs |
Instagram posts are pushed via IFTTT Maker Webhooks to `/api/instagram-webhook` and stored in Netlify Blobs.
## Environment variables
Set in Netlify dashboard (not committed):
| Variable | Used by |
| :------- | :------ |
| `STRAVA_CLIENT_ID` | strava-feed function |
| `STRAVA_CLIENT_SECRET` | strava-feed function |
| `STRAVA_REFRESH_TOKEN` | strava-feed function |
| `INSTAGRAM_WEBHOOK_SECRET` | instagram-webhook function |
## Development
```sh
npm install
npm run dev # localhost:4321
npm run build # production build to ./dist/
npm run preview # preview production build locally
```
Deploys automatically from `main` via Netlify.