Open-Source Cold Email & Warmup Platform
Warmbly is the open-source platform for cold email: warm your mailboxes, send campaigns, and triage every reply. Run it on our cloud or self-host the whole thing.
Draft, review, approve, and schedule LinkedIn posts, carousels, and comments from saved writing examples and professional context, so the output still reads as you.
MarketingTypeScript · PLpgSQLGitHub @usamashahzaibOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Qalam is a LinkedIn writing and publishing system with voice memory, approvals, analytics, and multi-client agency workflows. The product is Qalam; byqalam.com is the domain.
Project rules for AI coding tools live in CLAUDE.md and AGENTS.md. Read them before changing code.
app/globals.css)supabase/migrationsvercel.json)extension/npm install # also installs the git hooks
cp .env.example .env.local
npm run dev
Fill .env.local from .env.example. Without Supabase, AI, and LinkedIn credentials, the marketing site renders but app features will fail.
| Command | Purpose |
|---|---|
npm run dev | Local dev server |
npm run build | Production build. prebuild blocks the build if any local migration is not applied to the configured database |
npm run typecheck | Regenerates route types, then runs tsc |
npm run lint | ESLint |
npm test | Vitest unit and integration tests (__tests__/) |
npx playwright test | Browser tests (tests/) |
npm run check:dashes | Blocks em and en dashes (also runs as a pre-commit hook) |
npm run check:rls | Audits database RLS policies and grants |
npm run check:migrations | Verifies every local migration is applied |
npm run eval:prompts | Prompt contract evals |
| Path | What lives there |
|---|---|
app/ | Marketing pages, SEO landing pages, free tools, legal, blog |
app/(app)/ | Signed-in app: writer, library, calendar, analytics, approvals, voice, carousels, career, agency, desk, passport |
app/connect, app/drop, app/proof, app/pitch | Client-facing token pages for agencies (no Qalam account needed) |
app/api/ | Route handlers, including webhooks and cron jobs |
app/admin/ | Platform admin area |
components/ | Shared UI, app shell, agency components |
lib/ | Business logic, prompts, pricing, SEO content |
lib/server/ | Server-only helpers: auth, workspace, LinkedIn, payments, Supabase, agency |
proxy.ts | Host routing, route protection, security headers |
supabase/migrations/ | Database schema history |
docs/ | Product, positioning, design, and audit documents |
scripts/ | Readiness checks, git hooks, evals |
| Concern | File |
|---|---|
| Plans, prices, plan features | lib/pricing.ts |
| Career add-on catalog | lib/career-pricing.ts |
| Product and use-case copy | lib/site-content.ts |
| SEO constants and route inventory | lib/seo.ts |
| Global metadata and JSON-LD | app/layout.tsx |
| Protected app routes | lib/protected-routes.ts |
| Domain types | types/domain.ts |