A comprehensive monorepo containing all Driplet services and components.
Driplet is a complete ecosystem for data capture and processing with these key components:
- API Service: Authentication backbone and data ingestion service
- Scheduler: Cloud Run-based recurring job processor
- Chrome Extension: User-facing browser extension
- Landing Page: Public-facing website built with Next.js
driplet/
├── api/ # Go-based REST API service
├── scheduler/ # Go-based Cloud Run scheduler service
├── extension/ # Chrome extension (TypeScript/Vue)
├── landing/ # Next.js website
└── pkg/ # Shared Go packages
- Docker and Docker Compose
- Make (optional, but recommended)
- Node.js and pnpm (for extension and landing page development)
- Go (for direct API/scheduler development)
-
Clone the repository
git clone https://github.com/devs-group/driplet.git cd driplet
-
Copy a
.env.example
file in the root directory and replace required variables
Start all services using Docker Compose:
docker compose up -d
Stop all services:
docker compose down
Run migrations to set up the database schema:
make migrate
Create a new migration:
make migration name=add_new_table
Navigate to the extension directory:
cd extension
Install dependencies:
pnpm install
Start development server:
pnpm dev
Load the extension in Chrome:
- Open Chrome and navigate to
chrome://extensions
- Enable "Developer mode"
- Click "Load unpacked" and select the
extension/
folder
Build the extension for production:
pnpm build
Navigate to the landing page directory:
cd landing
Install dependencies:
pnpm install
Start development server:
pnpm dev
Build for production:
pnpm build
The API service handles:
- User authentication (Google OAuth)
- Authorization
- Data ingestion into PubSub topics
- Database access and management
The scheduler service:
- Runs in Cloud Run environment
- Executes recurring cron jobs
- Processes scheduled tasks
The extension includes:
- Background scripts
- Content scripts
- Popup UI
- Options page
- User interactions captured by the Chrome extension
- Data sent to API service
- API publishes events to PubSub
- Scheduler processes events according to defined schedules
Run backend tests:
docker compose run --rm api go test ./...
docker compose run --rm scheduler go test ./...
The services are containerized and can be deployed to any container orchestration platform:
- Google Cloud Run
- Build the extension:
cd extension pnpm build
- Package files under
extension/
- Publish to Chrome Web Store