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
SimilarPosts
model 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.js
for JS backends
- Series Ideas
- Finish FastAPI series with React on Phresh
- Create a parallel series using
Hono.js
,Vite
, andReact
in 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 |