A modern, responsive book review website built with React and TypeScript, featuring in-depth reviews of books across multiple genres including philosophy, web novels, and science fiction.
Contains some recommendations of the books I've read and care to recommend. The list is pretty outdated right now and needs updating. My view of certain nuanced takes have also changed and might not match my current idealogies.
In an ideal world, I wouldn't be lazy and would add a book every time I read something. But for now, I'll stick to sharing just the REALLY good ones.
- Clone the repository:
git clone https://github.com/akhileshadithya/xertz.git
cd xertz- Install dependencies:
npm install- Start the development server:
npm run devsrc/
├── components/ # React components
│ ├── AllBooks.tsx # Display all books
│ ├── TopBooks.tsx # Top-rated books
│ ├── BookPreview.tsx # Book preview cards
│ ├── Review.tsx # Individual book reviews
│ ├── Header.tsx # Navigation header
│ ├── Blog.tsx # Blog functionality
│ └── MarkdownRenderer.tsx # Markdown content renderer
├── data/
│ ├── Data.md # Book reviews in markdown
│ ├── Data.ts # Book data processing
│ └── BookLoader.ts # Data loading utilities
├── types/
│ └── Book.ts # TypeScript interfaces
├── utils/
│ └── MarkdownParser.ts # Markdown parsing utilities
└── styles.css # Global styles
To add a new book review:
- Add the book's cover image to
public/Resources/[BookName]/ - Update
src/data/Data.mdwith the new review following the existing format:# Book Title - **Author:** Author Name - **Rating:** X - **Image:** Resources/BookName/image.jpg - **Slug:** book-slug ## Review [Your review content]
Visit the live site: https://akhileshadithya.github.io/xertz
This project is configured with automatic deployment to GitHub Pages. When you push changes to the master branch, the site will automatically build and deploy.
How it works:
- A git pre-push hook triggers when pushing to master
- Automatically runs
npm run build && gh-pages -d dist - Deploys the built site to the
gh-pagesbranch - Updates the live site at https://akhileshadithya.github.io/xertz
Git Hook Setup:
- Git hooks are automatically installed when you run
npm install - The hook script is stored in
hooks/pre-pushand copied to.git/hooks/pre-push - This ensures all contributors get the same deployment behavior
To deploy manually at any time:
npm run deployThis command will:
- Build the project (
npm run build) - Deploy the
distfolder to GitHub Pages
If you need to manually install or reinstall the git hooks:
npm run setup-hooksThis copies the hook from hooks/pre-push to .git/hooks/pre-push and makes it executable.
npm run dev- Start development servernpm run build- Build for productionnpm run deploy- Build and deploy to GitHub Pagesnpm run lint- Run ESLintnpm run preview- Preview production build locally
Built with the burning hatred of a thousand suns using React, TypeScript, and Vite