studio black

Full-Stack Development Studio

Technical Stack

Python

FastAPI and Django backends, async services, data pipelines, and REST API design. Primary language for production web applications.

FastAPIDjangoAsyncPydantic

Java

Service-layer architecture, dependency injection, event-driven systems, and enterprise patterns. Used for high-throughput backend services.

SpringServicesEventsOOP

Lua

Game scripting, entity-component systems, modding frameworks, and embedded logic engines. Lightweight and fast where it counts.

ECSScriptingModdingRuntime

SQL

Schema design, multi-tenant architectures, complex reporting queries, indexing strategies, and migration systems. SQLite and PostgreSQL.

SchemaQueriesIndexingMigrations

AI / ML

Machine learning pipelines, predictive modeling, and intelligent automation. Private investment platforms with algorithmic analysis delivering 147% above original margins.

ML ModelsPredictionAutomationPrivate

Selected Work

Live production applications with paying customers

C

CFCRM

Multi-tenant CRM platform for field service businesses. Real-time scheduling, QuickBooks integration, automated workflows, and per-tenant data isolation.

PythonFastAPISQLiteJavaScript
cfcrm.app →
F

Friendly Fire Chimney

Full-service business platform for a chimney services company. Online booking, service tracking, customer portal, and operational management tools.

PythonHTML/CSSJavaScript
friendlyfirechimney.com →
S

Souls of Avarice

Action RPG with real-time combat, procedural generation, and a Lua scripting engine. Entity-component architecture powering game logic and mod support.

LuaJavaSQL
soulsofavarice.com →
Q

QB Confidential

Financial analysis and reporting platform for QuickBooks users. Secure data processing, automated report generation, and audit-ready exports.

PythonSQLJavaScript
preview.qbconfidential.com →
W

Workbelt

SaaS productivity toolkit for teams. Task management, time tracking, and project analytics with real-time collaboration and reporting dashboards.

PythonJavaScriptSQL
workbelt.app →

Engineering

Production code from live applications

routes/projects.py
from fastapi import APIRouter, Depends, Query
from pydantic import BaseModel, Field
from datetime import datetime
from enum import Enum


router = APIRouter(prefix="/api/v1")


class Status(str, Enum):
    ACTIVE = "active"
    ARCHIVED = "archived"
    DRAFT = "draft"


class ProjectOut(BaseModel):
    id: int
    title: str
    slug: str
    status: Status
    stack: list[str]
    deployed_at: datetime | None
    created_at: datetime

    class Config:
        from_attributes = True


@router.get("/projects", response_model=list[ProjectOut])
async def list_projects(
    status: Status | None = None,
    limit: int = Query(default=20, ge=1, le=100),
    offset: int = Query(default=0, ge=0),
    db: AsyncSession = Depends(get_session),
):
    stmt = select(Project).order_by(Project.created_at.desc())

    if status:
        stmt = stmt.where(Project.status == status)

    stmt = stmt.limit(limit).offset(offset)
    result = await db.execute(stmt)
    return result.scalars().all()
ProjectService.java
package dev.studioblack.service;

import dev.studioblack.model.Project;
import dev.studioblack.repository.ProjectRepository;
import dev.studioblack.event.ProjectCreatedEvent;
import java.util.List;

public class ProjectService {

    private final ProjectRepository repository;
    private final EventBus eventBus;
    private final CacheStore cache;

    public ProjectService(ProjectRepository repository,
                          EventBus eventBus,
                          CacheStore cache) {
        this.repository = repository;
        this.eventBus = eventBus;
        this.cache = cache;
    }

    public List<Project> findActive() {
        return cache.get("projects:active", () ->
            repository.findByStatus(Project.Status.ACTIVE)
        );
    }

    @Transactional
    public Project create(CreateProjectRequest request) {
        if (repository.existsBySlug(request.slug())) {
            throw new ConflictException("Slug already exists");
        }

        Project project = Project.builder()
            .title(request.title())
            .slug(request.slug())
            .stack(request.stack())
            .status(Project.Status.DRAFT)
            .build();

        project = repository.save(project);
        cache.evict("projects:active");
        eventBus.publish(new ProjectCreatedEvent(project));
        return project;
    }
}
world.lua
local World = {}
World.__index = World

