This is an open-source blog application built with Next.js, Prisma, PostgreSQL, and Redux. The project is a learning experience for beginners and those looking to contribute to an open-source project. The app allows users to create, view, and manage blog posts, tags, and user profiles.
This project aims to be a collaborative and beginner-friendly environment for contributors who want to gain experience working on real-world applications. We welcome all contributions, whether bug fixes, new features, or documentation improvements. Live preview Here you can see the live version of the site
- User authentication and profile management
- Creating, editing, and deleting blog posts
- comments on posts and comments as replyes on other comments
- Category management for organizing posts
- Responsive design using ShadCN/UI
- User edit profile features
- Frontend: Next.js
- Backend: Next.js API Routes
- Database: PostgreSQL
- ORM: Prisma
- State Management: Redux Toolkit
- Auth Solution: NextAuth.js
- Styling: ShadCN/UI
- Testing
- Component & unit & integration testing: Vitest, Testing Library, MSW
- e2e testing Playwright
- add subscription model, where a user can subscribe to author and get notified everytime when this author creates a new post
- add push notifications
- finish the "change language" feature - The "Change language" feature is located on the user's profile page, where they can choose their preferred language from a dropdown menu.
- add test cases
- add infinity scroll on /posts page
- add rich text editor on /create-post page for the content part
- add reactions to the post
- add filtering and displaying authors and categories by their popularity on the home page
- add optimistic updates
- add OAuth prvider's accounts should be saved in db
We welcome contributions of all kinds! First of all, join our discord server. There, you can see what tasks are left, or you can open a ticket and present your own idea features. Here's how you can get started:
- Join Discord server
- Fork the repository
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit them:
git commit -m 'Add your feature
- Push to your branch:
git push origin feature/your-feature-name
- Create a pull request
If you find a bug or have an idea for a new feature, please check the issues section first to see if it's already being discussed. If not, feel free to open a new issue.
To run the project locally, follow these steps:
- Clone the repository:
git clone https://github.com/bockster6669/blog-app.git
- Install dependencies:
npm install
- Run the development server:
npm run dev
- Access the app: The application should be running at http://localhost:3000. To sign in the app use: [email protected] | 1111
The app is protected from SQL injections by using Prisma as an ORM, which uses parameterized queries by default, reducing the risk of SQL injections and also validating the input