Skip to content

MicroPyramid/opensource-startup-crm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BottleCRM: Free and Open Source Customer Relationship Management

Powerful, Modern Multi-Tenant CRM for Everyone

BottleCRM is a free, open-source Customer Relationship Management solution designed to help small and medium businesses effectively manage their customer relationships. Built with modern technologies and enterprise-grade multi-tenancy, it offers a comprehensive set of features without the enterprise price tag.

โœจ Key Highlights

  • Multi-Tenant Architecture: Secure organization-based data isolation
  • Role-Based Access Control: Granular permissions for users and admins
  • Modern Technology Stack: Built with SvelteKit 2.x, Svelte 5.x, and PostgreSQL
  • Mobile-First Design: Responsive interface optimized for all devices

๐Ÿš€ Core Features

Sales & Lead Management

  • Lead Management: Track and nurture leads from initial contact to conversion
  • Account Management: Maintain detailed records of customer accounts and organizations
  • Contact Management: Store and organize all your customer contact information
  • Opportunity Management: Track deals through your sales pipeline with customizable stages

Customer Support

  • Case Management: Handle customer support cases and track resolution
  • Solution Knowledge Base: Maintain searchable solutions for common issues
  • Multi-Channel Support: Handle cases from various origins (email, web, phone)

Productivity & Collaboration

  • Task Management: Never miss a follow-up with built-in task tracking
  • Event Management: Schedule and manage meetings and activities
  • Board Management: Trello-like kanban boards for project tracking
  • Comment System: Collaborate with team members on records

Sales Tools

  • Quote Management: Generate professional quotes with line items
  • Product Catalog: Maintain product inventory with pricing
  • Sales Pipeline: Visual opportunity tracking with probability scoring

Administrative Features

  • User Management: Add team members with appropriate role assignments
  • Organization Management: Multi-tenant structure with data isolation
  • Audit Logging: Complete activity tracking for compliance
  • Super Admin Panel: Platform-wide management for system administrators

๐Ÿ”ฎ Coming Soon

  • Invoice Management: Create, send, and track invoices (in development)
  • Email Integration: Connect your email accounts for seamless communication
  • Analytics Dashboard: Make data-driven decisions with powerful reporting tools
  • API Integration: REST API for third-party integrations

๐Ÿ–ฅ๏ธ Technology Stack

  • Frontend: SvelteKit 2.x, Svelte 5.x, TailwindCSS 4.x
  • Backend: Node.js with Prisma ORM
  • Database: PostgreSQL (recommended) with multi-tenant schema
  • Authentication: Session-based authentication with organization membership
  • Icons: Lucide Svelte icon library
  • Validation: Zod for type-safe form validation

๐Ÿš€ Getting Started

Prerequisites

  • Node.js: v22.13.0 (use nvm for version management)
  • Package Manager: pnpm (recommended)
  • Database: PostgreSQL (required for multi-tenancy features)

Installation

  1. Clone the repository:
git clone https://github.com/micropyramid/svelte-crm.git
cd svelte-crm
  1. Set up Node.js version:
nvm use 22.13.0
  1. Install dependencies:
pnpm install
  1. Configure environment variables: Create a .env file based on the following template:
# Database Configuration
DATABASE_URL="postgresql://postgres:password@localhost:5432/bottlecrm?schema=public"

# JWT Secret (required for authentication)
# Generate a secure secret using openssl:
#   openssl rand -base64 32
JWT_SECRET="<your-generated-secret>"

# Google OAuth (Optional)
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET=""
GOOGLE_LOGIN_DOMAIN="http://localhost:5173"
  1. Set up the database:
# Generate Prisma client
npx prisma generate

# Run database migrations
npx prisma migrate dev

# (Optional) Open Prisma Studio to view data
npx prisma studio
  1. Start the development server:
pnpm run dev

Development Workflow

Before committing code, ensure quality checks pass:

# Type checking
pnpm run check

# Linting and formatting
pnpm run lint

# Build verification
pnpm run build

Production Deployment

# Set Node.js version
nvm use 22.13.0

# Generate Prisma client
npx prisma generate

# Run production migrations
npx prisma migrate deploy

# Build application
pnpm run build

# Start production server
pnpm run preview

๐Ÿ—๏ธ Architecture & Security

Multi-Tenant Design

  • Organization Isolation: Complete data separation between organizations
  • Role-Based Access: Users can have different roles across organizations
  • Session Management: Secure cookie-based authentication with organization context

User Roles

  • User: Standard access to organization data
  • Admin: Organization-level administrative privileges
  • Super Admin: Platform-wide access (requires @micropyramid.com email)

Data Security

  • All database queries are organization-scoped
  • Strict permission validation on all routes
  • Audit logging for compliance and tracking

๐Ÿ“ Project Structure

src/
โ”œโ”€โ”€ routes/
โ”‚   โ”œโ”€โ”€ (site)/          # Public marketing pages
โ”‚   โ”œโ”€โ”€ (no-layout)/     # Authentication pages
โ”‚   โ”œโ”€โ”€ (app)/           # Main CRM application
โ”‚   โ””โ”€โ”€ (admin)/         # Super admin panel
โ”œโ”€โ”€ lib/
โ”‚   โ”œโ”€โ”€ stores/          # Svelte stores for state management
โ”‚   โ”œโ”€โ”€ data/            # Static data and configurations
โ”‚   โ””โ”€โ”€ utils/           # Utility functions
โ””โ”€โ”€ hooks.server.js      # Authentication and route protection

๐Ÿ’ฌ Community and Feedback

We love to hear from our users! Please share your feedback, report bugs, or suggest new features:

  • Issues: Open an issue on GitHub for bugs and feature requests
  • Discussions: Join community discussions for general questions
  • Pull Requests: Contribute code improvements and new features

๐Ÿค Contributing

We welcome contributions of all kinds! See our CONTRIBUTING.md for details on how to get started.

Development Guidelines

  • Follow existing code patterns and conventions
  • Ensure all forms have proper accessibility (labels associated with controls)
  • Never use $app imports from SvelteKit (see packaging best practices)
  • Always filter database queries by organization membership
  • Add appropriate error handling and validation

๐Ÿ“„ License

BottleCRM is open source software licensed as MIT.


Built with โค๏ธ for small businesses everywhere. We believe quality CRM software should be accessible to everyone.