A full-stack blogging web app powered by React.js, Next.js and Firebase. Deployed via Vercel.
A user can:
- Log in via Google or anonymously
- Choose a custom username
- Write a post using Markdown
- Add an image to it (supports JPEG, PNG, GIF)
- Publish it on the app or keep it as a draft
- Delete afterwards if they don't want to keep it
- Interact with posts of other users by giving them likes or just reading them
This project was built with:
- React.js, to make this app modular, scalable and simple for adding future features
- Next.js, for dynamic routing, server-side rendering and data fetching
- Firebase, for backend user authentication, database and files storage
I used additional packages:
- lodash.debounce: for preventing excessive amount of validation checks during user input
- react-hot-toast: react component for custom toast notifications
- lodash.kebabcase: for converting titles to kebabcase and using them as ids for each post made by users
- react-firebase-hooks: a set of reusable React Hooks for Firebase
- react-hook-form: for easy-to-use forms validation
- react-markdown: a markdown component for React for writing posts
Also:
This is a Next.js project bootstrapped with create-next-app
.