Markly is a full-stack application for managing and organizing bookmarks efficiently.
It combines a robust Go backend with a modern, responsive Next.js frontend, providing users with a seamless experience to save, categorize, tag, and explore their bookmarks.
Private project — internal contributors only.
- Features
- Architecture Overview
- Technologies
- Getting Started
- Development Workflow
- Environment Variables
- Project Structure
- Contributing
- License
- Bookmark Management: Add, edit, delete, and view bookmarks.
- Categorization & Tagging: Organize bookmarks by categories and tags for easier filtering.
- Collections: Group related bookmarks together.
- AI Suggestions: Personalized recommendations based on bookmarks, categories, or tags.
- User Authentication: Secure accounts with unique profiles.
Markly follows a frontend-backend separation:
- Frontend: Next.js application handles the UI/UX.
- Backend: Go API serves data and manages business logic.
- Database: PostgreSQL for persistent storage.
- Deployment: Docker is used for containerization; CI/CD pipelines handle automated testing and deployment.
Backend:
- Go (v1.20+)
- Gin Gonic (HTTP framework)
- PostgreSQL (database)
- Docker & Docker Compose
Frontend:
- Next.js (React framework)
- TypeScript
- Tailwind CSS (UI styling)
- Go 1.20+
- Node.js (LTS)
- npm or yarn
- Docker & Docker Compose
- Clone the repository
git clone https://github.com/your-username/Markly.git
cd Markly- Backend Setup
cd backend/markly
go mod tidy
make docker-run # Start PostgreSQL container
# Add database migrations here if needed- Frontend Setup
cd ../../client
npm install # or yarn installBackend:
cd backend/markly
make runFrontend:
cd client
npm run dev # or yarn devOpen http://localhost:3000 to view the app.
- Branching: Use feature branches named
feature/<name>orbugfix/<name>. - Commits: Use clear, descriptive messages.
- Pull Requests: PRs should reference issues and pass CI/CD checks.
- Testing: Write unit tests for backend and frontend features. Backend tests:
go test ./.... Frontend tests:npm test.
Create a .env file in the backend folder with variables like:
DB_HOST=localhost
DB_PORT=5432
DB_USER=your_user
DB_PASSWORD=your_password
DB_NAME=markly
JWT_SECRET=your_secretFrontend environment variables (optional):
NEXT_PUBLIC_API_URL=http://localhost:8080.
├── backend/markly/ # Go backend
│ ├── cmd/ # Entry points
│ ├── internal/ # Packages: handlers, models, database, etc.
│ ├── go.mod
│ └── Makefile # Build/run commands
└── client/ # Next.js frontend
├── public/ # Static assets
├── src/ # Components, pages, styles
├── package.json
└── next.config.ts
- Fork the repo or create a branch for your work.
- Follow coding standards and add tests for new features.
- Submit a pull request referencing the relevant issue.
- Make sure CI/CD passes before merging.
MIT License — see LICENSE.md for details.