This is a full-stack blog application that allows users to create, read, and bookmark blog posts. The application features a frontend, backend, and a common folder for shared utilities such as Zod validation.
- CRUD Operations: Create, Read, bookmark and share blog posts.
- User Authentication: Secure login and registration system.
- Type Validation: Consistent type definitions across frontend and backend using Zod and TypeScript.
- Frontend: Next.js 14, ShadCN, Tailwind CSS
- Backend: Hono.js, Cloudflare
- Database: Prisma ORM, PostgreSQL
- Deployment: Vercel (Frontend), Cloudflare (Backend)
- Type Validation: Zod, TypeScript
- Node.js (v20 or later)
- PostgreSQL
-
Fork and then Clone the repository:
git clone https://github.com/AnchalDevBytes/lekha.git cd lekha
-
Install dependencies: frontend & backend
cd backend npm install cd frontend npm install
-
Set up the database:
- Create a PostgreSQL and a Prisma accelerate database URL and update the
DATABASE_URL
with prisma accelerate andDIRECT_URL
with postgresql url, in the.env
file of backend. - In the frontend
.env
just paste the backend server url examplehttp://localhost:8787
- Create a PostgreSQL and a Prisma accelerate database URL and update the
-
Run database migrations:
npx prisma migrate dev --name name_of_migration npx prisma generate --no-engine
-
Start the backend server:
npm run dev
This project follows an older approach of creating a common Zod module for both frontend and backend. This approach ensures that type validation for forms and APIs is consistent across the application.