- Slash Commands (Type
/to turn the block into different content types) - HTML Support (Use regular HTML tags like
<a>in text blocks) - Image Support (Upload images by using the
/imagecommand) - Drag And Drop (Reorder blocks easily by drag and drop)
- Guest Editing (Anyone can create public pages and share them via link)
- User Management (Create an account to create private pages)
- Scheduled Jobs (Delete inactive pages and accounts automatically)
The frontend is built with Next.js and fully server-side rendered. On the backend, a REST API handles saving user content and user management.
Next.js · React.js · SCSS/SASS
Express.js · MongoDB with Mongoose · Nodemailer · JWT (Cookie-based)
-
Clone the project
git clone https://github.com/Volteee/Zotion.git cd Zotion -
Add environment variables
Backend: Create an
.envfile in thebackenddirectory:FRONTEND_URL="http://localhost:3000" DOMAIN="localhost" JWT_KEY="yourSecretForTokenGeneration" PORT=8080 MONGO_URI="mongodb+srv://username:password@cluster.gqqwp.gcp.mongodb.net/database?retryWrites=true&w=majority" MAIL_HOST="smtp.sendgrid.net" MAIL_PORT=465 MAIL_USER="apiKey" MAIL_SENDER="Your Name <your@mail.com>" MAIL_PASSWORD="yourSendGridApiKey"Frontend: Create an
.env.localfile in thefrontenddirectory:NEXT_PUBLIC_API="http://localhost:8080" // references your Backend API endpoint -
Install and run backend (http://localhost:8080)
cd backend npm install npm start -
Install and run frontend (http://localhost:3000)
cd frontend npm install npm run dev