MemesDev is an open-source platform designed for developers to share, discover, and enjoy programming-related memes. Built with modern web technologies, it aims to offer a premium and fluid user experience.
This project uses a modern and efficient stack:
- Framework: Next.js 16 (App Router, Server Actions)
- Language: TypeScript
- Styling: Tailwind CSS v4
- Database: Neon (Postgres Serverless)
- ORM: Drizzle ORM
- Authentication: Better Auth
- Validation: Zod
- UI Components: Shadcn UI, Radix UI, Lucide Icons
- Linting/Formatting: Biome
The project follows a Feature-First Architecture ("Screaming Architecture") adapted for the Next.js App Router:
app/: Contains route logic and main features (/hot,/upload,/search, etc.). Each route folder groups its specific components and logic.shared/: Contains code reusable across the application, such as base UI components (shared/components), global hooks (shared/hooks), and utilities.db/: Database configuration and Drizzle schema definitions (db/schemas).drizzle/: Database migrations.emails/: Transactional email templates (React Email).
To run this project locally:
git clone https://github.com/ivan2214/MemesDev.git
cd memes-dev
pnpm installYou will need to configure environment variables for the database and authentication. Create a .env.local file with the necessary keys (check with the dev team to get them).
The project uses Drizzle and Neon. To sync your local DB:
# Generate SQL artifacts
pnpm db:generate
# Migrate the database
pnpm db:migrate
# (Optional) Seed test data
pnpm db:seedpnpm devThe application will be available at http://localhost:3000.
pnpm dev: Starts the development server.pnpm build: Builds the application for production.pnpm lint: Runs Biome to check code quality.pnpm format: Automatically formats code with Biome.pnpm db:*: Commands related to Drizzle ORM.
Contributions are welcome! Please read our CONTRIBUTING.md for more details on how to get started, our code standards, and the Pull Request process.
This project is licensed under the MIT License.
MemesDev es una plataforma de código abierto diseñada para que los desarrolladores compartan, descubran y disfruten de memes relacionados con la programación. Construida con tecnologías web modernas, busca ofrecer una experiencia de usuario premium y fluida.
Este proyecto utiliza un stack moderno y eficiente:
- Framework: Next.js 16 (App Router, Server Actions)
- Lenguaje: TypeScript
- Estilos: Tailwind CSS v4
- Base de Datos: Neon (Postgres Serverless)
- ORM: Drizzle ORM
- Autenticación: Better Auth
- Validación: Zod
- UI Components: Shadcn UI, Radix UI, Lucide Icons
- Linting/Formatting: Biome
El proyecto sigue una arquitectura orientada a características ("Screaming Architecture") adaptada al App Router de Next.js:
app/: Contiene la lógica de las rutas y las características principales (/hot,/upload,/search, etc.). Cada carpeta de ruta agrupa sus componentes y lógica específica.shared/: Contiene código reutilizable en toda la aplicación, como componentes UI base (shared/components), hooks globales (shared/hooks) y utilidades.db/: Configuración de la base de datos y definición de esquemas Drizzle (db/schemas).drizzle/: Migraciones de base de datos.emails/: Plantillas de correo transaccionales (React Email).
Para ejecutar este proyecto localmente:
git clone https://github.com/ivan2214/MemesDev.git
cd memes-dev
pnpm installNecesitarás configurar las variables de entorno para la base de datos y la autenticación. Crea un archivo .env.local con las claves necesarias (mira el equipo de desarrollo para obtenerlas).
El proyecto utiliza Drizzle y Neon. Para sincronizar tu BD local:
# Generar artefactos sql
pnpm db:generate
# Migrar la base de datos
pnpm db:migrate
# (Opcional) Sembrar datos de prueba
pnpm db:seedpnpm devLa aplicación estará disponible en http://localhost:3000.
pnpm dev: Inicia el servidor de desarrollo.pnpm build: Construye la aplicación para producción.pnpm lint: Ejecuta Biome para verificar la calidad del código.pnpm format: Formatea el código automáticamente con Biome.pnpm db:*: Comandos relacionados con Drizzle ORM.
¡Las contribuciones son bienvenidas! Por favor, lee nuestro CONTRIBUTING.md para más detalles sobre cómo empezar, nuestras normas de código y el proceso de Pull Request.
Este proyecto está bajo la Licencia MIT.