A modern, full-stack note-taking application that enables users to create, manage, and share notes efficiently using MDX format. Built with Next.js, Node.js, and PostgreSQL.
- 📝 Rich MDX Editing: Create and edit notes with full Markdown syntax and embedded React components
- 🔒 Secure Authentication: JWT-based authentication with refresh token rotation
- 🤝 Note Sharing: Share notes with specific users or make them public
- 💫 Auto-save: Never lose your work with automatic saving
- 👥 Multi-device Support: Access your notes from any device with session management
- Frontend: Next.js, TailwindCSS
- Backend: Node.js, Express
- Database: PostgreSQL
- Authentication: JWT (Access + Refresh Tokens)
- Content: MDX (Markdown + JSX)
- Docker and Docker Compose
- Git
- Clone the repository
git clone https://github.com/coderdal/notes-app
cd notes-appSet up environment variables:
- Copy
.env.exampleto.env - Fill in the required environment variables
- Copy
Start the application using Docker Compose:
docker compose upThis will start all services:
- Frontend: http://localhost:[FRONTEND_PORT]
- Backend API: http://localhost:[API_PORT]
- PostgreSQL Database
- pgAdmin: http://localhost:[PGADMIN_PORT]
To stop the application:
docker compose downTo rebuild the containers after making changes:
docker compose up --buildCreate a .env file in the root directory with the following variables:
# PostgreSQLPGUSER=# PostgreSQL usernamePGPASSWORD=# PostgreSQL passwordPGDATABASE=# PostgreSQL database namePGHOST=# PostgreSQL hostPGPORT=# PostgreSQL port# pgAdminPGADMIN_USER=# pgAdmin email addressPGADMIN_PASSWORD=# pgAdmin passwordPGADMIN_PORT=# pgAdmin port (e.g., 5050)# APIAPI_PORT=# API server portFRONTEND_URL=# Frontend URL for CORSACCESS_TOKEN_SECRET=# JWT access token secretREFRESH_TOKEN_SECRET=# JWT refresh token secretHASH_SECRET_KEY=# Password hashing secret# FrontendNEXT_PUBLIC_API_URL=# Backend API URLFRONTEND_PORT=# Frontend port- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email contact@erdal.net.tr or open an issue in the GitHub repository.