How It Works
From Definition to Application in Minutes
DSLcore uses a declarative approach to data management. You describe your data, and we generate everything else.
Step 1: Define Your Schema
Using our simple Domain Schema Language (DSL), describe your data in plain text:
Table: Product
- id: int (primary key)
- sku: string (required, unique)
- name: string (required)
- price: decimal (min: 0)
- category: string (values: electronics, clothing, food)
- in_stock: boolean (default: true)
Table: Supplier
- id: int (primary key)
- name: string (required)
- email: string (required)
- lead_time_days: int
Table: Inventory
- id: int (primary key)
- product_id: int (foreign key -> Product)
- supplier_id: int (foreign key -> Supplier)
- quantity: int (required)
- reorder_point: int
- last_updated: datetime (default: NOW)
No coding required. The DSL is designed to be readable by anyone who understands their data.
Step 2: Generate Your Application
DSLcore processes your schema and automatically generates:
Database Layer
- SQLAlchemy models with full type safety
- Foreign key relationships and constraints
- Soft delete support (data is never truly lost)
- Automatic timestamps and audit fields
API Layer
- RESTful endpoints for every entity
- Create, Read, Update, Delete operations
- Pagination and filtering built-in
- Proper error handling and validation
Web Interface
- Responsive forms for data entry
- Table views with sorting and filtering
- Relationship navigation (click through to related records)
- Search and lookup capabilities
Step 3: Deploy and Use
Your generated application is a complete, production-ready system:
Browser
│
▼
Web Interface (HTML/CSS/JS)
│
▼
Flask Controllers (REST API)
│
▼
SQLAlchemy Models (Python)
│
▼
Database (SQLite/PostgreSQL)
Key Features
Relationship Navigation
Click through your data naturally. View a product, see its suppliers. View a supplier, see all their products. DSLcore handles the joins automatically.
Data Integrity
Constraints are enforced at every level:
- Required fields cannot be empty
- Unique fields prevent duplicates
- Foreign keys maintain relationships
- Value constraints limit options
Soft Delete
When records are “deleted,” they’re marked with a timestamp but retained in the database. Perfect for:
- Audit requirements
- Accidental deletion recovery
- Historical analysis
Multi-Schema Support
Run multiple independent schemas simultaneously:
- Separate databases per business unit
- Complete isolation when needed
- Shared infrastructure when desired
Technical Stack
DSLcore is built on proven, production-ready technology:
- Backend: Python, Flask, SQLAlchemy
- Frontend: HTML5, CSS3, HTMX (no JavaScript frameworks)
- Database: SQLite (development), PostgreSQL (production)
- Templating: Jinja2 with component isolation
What Makes DSLcore Different?
1. Human-Readable Schemas
Your data model is documentation. Anyone can read and understand the DSL.
2. No Vendor Lock-In
Generated code is yours. Standard Python, standard SQL. Take it anywhere.
3. Instant Iteration
Change your schema, regenerate your application. Evolve as fast as your business.
4. AI-Ready Output
Structured data that modern AI tools can immediately work with.
See It in Action
Ready to see how DSLcore transforms your specific data challenges?
Contact us for a demo tailored to your business needs.
Read about our solutions for common use cases.