When you're bored and want to write something.
I was bored and wanted to test out new libraries (better-auth and drizzle) so I made this app lol.
Seenaa is an open-source writing app with a blog-like structure where users can have their own personal page, and more. It offers an easy and engaging way to write, share, and publish content online. It also comes with some cool AI features to assist your writing journey.
-
Personal Pages: Users can have their own subdomains like
drxco.seenaa.xyz
, providing a personalized space to publish and manage their content. -
AI Writing Assistance: Enhance your writing experience with auto-complete powered by advanced AI models like Gemini and DeepSeek.
-
Intuative Rich Text Editor: Used TipTap.js and well, you know the rest.
- Next.js: A powerful React framework for building dynamic websites.
- Typescript: For type safety and better development experience.
- Drizzle ORM: A modern ORM for interacting with your database in a clean and efficient way.
- PostgreSQL: The relational database used for storing user data and posts.
- ShadCN: For UI components, providing a beautiful and responsive design.
For local development, you can use the development Docker Compose configuration which only starts a PostgreSQL database:
- Make sure Docker and Docker Compose are installed
- Run the development database:
docker compose -f docker-compose-dev.yaml up
- Install dependencies and migrations:
npm install --legacy-peer-deps
npm run db:migrate
- Start the development server:
npm run dev
For a full containerized deployment (both database and web app):
- Create a
.env.prod
file with your production environment variables - Run the production stack:
docker compose -f docker-compose.yaml up --build
To deploy to a VPS, you can use the deploy.sh
script which will:
- Create process all the variables needed.
- Set up Docker and Docker Compose.
- Configure Nginx with SSL using Certbot.
- Deploy the application.
- Make the script executable:
chmod +x deploy.sh
- Run the script (note: you'll need to be active during SSL certificate setup):
./deploy.sh
- If changes are made, use the update script so apply changes.
./update.sh
A live version is available at https://seenaa.xyz. Note that it's hosted on a budget VPS so performance may vary.
- Created to practice the better-auth library and Drizzle ORM.
- Inspired by the desire to provide an easy way for people to share their thoughts when they're bored and feel creative.