Skip to content

Web & Application Development

Cadenic Studios designs and builds web applications on a typed Next.js and PostgreSQL stack, deployed on infrastructure the client owns. That means customer portals, booking and scheduling systems, dashboards, internal tools, marketplaces and SaaS products.

Software with accounts, roles, real data and someone's business running through it. The schema comes before the screens. The admin surface is one a non-engineer can operate on a Tuesday afternoon, and the deploy is one anyone on your team can perform.

What it gets hired to build

8 kinds of project

  • Customer portals and member areas
  • Booking, scheduling and reservation systems
  • Dashboards and reporting tools
  • Internal and operations tooling
  • Marketplaces and multi-tenant products
  • SaaS applications with subscription billing
  • Content platforms with a real editing workflow
  • API integrations between systems that were never meant to talk

That list shows the shape of the work. It is neither complete nor a menu of packages. If what you are building is not on it, the question is whether it is the same kind of problem, and that is a short conversation.

Most of what gets called a website is a brochure. We build the other kind: software with accounts, roles, real data and someone's business running through it. That means a schema designed before the screens, permissions the database itself enforces, background jobs that keep working when nobody is watching, and an admin surface a non-engineer can actually operate on a Tuesday afternoon. It also means the boring parts are done. Migrations run in order, environments match, anyone on your team can perform a deploy, and a written runbook keeps the knowledge from being trapped in whoever built it.

What is under all of it

Three depths, in the order they get designed. Pick one.

01 — Data

The layer that outlives every redesign above it. It gets designed before a single screen does, because a schema chosen late is a schema you pay for twice.

  • Relational schema with versioned, ordered migrations
  • Permissions enforced in the database, not the browser
  • Background jobs, queues and scheduled work
  • Backups and a restore someone has actually run

What you get

  • 01Next.js App Router application, TypeScript end to end
  • 02PostgreSQL schema with row-level security and versioned migrations
  • 03Authentication, roles and an operator-facing admin surface
  • 04Scheduled jobs, webhooks and third-party API integration
  • 05Automated checks, preview deployments and a written runbook
  • 06Handover to your repository, your hosting, your accounts

Stack

  • Next.js
  • React
  • TypeScript
  • PostgreSQL
  • Supabase
  • Tailwind CSS
  • Vercel

Proof

Two pieces of work for this service, both live and both ours. Either one opens in a click.

Evidence 01

Two phones showing Scorebug: the home dashboard alongside The Slate's list of the day's games
ProductScorebugLive on the web · Android in closed testing

Scorebug is a working application, not a brochure. Nineteen leagues run off one central registry and one Next.js codebase. Photos and ticket stubs sit in a private bucket behind signed URLs, and the rules that guard them are enforced in Postgres policies, well below the client. League news is aggregated by scheduled edge functions, so the upstream APIs are never in the request path of a page load.

leagues covered
19
sports, one code path
7
earliest season on record
2002
  • Row-level security on every table, through a dedicated hardening pass
  • Edge functions on pg_cron, so pages read a warm cache and never the upstream API
  • Seven sports and Formula 1 on one code path, with season data reaching back to 2002

Evidence 02

Websiteplaydeltav.spaceLive

playdeltav.space is the same discipline pointed at live data. There are twenty-eight routes, almost none of them static, and twelve route handlers behind them. Planet distances are computed from orbital elements at request time, with no feed involved, and the globes are rendered from topology data with d3-geo on the server, so no map tiles are ever requested.

28 routes, almost none of them static · 366 days of almanac, cross-linked · 60 launch vehicles on the register

  • A cache policy decided per readout: the station covers about seventy-seven kilometres in ten seconds, so its read is cached for ten
  • Sixty launch vehicles, a 366-day almanac and an upcoming-launch manifest, generated and cross-linked
  • Dynamic social cards, calendar export and a headless storefront on the same codebase

Where it stopsScorebug is live on the web and its Android build is in closed testing. playdeltav.space is live. Both applications are first-party. The studio designed, built and operates them itself, which is a different claim from a case study about somebody else's project, and we say which one it is.

See Scorebug

Written up

The architecture is written out in full, including the four places the registry does not reach and the silently empty news feed that came out of one of them. Read it before hiring us; it is the same reasoning you would be buying.

Nineteen leagues, one registry

Architecture · 3 min read

Method

How a project runs

The same five steps for every service. Nothing is committed to a build until the scope is written down and agreed. The studio page sets all five out in full, with what each one produces.

  1. 01Brief
  2. 02Call
  3. 03Scope
  4. 04Build
  5. 05Handover

Start a project

Tell us what you are building

Send the scope, the timeline and a budget range. Wyatt McPherson replies to every enquiry in writing. A short call, then a scoped estimate.