Skip to main content

Modern Python CMS Framework - Fast, Typed, Secure, Modular

Project description

KardoCore

Modern Python Framework for CMS, Headless CMS, APIs and Enterprise Applications

Python License Version PyPI npm


๐ŸŒŸ Overview

KardoCore is a hybrid, modular, and AI-ready Python framework designed for building modern web applications, CMS platforms, headless CMS, REST APIs, and enterprise solutions.

Key Features

  • โšก Asynchronous ASGI Architecture - Built for high performance
  • ๐ŸŽจ Native Template Engine (KardoTheme) - Natural syntax with # prefix
  • ๐Ÿ“ฆ Package Manager - Install and manage themes easily
  • ๐Ÿ”’ Built-in Validation System - No external dependencies
  • ๐Ÿค– AI-Ready (KardoAI) - Native integration for AI features
  • ๐Ÿงฉ Extreme Modularity - Use only what you need
  • ๐ŸŒ Multi-language Support - i18n ready

๐ŸŽฏ Installation Modes

KardoCore offers 4 flexible installation modes to fit your needs:

1. Core Only - Headless CMS / REST API

Perfect for: API backends, microservices, headless CMS

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  KardoCore  โ”‚  โ† Core framework only
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Use cases:

  • REST API development
  • Headless CMS backend
  • Microservices
  • GraphQL servers
  • API-first applications

Installation:

pip install kardocore

2. Core + KardoAdmin - CMS with Admin Panel

Perfect for: Content management with admin interface

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  KardoCore  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ KardoAdmin  โ”‚  โ† Admin panel
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Use cases:

  • Content management systems
  • Admin dashboards
  • User management
  • Data administration
  • Backend management

Installation:

pip install kardocore[admin]

3. Core + Admin + Theme - Full CMS (Complete Solution)

Perfect for: Full-featured websites and CMS platforms

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  KardoCore  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ KardoAdmin  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ KardoTheme  โ”‚  โ† Frontend templates
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Use cases:

  • Complete CMS platforms
  • Corporate websites
  • E-commerce sites
  • Blogs and portfolios
  • Multi-page applications

Installation:

pip install kardocore[full]

4. KardoTheme Only - Frontend Only

Perfect for: Static sites, frontend-only projects

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ KardoTheme  โ”‚  โ† Template engine only
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Use cases:

  • Static site generation
  • Frontend templates
  • Email templates
  • PDF generation
  • Report generation

Installation:

pip install kardotheme

๐Ÿš€ Quick Start

Installation Options

From PyPI (Recommended):

# Core only
pip install kardocore

# With admin panel
pip install kardocore[admin]

# Full CMS (Core + Admin + Theme)
pip install kardocore[full]

# Theme engine only
pip install kardotheme

From GitHub:

# Stable version (Python 3.11+)
pip install git+https://github.com/webcien/Kardo.git@v0.0.9

# Development version (Python 3.14+)
pip install git+https://github.com/webcien/Kardo.git@main

With npm (for frontend assets):

# Install KardoCSS
npm install @kardo/css

# Install KardoTheme compiler
npm install @kardo/theme-compiler

๐Ÿ“‹ Version Information

KardoCore is available in two versions to support different Python environments:

๐ŸŽฏ v0.0.9 (Stable) - RECOMMENDED FOR PRODUCTION

  • Python: >= 3.11
  • Status: Stable and production-ready
  • Branch: v0.0.9
  • Compatible with: Python 3.11, 3.12, 3.13, 3.14+

๐Ÿš€ v0.1.0-alpha (Development)

  • Python: >= 3.14
  • Status: Active development
  • Branch: main
  • Features: Uses Python 3.14 modern features (PEP 649/749)

๐Ÿ“– See detailed version comparison โ†’


๐Ÿ’ก Usage Examples

Mode 1: Core Only (Headless API)

from kardocore import KardoApp

app = KardoApp()

@app.route("/api/posts")
async def get_posts(request):
    return {
        "posts": [
            {"id": 1, "title": "First Post"},
            {"id": 2, "title": "Second Post"}
        ]
    }

if __name__ == "__main__":
    app.run()

Mode 2: Core + Admin

from kardocore import KardoApp
from kardocore.admin import KardoAdmin

app = KardoApp()
admin = KardoAdmin(app)

# Register models for admin
@admin.register
class Post:
    title: str
    content: str
    published: bool

if __name__ == "__main__":
    app.run()

Access admin at: http://localhost:8000/admin


Mode 3: Full CMS (Core + Admin + Theme)

from kardocore import KardoApp
from kardocore.admin import KardoAdmin
from kardocore.theme import KardoTheme

app = KardoApp()
admin = KardoAdmin(app)
theme = KardoTheme(template_dir="templates")

@app.route("/")
async def index(request):
    context = {
        "title": "Welcome",
        "posts": Post.objects.all()
    }
    return theme.render("index.html", context)

if __name__ == "__main__":
    app.run()

Mode 4: Theme Only (Frontend)

from kardotheme import KardoTheme

