An open-source MDX CMS for building modern content websites, blogs, and documentation portals.
- Fully customizable MDX content system
- Next.js-powered frontend and backend
- MongoDB database integration
- Turborepo monorepo setup for optimal development
- Astro-powered documentation
- Easy to extend and customize
- Content API for headless use cases
- SEO optimized out of the box
lets-code/
├── apps/
│ ├── web/ # Next.js main application
│ ├── docs/ # Astro documentation site
│
├── packages/
│ ├── database-config # Database config
│ ├── types-config # Types config
│ ├── eslint-config # Eslint config
│ └── config/ # Shared configuration
- Frontend: Next.js, React
- Backend: Next.js API routes
- Containization: Docker
- Database: MongoDB
- Documentation: Astro
- Build System: Turborepo
- Content: MDX
- Styling: Tailwind CSS
- Node.js 18.0.0 or later
- pnpm v8 or later
- MongoDB (local or Atlas)
- Clone the repository:
git clone https://github.com/your-username/lets-code.git
cd lets-code
- Install dependencies:
pnpm install
- Set up environment variables:
Copy the example environment files and adjust them to your needs:
cp apps/web/.env.example apps/web/.env.local
cp apps/admin/.env.example apps/admin/.env.local
- Start the development server:
pnpm dev
- Run with Docker
docker build \
--build-arg "DB_URI=DB URL" \
--build-arg "NODE_ENV=production" \
-f Dockerfile.web \
-t my-web-app .
docker run -p 3000:3000 -e DB_URI=DB URL my-web-app
- Pull the Docker image
docker pull letscodeteam/mdx-cms
This will start all applications in development mode using Turborepo.
- Navigate to the admin dashboard at
http://localhost:3001
- Log in with your credentials
- Create a new page or post using the MDX editor
- Publish your content
- Navigate to
apps/web/src/templates
- Modify existing templates or create new ones
- Apply templates to your content in the admin dashboard
- Copy the
examples/blog-starter
directory - Customize the configuration in
site.config.js
- Add your own components and styles
- Deploy to your hosting provider of choice
For full documentation, visit the docs site at:
http://localhost:4172
Or check the docs
directory for markdown documentation.
We welcome contributions to lets code! Please see CONTRIBUTING.md for details.
- 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.
Built with ❤️ by the lets code team