Aplicacion web para guardar, organizar y gestionar marcadores con categorias, etiquetas y favoritos. Incluye extension de Chrome para guardar paginas con un solo clic.
Demo en vivo: bm.angeldecode.com
| Capa | Tecnologia |
|---|---|
| Frontend | Next.js 16, React 19, TailwindCSS 4, shadcn/ui |
| Backend | NestJS 11, Drizzle ORM, Passport JWT |
| Base de datos | PostgreSQL, Redis |
| Extension | Chrome Extension (Manifest V3) |
| Monorepo | pnpm workspaces + Turborepo |
apps/
web/ → Frontend (Next.js - App Router)
api/ → Backend REST API (NestJS)
extension/ → Extension de Chrome
packages/
eslint-config/ → Configuracion compartida de ESLint
typescript-config/ → Configuracion compartida de TypeScript
El proyecto esta desplegado en un VPS de CubePath, utilizando Dokploy como plataforma de gestion de despliegues con Docker.
| Servicio | Tipo | Tecnologia |
|---|---|---|
| Frontend | Application | Next.js |
| Backend | Application | NestJS |
| Base de datos | Database | PostgreSQL |
| Cache | Database | Redis |
Configuracion de red:
- Subdominios creados para frontend y backend, apuntando a la IP del VPS mediante registros DNS
- Certificados SSL generados automaticamente por Dokploy con Let's Encrypt
Autenticacion mediante JWT (access token + refresh token con rotacion). Soporta login con email/password y Google OAuth 2.0.
Principales endpoints:
| Recurso | Endpoints |
|---|---|
| Auth | POST /auth/login, POST /auth/register, POST /auth/refresh, GET /auth/google |
| Bookmarks | GET /bookmarks, POST /bookmarks, PATCH /bookmarks/:id, DELETE /bookmarks/:id |
Los bookmarks soportan filtrado por busqueda, categoria, etiquetas y favoritos con paginacion.
Categorias disponibles: design, development, ai_ml, productivity, reading, tools, other
API (apps/api/.env):
DATABASE_URL=postgres://user:pass@localhost:5434/bmdb
REDIS_URL=redis://localhost:6379
JWT_SECRET=...
JWT_REFRESH_SECRET=...
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...Web (apps/web/.env):
NEXT_PUBLIC_API_URL=http://localhost:3000# Iniciar PostgreSQL y Redis
docker compose up -d
# Instalar dependencias
pnpm install
# Ejecutar todos los servicios
pnpm dev
