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.
- π User authentication and authorization
- βοΈ Create, read, update, and delete blog posts
- π± Fully responsive design for mobile and desktop
- π οΈ ESLint configuration for maintaining code quality
- 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
- Hono.js β Lightweight web framework for building backend APIs
- Bun β Fast JavaScript runtime and package manager used to run the backend
- DaisyUI β Tailwind CSS component library
- TW Animate CSS β Animate.css integration for Tailwind
- 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
βββ .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
To install the frontend dependencies, run:
yarn installTo run the frontend application, use:
yarn devThis 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.
To install the backend dependencies, run:
bun install
To run the backend application, use:
bun run devThis project is licensed under the MIT License.