Skip to content

πŸš€ Full-Stack Personal Blog built with Bun + Hono for a blazing-fast backend and Vite + React for a modern, responsive frontend. Features include blog creation, infinite scrolling, rich-text editing, authentication, and persistent caching using React Query.

Notifications You must be signed in to change notification settings

ArDnath/Blogify-v.3.0

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

50 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“– Personal Blog Project

πŸ“š Description

This is a fullstack blog application I built as a personal platform for writing blogs in the future.
The frontend is developed with React and Vite, using Yarn as the package manager, while the backend is powered by Hono.js running on Bun.

✨ Features

  • πŸ”’ User authentication and authorization
  • ✍️ Create, read, update, and delete blog posts
  • πŸ“± Fully responsive design for mobile and desktop
  • πŸ› οΈ ESLint configuration for maintaining code quality

πŸš€ Technologies Used

πŸ–₯️ Frontend

  • React 19 – Frontend library for building user interfaces
  • Vite – Next-generation frontend tooling for faster development
  • TypeScript – Strongly typed JavaScript for better developer experience
  • Tailwind CSS – Utility-first CSS framework for rapid UI development
  • React Router DOM – Routing and navigation for React applications
  • React Query (@tanstack/react-query) – Data fetching and caching for React
  • TipTap Editor (reactjs-tiptap-editor) – Rich text editor integration
  • Axios – Promise-based HTTP client for API communication
  • Lucide React – Open-source icon library for React
  • Infinite Scroll Component – Infinite scrolling support for loading more content
  • ImageKit.io React SDK – Image optimization and media handling

πŸ”₯ Backend

  • Hono.js – Lightweight web framework for building backend APIs
  • Bun – Fast JavaScript runtime and package manager used to run the backend

🎨 Styling & Animations

  • DaisyUI – Tailwind CSS component library
  • TW Animate CSS – Animate.css integration for Tailwind

πŸ› οΈ Developer Tooling

  • ESLint – Linting tool for maintaining code quality
  • TypeScript ESLint – Additional linting rules for TypeScript
  • PostCSS – Tool for transforming CSS with JavaScript plugins
  • Yarn – Dependency management and package runner for frontend
  • Bun Install – Dependency management and runner for backend

File Structure

β”œβ”€β”€ .vscode/
β”‚   └── settings.json
β”œβ”€β”€ Blog/
β”‚   β”œβ”€β”€ components.json
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ App.tsx
β”‚   β”‚   β”œβ”€β”€ index.css
β”‚   β”‚   β”œβ”€β”€ main.tsx
β”‚   β”‚   β”œβ”€β”€ vite-env.d.ts
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ DarkMode.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Footer.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Image.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Logout.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ Navbar.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ PostList.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ PostListItems.tsx
β”‚   β”‚   β”‚   β”œβ”€β”€ RichEditor/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ constants.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ extensions.ts
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ index.tsx
β”‚   β”‚   β”‚   β”‚   └── uploadHelpers.ts
β”‚   β”‚   β”‚   β”œβ”€β”€ ThemeContext.tsx
β”‚   β”‚   └── pages/
β”‚   β”‚       β”œβ”€β”€ BlogPage.tsx
β”‚   β”‚       β”œβ”€β”€ CreatePage.tsx
β”‚   β”‚       β”œβ”€β”€ HomePage.tsx
β”‚   β”‚       β”œβ”€β”€ LoginPage.tsx
β”‚   β”‚       └── NotFoundPage.tsx
β”‚   β”‚   └── utils/
β”‚   β”‚       β”œβ”€β”€ AuthContext.tsx
β”‚   β”‚       β”œβ”€β”€ ProtectRoute.tsx
β”‚   β”‚       └── utils.ts
β”‚   β”œβ”€β”€ tsconfig.app.json
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   β”œβ”€β”€ tsconfig.node.json
β”‚   β”œβ”€β”€ vite.config.ts
β”‚   └── .gitignore
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   └── .gitkeep
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app.ts
β”‚   β”‚   β”œβ”€β”€ constants.ts
β”‚   β”‚   β”œβ”€β”€ controllers/
β”‚   β”‚   β”‚   β”œβ”€β”€ Blog.controller.ts
β”‚   β”‚   β”‚   └── User.controller.ts
β”‚   β”‚   β”œβ”€β”€ db/
β”‚   β”‚   β”‚   └── connect.ts
β”‚   β”‚   β”œβ”€β”€ index.ts
β”‚   β”‚   β”œβ”€β”€ middlewares/
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.middleware.ts
β”‚   β”‚   β”‚   └── zod.validation.middleware.ts
β”‚   β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”‚   β”œβ”€β”€ Post.model.ts
β”‚   β”‚   β”‚   └── User.model.ts
β”‚   β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”‚   β”œβ”€β”€ Blog.route.ts
β”‚   β”‚   β”‚   └── user.route.ts
β”‚   β”‚   └── validations/
β”‚   β”‚       └── auth.validation.ts
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   └── .gitignore
β”œβ”€β”€ README.md

πŸ–₯️ Frontend Setup

Installation

To install the frontend dependencies, run:

yarn install

Running the Application

To run the frontend application, use:

yarn dev

πŸ› οΈ ESLint Configuration

This project provides a minimal ESLint setup to work seamlessly with React, Vite, and Hot Module Replacement (HMR).
For production applications, it is recommended to extend the configuration to enable type-aware linting rules for better code quality.

⚑ Backend Setup

Installation

To install the backend dependencies, run:

bun install

Running the Application

To run the backend application, use:

bun run dev

License

This project is licensed under the MIT License.

About

πŸš€ Full-Stack Personal Blog built with Bun + Hono for a blazing-fast backend and Vite + React for a modern, responsive frontend. Features include blog creation, infinite scrolling, rich-text editing, authentication, and persistent caching using React Query.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published