The fastest way to create and share blog posts. Write in markdown, publish in seconds, and share across all platforms with one click.
- β‘ Lightning Fast - Create and publish blog posts in under 60 seconds
- π Markdown Editor - Write with live preview in our clean markdown editor
- πΌοΈ Stock Images - Add beautiful images from our integrated stock photo library
- π± Mobile First - Fully responsive design that works on all devices
- π Authentication - Secure user authentication with Supabase
- π Instant Sharing - One-click sharing to X, LinkedIn, and all major platforms
- π¨ Beautiful UI - Clean, modern interface built with shadcn/ui components
- π Dashboard - Manage all your posts from one central location
- Node.js 18+
- pnpm (recommended) or npm
- Supabase account
git clone https://github.com/yourusername/simple-blog-generator.git
cd simple-blog-generatorpnpm install
# or
npm installCreate a .env.local file in the root directory:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
# Next.js Configuration
NEXT_PUBLIC_SITE_URL=http://localhost:3000- Create a new project at supabase.com
- Run the SQL scripts in the
scripts/folder:
-- Create blog posts table
\i scripts/001_create_blog_posts_table.sql
-- Create profiles table
\i scripts/002_create_profiles_table.sql
-- Create profile trigger
\i scripts/003_create_profile_trigger.sqlpnpm dev
# or
npm run devOpen http://localhost:3000 in your browser.
simple-blog-generator/
βββ app/ # Next.js 15 app directory
β βββ api/ # API routes
β βββ auth/ # Authentication pages
β βββ blog/ # Blog post display
β βββ dashboard/ # User dashboard
β βββ globals.css # Global styles
βββ components/ # React components
β βββ auth/ # Authentication components
β βββ dashboard/ # Dashboard components
β βββ ui/ # shadcn/ui components
β βββ markdown-editor.tsx # MDXEditor wrapper
βββ lib/ # Utility functions
β βββ supabase/ # Supabase client & server
βββ scripts/ # Database setup scripts
βββ public/ # Static assets
- Sign Up/Login - Create an account or sign in
- Navigate to Dashboard - Click "Create New Post"
- Write Content - Use the markdown editor with live preview
- Add Title & Image - Set your post title and select a featured image
- Publish - Click "Publish Post" to make it live
- Share - Use the built-in sharing buttons to share across platforms
The editor supports standard markdown syntax:
# H1 Heading
## H2 Heading
### H3 Heading
**Bold text**
_Italic text_
`inline code`
- Bullet points
- Another point
1. Numbered list
2. Second item
[Link text](https://example.com)
- View Posts - See all your published and draft posts
- Edit Posts - Modify existing posts anytime
- Publish/Unpublish - Toggle post visibility
- Delete Posts - Remove posts permanently
- Copy Links - Get shareable URLs instantly
Edit components/markdown-editor.tsx to customize the MDXEditor:
import { headingsPlugin, listsPlugin, quotePlugin } from "@mdxeditor/editor";
// Add or remove plugins as needed
const plugins = [
headingsPlugin(),
listsPlugin(),
quotePlugin(),
// Add more plugins here
];The project uses Tailwind CSS with a custom design system. Modify app/globals.css to change:
- Color scheme
- Typography
- Spacing
- Component styles
Key tables and their purposes:
blog_posts- Stores all blog post dataprofiles- User profile informationauth.users- Supabase authentication users
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on every push
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
We welcome contributions! Here's how to get started:
Click the "Fork" button on GitHub to create your copy.
git checkout -b feature/amazing-feature- Write clean, readable code
- Follow the existing code style
- Add tests if applicable
- Update documentation
git commit -m "feat: add amazing feature"git push origin feature/amazing-featureThen create a Pull Request on GitHub.
- TypeScript - All code must be written in TypeScript
- ESLint - Follow the project's linting rules
- Component Structure - Use functional components with hooks
- Styling - Use Tailwind CSS classes
- Testing - Add tests for new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - React framework
- Supabase - Backend as a service & authentication
- MDXEditor - Markdown editor
- shadcn/ui - UI components
- Tailwind CSS - Utility-first CSS framework
- Lucide React - Beautiful icons
- Issues - GitHub Issues
- Discussions - GitHub Discussions
- Email - [email protected]
Made with β€οΈ by Valtteri
If you find this project helpful, please give it a βοΈ on GitHub!