theme = KardoTheme(template_dir="templates")

# Render template
html = theme.render("page.html", {
    "title": "My Page",
    "content": "Hello World"
})

# Save to file
with open("output.html", "w") as f:
    f.write(html)

๐Ÿค– KardoAI - AI Integration

KardoAI is the native AI integration layer for KardoCore, providing seamless AI capabilities across all modes.

Key Features

  • ๐Ÿง  Content Generation - AI-powered content creation
  • ๐Ÿ” Smart Search - Semantic search with embeddings
  • ๐Ÿ’ฌ Chatbots - Integrated conversational AI
  • ๐ŸŽจ Image Generation - AI image creation and editing
  • ๐Ÿ“ Auto-completion - Smart text suggestions
  • ๐ŸŒ Translation - Multi-language AI translation
  • ๐Ÿ“Š Analytics - AI-powered insights

How KardoAI Works

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚          Your Application            โ”‚
โ”‚                                      โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚         KardoCore              โ”‚ โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚       KardoAI            โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  AI Providers      โ”‚  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  - OpenAI          โ”‚  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  - Anthropic       โ”‚  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  - Google AI       โ”‚  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ”‚  - Local Models    โ”‚  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚  โ”‚ โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

KardoAI Usage Example

from kardocore import KardoApp
from kardocore.ai import KardoAI

app = KardoApp()
ai = KardoAI(app, provider="openai")

@app.route("/api/generate")
async def generate_content(request):
    prompt = request.json.get("prompt")
    
    # Generate content with AI
    content = await ai.generate(
        prompt=prompt,
        max_tokens=500,
        temperature=0.7
    )
    
    return {"content": content}

@app.route("/api/search")
async def semantic_search(request):
    query = request.json.get("query")
    
    # Semantic search with embeddings
    results = await ai.search(
        query=query,
        collection="posts",
        limit=10
    )
    
    return {"results": results}

@app.route("/api/chat")
async def chat(request):
    message = request.json.get("message")
    
    # Conversational AI
    response = await ai.chat(
        message=message,
        context=request.session.get("chat_history", [])
    )
    
    return {"response": response}

KardoAI Configuration

# config.py
KARDOAI_CONFIG = {
    "provider": "openai",  # openai, anthropic, google, local
    "api_key": "your-api-key",
    "model": "gpt-4",
    "temperature": 0.7,
    "max_tokens": 1000,
    
    # Features
    "content_generation": True,
    "semantic_search": True,
    "chatbot": True,
    "image_generation": True,
    "translation": True,
    
    # Embeddings
    "embeddings_model": "text-embedding-3-small",
    "vector_db": "chromadb",  # chromadb, pinecone, weaviate
    
    # Safety
    "content_filter": True,
    "rate_limiting": True,
    "cost_tracking": True
}

KardoAI in Admin Panel

When using Mode 2 or Mode 3, KardoAI integrates directly into the admin panel:

  • โœ๏ธ Content Editor: AI writing assistant
  • ๐Ÿ–ผ๏ธ Image Library: AI image generation
  • ๐Ÿ” Search Bar: Semantic search
  • ๐Ÿ’ฌ Help Chat: AI-powered support
  • ๐Ÿ“Š Analytics: AI insights and recommendations

๐ŸŽจ Template Engine (KardoTheme)

KardoCore includes a powerful native template engine with natural syntax.

Template Example

templates/index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>{title}</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@kardo/css@latest/dist/kardo.min.css">
</head>
<body>
    <h1>{title}</h1>
    
    #if items
        <ul>
        #for item in items
            <li>{item.name} - ${item.price}</li>
        #end
        </ul>
    #else
        <p>No items available</p>
    #end
    
    #include "partials/footer.html"
</body>
</html>

Template Syntax

