Independent software studio

I build my own software products — and the tools to ship them.

Melodic Development is an independent studio. I design, build, and run products on a stack I maintain myself — from a church platform to developer tools to a training app. Select advisory work, when it's a good fit.

import { bootstrap } from '@melodicdev/core';

await bootstrap({
  target: '#app',
  rootComponent: 'my-app',
  devMode: true
});

What I'm building

Software born out of real needs — shipped, maintained, and growing.

The tools behind the products

Gather, Coax, and this very site run on frameworks I build and maintain in the open. I make the tools, then use them to ship real software.

Melodic Framework

The lightweight web component framework I built and use every day. Fast templates, reactive state, built-in routing — no virtual DOM overhead.

  • TypeScript-first with decorator syntax
  • Shadow DOM encapsulation
  • Tiny runtime (~8kb gzipped)
counter.component.ts
@MelodicComponent({
  selector: 'my-counter',
  template: (self: CounterComponent) => html`
    <button @click=${self.increment}>
      Count: ${self.count}
    </button>
  `
})
export class CounterComponent {
  count = 0;

  increment() {
    this.count++;
  }
}

Melodic Components

40+ production-ready UI components built on the framework. Drop them in, theme them once with design tokens, and get dark mode for free.

  • 40+ components across 9 categories
  • Design token theming & dark mode
  • Accessible and keyboard-navigable
app.template.ts
import '@melodicdev/components/card';
import '@melodicdev/components/button';
import '@melodicdev/components/badge';

html`
  <ml-card>
    <span slot="header">Team Activity</span>

    <ml-badge variant="success">
      12 members online
    </ml-badge>

    <ml-button slot="footer"
      variant="primary">
      View dashboard
    </ml-button>
  </ml-card>
`

Melodic PHP

Built for clarity, not magic. CQRS data access, JWT authentication, auto-wiring dependency injection, and a composable middleware pipeline — all explicit, all traceable. PHP 8.2+.

  • CQRS data access — no ORM magic, every query is explicit
  • OIDC, OAuth2, and local auth with JWT built-in
  • Auto-wiring DI container with service providers
public/index.php
$app = new Application(dirname(__DIR__));
$app->loadConfig('config/config.json');

$app->register(new SecurityServiceProvider());
$app->addMiddleware(new CorsMiddleware());
$app->addMiddleware(new JsonBodyParserMiddleware());

$app->routes(function ($router) {
  $router->get('/', HomeController::class, 'index');
  $router->group('/api', function ($r) {
    $r->apiResource('/users', UserController::class);
  }, middleware: [ApiAuthenticationMiddleware::class]);
});

$app->run();

Building something of your own?

I take on a small amount of advisory and architecture work when it's the right fit. If that's you, say hello.

Get in touch