Skip to content

AnmolDotX/writy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Writy : A private blog app

This project is a Medium-like but private blog application developed to practice and showcase my CRUD application capabilities. The project uses the latest tech stack, including Next.js 14 for the frontend, Hono.js for the backend, Cloudflare for deployment and edge functions, Prisma with PostgreSQL for the database, and Vercel for frontend deployment. For styling, I utilized ShadCN and Tailwind CSS, while Zod and TypeScript were used for type validation.

Features

  • CRUD Operations: Create, Read, Update, and Delete blog posts.
  • User Authentication: Secure login and registration system.
  • Type Validation: Consistent type definitions across frontend and backend using Zod and TypeScript.

Tech Stack

  • Frontend: Next.js 14, ShadCN, Tailwind CSS
  • Backend: Hono.js, Cloudflare
  • Database: Prisma, PostgreSQL
  • Deployment: Vercel (Frontend), Cloudflare (Backend)
  • Type Validation: Zod, TypeScript

Future Plans

I plan to expand this application by using a monorepo structure and containers for better code management and scalability.

Screenshots

Homepage

Installation and Setup

Prerequisites

  • Node.js (v20 or later)
  • PostgreSQL

Backend Setup

  1. Fork and then Clone the repository:

     git clone https://github.com/AnmolDotX/writy.git
     cd writy
  2. Install dependencies: frontend & backend

    cd backend
    npm install
    
    cd frontend
    npm install
  3. Set up the database:

    • Create a PostgreSQL and a Prisma accelerate database URL and update the DATABASE_URL with prisma accelerate and DIRECT_URL with postgresql url, in the .env file of backend.
    • In the frontend .env just paste the backend server url example http://localhost:8787
  4. Run database migrations:

    npx prisma migrate dev --name name_of_migration
    npx prisma generate --no-engine
  5. Start the backend server:

    npm run dev

Type Validation

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.

Contributing or Feature request

If you'd like to contribute to this project, please fork the repository and use a feature branch. Pull requests are welcome. Also if you want any feature kindly request in the issues tab of this project