Yapify is a blogging platform built with React, Hono, Cloudflare Workers, Zod, Prisma, and Postgres.
Live Link : https://yapify-flax.vercel.app/
• React for the frontend
• Cloudflare Workers with Hono for the backend
• Zod for validation and frontend type inference
• TypeScript as the language
• Prisma as the ORM with connection pooling
• Postgres as the database
• JWT for authentication
This guide will walk you through setting up the project locally.
Before you begin, make sure you have the following installed:
git clone https://github.com/abuzerexe/Yapify.git-
Navigate to the backend folder:
cd Yapify/backend -
Install the necessary dependencies:
npm install
-
Add this in the place of vars in your
wrangler.tomlorwrangler.jsoncfile (also uncomment vars):vars = { DATABASE_URL = "prisma://your-database-url.example.com/?api_key=", JWT_SECRET = "your_jwt_secret" }
-
Create a
.envfile in the root of the backend directory and add Postgres url and prisma Accelerate url:DIRECT_URL="postgresql://your postgres url" DATABASE_URL="prisma://your prisma accelerate url"
-
Deploy the backend to Cloudflare Workers:
first you might need to signup/signin in cloudflare using npx wrangler login
npx wrangler publish
npx wrangler deploy-
Navigate to the frontend folder:
cd Yapify/frontend -
Install dependencies:
npm install
-
Create a
.envfile in root of your frontend folder and add the following: This would be your deployed cloudflare workers url or you can the local wrangler url using 'npm run dev' in backendVITE_BACKEND_URL="https://your-backend-url.example.com/api/v1"
To set up Prisma,
- navigate to the backend directory:
cd Yapify/backend- Run the Prisma migration commands to set up your database schema:
npx prisma migrate dev --name initThis will create the necessary tables in your database.
- After running the migrations, generate Prisma client:
npx prisma generate --no-engine if the above command does not work you can try
npx prisma generate Ensure your database is connected and Prisma is working properly by checking the database tables.
-
Start the backend (or you can use the deployed cloudflare worker url) :
npm run dev
-
Start the frontend:
npm run dev
The application should now be available at http://localhost:3000 or you can check on http://localhost:3000/signin.
If you'd like to contribute to this project, feel free to open an issue or submit a pull request.







