Repository hosting code that powers my Astro.js-powered site on the web.
- Chores
- Remove all the extra theme stuff from the custom moonlight II theme
- Cleanup and organize the theme like the old custom theme was
- Move all undraw SVGs out of the public folder. Delete them. Reference the assets directory instead.
- SEO & Analytics
- See why tags and other SEO items aren't working properly
- Migrate from Google Analytics to Plausible
- Migrate from Plausible to Microsoft Clarity
- Issues
- Lighthouse scores could be improved
- Consider only pre-fetching when hovering over a link
- Download only the IBM Plex Mono fonts that we actually need. Get rid of the others
- Commento has been discontinued. Disable comments until a migration plan has been decided upon
- UI & UX
- PostDetail
- Integrate the
SimilarPostsmodel into any post that is not a series or a review - For reviews, show a section to see other reviews
-
Make commento load only when visible
- Integrate the
- BlogPost Listing Page
- Add the ability to filter by category
- Add the ability to filter by
post,review, orseries - Show popular posts/serieses
- Improve that terrible pagination hook
- PostDetail
- Content
- Migrate the rest of the CodeSandbox examples to Stackblitz
- Remove all posts that are no longer relevant
- Post Ideas
- Write a post on mini-trpc in express (using the typed router)
- Write a post on migrating to
Hono.jsfor JS backends
- Series Ideas
- Finish FastAPI series with React on Phresh
- Create a parallel series using
Hono.js,Vite, andReactin a monorepo setup withTurborepo
- Misc
- RSS
- Get RSS feed working
- RSS
The project has the following folders and file structure:
├── public/
├── scripts/
├── src/
│ ├── assets/
│ │ ├── images/
│ │ ├── posts/
│ │ └── svg/
│ ├── components/
│ ├── content/
│ ├── core/
│ ├── data/
│ ├── layouts/
│ ├── lib/
│ └── pages/
│ └── services/
│ └── styles/
│ └── types/
│ └── utils/
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .prettierignore
├── .prettierrc.cjs
├── astro.config.mjs
├── netlify.toml
├── pnpm-lock.yaml
├── README.md
├── package.json
├── tailwind.config.cjs
└── tsconfig.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 React components.
The src/content/ directory contains "collections" of related Markdown and MDX documents. Use getCollection() to retrieve posts from src/content/posts/, and type-check your frontmatter using an optional schema. See Astro's Content Collections docs to learn more.
Any static assets, like images, can be placed in the assets/ directory.
All commands are run from the root of the project, from a terminal:
| Command | Action |
|---|---|
pnpm install |
Installs dependencies |
pnpm run dev |
Starts local dev server at localhost:3000 |
pnpm run build |
Build your production site to ./dist/ |
pnpm run preview |
Preview your build locally, before deploying |
pnpm run astro ... |
Run CLI commands like astro add, astro check |
pnpm run astro -- --help |
Get help using the Astro CLI |