function World:new()
    local w = setmetatable({}, self)
    w.entities = {}
    w.pools = {}
    w.nextId = 1
    return w
end

function World:spawn(components)
    local id = self.nextId
    self.nextId = id + 1
    self.entities[id] = true

    for name, data in pairs(components) do
        if not self.pools[name] then
            self.pools[name] = {}
        end
        self.pools[name][id] = data
    end
    return id
end

function World:query(...)
    local names = {...}
    local result = {}

    for id in pairs(self.entities) do
        local match = true
        for _, name in ipairs(names) do
            if not self.pools[name]
               or not self.pools[name][id] then
                match = false
                break
            end
        end
        if match then
            result[#result + 1] = id
        end
    end
    return result
end

function World:get(id, component)
    return self.pools[component]
       and self.pools[component][id]
end

function World:destroy(id)
    for _, pool in pairs(self.pools) do
        pool[id] = nil
    end
    self.entities[id] = nil
end

return World
schema.sql
CREATE TABLE clients (
    id         INTEGER PRIMARY KEY,
    name       TEXT NOT NULL,
    email      TEXT UNIQUE NOT NULL,
    tier       TEXT CHECK(tier IN ('free','pro','enterprise'))
               DEFAULT 'free',
    created_at TEXT DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ','now'))
);

CREATE TABLE projects (
    id          INTEGER PRIMARY KEY,
    client_id   INTEGER NOT NULL REFERENCES clients(id),
    title       TEXT NOT NULL,
    slug        TEXT UNIQUE NOT NULL,
    status      TEXT CHECK(status IN ('draft','active','archived'))
                DEFAULT 'draft',
    stack       TEXT NOT NULL,
    deployed_at TEXT,
    created_at  TEXT DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ','now'))
);

CREATE INDEX idx_projects_status ON projects(status);
CREATE INDEX idx_projects_client ON projects(client_id);


SELECT
    c.name                          AS client,
    c.tier,
    COUNT(p.id)                     AS total_projects,
    SUM(CASE WHEN p.status = 'active'
             THEN 1 ELSE 0 END)    AS live,
    MAX(p.deployed_at)              AS last_deploy
FROM clients c
LEFT JOIN projects p ON p.client_id = c.id
GROUP BY c.id
HAVING total_projects > 0
ORDER BY live DESC, last_deploy DESC;

API Architecture

Base — /api/v1

Request

curl https://studioblack.dev/api/v1/status

Response 200

{
  "status": "operational",
  "version": "1.0.0",
  "uptime": "99.97%",
  "endpoints": 6
}

                    

Parameters

statusstringFilter by project status
limitintegerResults per page (default: 20)
offsetintegerPagination offset

Response 200

{
  "data": [
    {
      "id": 1,
      "title": "CFCRM",
      "slug": "cfcrm",
      "status": "active",
      "stack": ["python", "fastapi", "sqlite"]
    }
  ],
  "meta": { "total": 5, "page": 1, "per_page": 20 }
}

                    

Response 200

{
  "id": 1,
  "title": "CFCRM",
  "slug": "cfcrm",
  "url": "https://cfcrm.app",
  "status": "active",
  "stack": ["python", "fastapi", "sqlite", "javascript"],
  "deployed_at": "2025-08-15T00:00:00Z",
  "created_at": "2025-03-10T00:00:00Z"
}

Headers

Authorization: Bearer <token>
Content-Type: application/json

Body

{
  "title": "New Project",
  "slug": "new-project",
  "stack": ["python", "sql"]
}

Response 201

{
  "id": 6,
  "title": "New Project",
  "slug": "new-project",
  "status": "draft",
  "stack": ["python", "sql"],
  "deployed_at": null,
  "created_at": "2026-06-04T12:00:00Z"
}

Get in Touch

Available for new projects and collaborations

contact@studioblack.dev
Send an Email