Even 1s and 0s crave dreams.
Terminal Reverie is a personal technical blog built with a hacker/terminal aesthetic. It features a high-performance Next.js foundation, custom MDX rendering, and a sleek, dark-themed UI inspired by CLI environments and retro-futurism.
- Terminal Aesthetic: Custom UI components styled with Tailwind CSS v4, featuring scanlines, monospaced fonts (Fira Mono), and a Catppuccin Mocha color palette.
- MDX Content: Write posts in MDX with full component support (
<Grid>,<Details>, etc.). - High Performance: Static Site Generation (SSG) via
output: 'export', optimized for GitHub Pages. - Image Optimization: Custom image handling pipeline that supports colocated images in post directories.
- Math Support: Built-in LaTeX support via
rehype-katexandremark-math. - Hot Reload: Custom hot-reload mechanism for content changes during development.
- Responsive: Fully responsive design that looks great on mobile and desktop.
- Node.js 20+
- pnpm (recommended)
-
Clone the repository:
git clone https://github.com/HyperSoWeak/blog.git cd blog -
Install dependencies:
pnpm install
-
Start the development server:
pnpm dev
Open http://localhost:3000 to view the blog.
Creating a new post is simple using the built-in CLI tool.
-
Run the create script:
pnpm create-post
-
Follow the prompts:
- Enter the Title of your post.
- Enter the Slug (optional, defaults to kebab-case title).
-
Edit your content: The script will create a new directory at
content/posts/[slug]/index.mdx. Open this file and start writing!
- Images: Place images directly in the post folder (e.g.,
content/posts/my-post/image.png) and reference them normally:. - Grid Layout: Use the
<Grid>component for side-by-side images.<Grid cols={2}> </Grid>
- Details: Use the
<Details>component for collapsible sections.<Details summary="Click to expand">Hidden content here.</Details>
- Math: Use standard LaTeX syntax (
$E=mc^2$or$$...$$).
You can customize the site by editing src/lib/config.ts:
export const siteConfig = {
profile: {
name: "Your Name",
alias: "youralias",
location: "Your Location",
status: "ONLINE",
email: "you@example.com",
},
social: {
github: "https://github.com/...",
linkedin: "https://linkedin.com/...",
instagram: "https://instagram.com/...",
},
};This project is configured for GitHub Pages.
- Push your code to the
mainbranch. - The GitHub Actions workflow (
.github/workflows/deploy.yml) will automatically build and deploy the static site. - Ensure your repository settings have GitHub Pages enabled (Source: GitHub Actions).
content/posts/: Your blog posts (MDX).src/app/: Next.js App Router pages.src/components/: React components (Navbar, Footer, MDX components).src/lib/: Utilities and configuration.scripts/: Build and utility scripts.public/: Static assets (generated images go here during build).
This project is licensed under the MIT License. See LICENSE for details.