Syntax Description Example
{variable} Variable interpolation {user.name}
#if condition Conditional #if user.is_admin
#else Else clause #else
#end End block #end
#for item in items Loop #for post in posts
#include "file" Include template #include "header.html"
{# comment #} Comment {# TODO: fix this #}

๐Ÿ“ฆ Package Manager

Install and manage themes from the official registry.

CLI Commands

# Install a theme
kardo theme install wellness-clinic

# List installed themes
kardo theme list

# Search themes
kardo theme search health

# View theme info
kardo theme info wellness-clinic

# Uninstall theme
kardo theme uninstall wellness-clinic

๐Ÿ—๏ธ Project Structure

my_project/
โ”œโ”€โ”€ app.py              # Main application
โ”œโ”€โ”€ config.py           # Configuration
โ”œโ”€โ”€ models/             # Data models
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ post.py
โ”‚   โ””โ”€โ”€ user.py
โ”œโ”€โ”€ routes/             # Route handlers
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ api.py
โ”‚   โ””โ”€โ”€ web.py
โ”œโ”€โ”€ templates/          # KardoTheme templates
โ”‚   โ”œโ”€โ”€ layout.html
โ”‚   โ”œโ”€โ”€ index.html
โ”‚   โ””โ”€โ”€ partials/
โ”‚       โ”œโ”€โ”€ header.html
โ”‚       โ””โ”€โ”€ footer.html
โ”œโ”€โ”€ static/             # Static files
โ”‚   โ”œโ”€โ”€ css/
โ”‚   โ”œโ”€โ”€ js/
โ”‚   โ””โ”€โ”€ images/
โ”œโ”€โ”€ admin/              # Admin customization
โ”‚   โ””โ”€โ”€ config.py
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ package.json        # For npm dependencies

๐Ÿ“š Documentation

Language-Specific Documentation

  • ๐Ÿ‡บ๐Ÿ‡ธ English: README.md (this file)
  • ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol: README.es.md

๐ŸŒ Ecosystem

KardoCore is part of the Kardo Ecosystem:

KardoCSS

Mobile-first CSS framework with utilities and components

  • 67KB full / 50KB minified
  • 20+ components
  • 100+ utilities
  • Touch-optimized

Installation:

npm install @kardo/css
# or
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@kardo/css@latest/dist/kardo.min.css">

KardoTemplates

Professional template collection for KardoCore

  • 60 templates (50 frontend + 10 backend)
  • 15 frontend categories
  • 2 backend categories
  • Mobile-first responsive

Installation:

kardo theme install wellness-clinic

๐ŸŽฏ Use Cases by Mode

Mode 1: Core Only

  • โœ… REST API backends
  • โœ… Headless CMS
  • โœ… Microservices
  • โœ… GraphQL servers
  • โœ… API gateways

Mode 2: Core + Admin

  • โœ… Content management
  • โœ… User administration
  • โœ… Data dashboards
  • โœ… Backend systems
  • โœ… Internal tools

Mode 3: Full CMS

  • โœ… Corporate websites
  • โœ… E-commerce platforms
  • โœ… Blogs and magazines
  • โœ… Portfolios
  • โœ… Community sites

Mode 4: Theme Only

  • โœ… Static site generation
  • โœ… Email templates
  • โœ… PDF reports
  • โœ… Documentation sites
  • โœ… Landing pages

๐Ÿ”ง Requirements

For v0.0.9 (Stable)

  • Python >= 3.11
  • uvicorn >= 0.30.0

For v0.1.0-alpha (Development)

  • Python >= 3.14
  • uvicorn >= 0.30.0

Optional Dependencies

  • Admin Panel: pip install kardocore[admin]
  • Full CMS: pip install kardocore[full]
  • AI Features: pip install kardocore[ai]
  • All Features: pip install kardocore[all]

๐Ÿค Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Setup

# Clone repository
git clone https://github.com/webcien/Kardo.git
cd Kardo

# For stable version
git checkout v0.0.9

# For development version
git checkout main

# Install in development mode with all features
pip install -e ".[all]"

# Run tests
pytest

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


๐Ÿ“ž Support


๐Ÿ—บ๏ธ Roadmap

v0.0.9 (Current - Stable)

  • โœ… Python 3.11+ compatibility
  • โœ… Core features complete
  • โœ… 4 installation modes
  • ๐Ÿ”„ Bug fixes and improvements
  • ๐Ÿ”„ Documentation

v0.1.0-alpha (Current - Development)

  • โœ… Python 3.14+ optimizations
  • ๐Ÿ”„ KardoAI integration
  • ๐Ÿ”„ Experimental features
  • ๐Ÿ“… PyPI publication
  • ๐Ÿ“… npm packages

v1.0.0 (Future)

  • ๐Ÿ“… Stable unified version
  • ๐Ÿ“… Complete KardoAI features
  • ๐Ÿ“… Multi-database support
  • ๐Ÿ“… GraphQL support
  • ๐Ÿ“… WebSocket support
  • ๐Ÿ“… Complete documentation
  • ๐Ÿ“… Production-ready

โญ Star History

If you find KardoCore useful, please consider giving it a star on GitHub!

Star History Chart


Made with โค๏ธ by the Kardo Team

Website โ€ข Documentation โ€ข Blog โ€ข Twitter

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kardocore-0.2.3.tar.gz (86.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kardocore-0.2.3-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file kardocore-0.2.3.tar.gz.

File metadata

  • Download URL: kardocore-0.2.3.tar.gz
  • Upload date:
  • Size: 86.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for kardocore-0.2.3.tar.gz
Algorithm Hash digest
SHA256 ef4d4c36d31158b4eb0cf84927110127de6b3ade2b0ccfaac5edfb35bb6b9599
MD5 6ff0979e521d138487599a66990f6978
BLAKE2b-256 c636369e473b50c5f5bf96dc755c10ef85f97086182fea8fd303496f7528579b

See more details on using hashes here.

File details

Details for the file kardocore-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: kardocore-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.7

File hashes

Hashes for kardocore-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e5d06b8f4c7b20d77d909a83cc7ab865351bd12fd2885ca64083cf8b9088f20
MD5 12a96b558d5afa969d5552e529f28ff8
BLAKE2b-256 20720903294c24b83c279ed8ff8cfda2717b22e8f17fea056701116403e186a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page