Skip to content

Repository files navigation


Logo

MediaFlows

A cloud-native Digital Asset Management platform for the media industry.
Bug Report · Feature Request

TypeScript C# Next React Tailwind shadcn/ui .NET PostgreSQL DynamoDB AWS AWS Lambda Terraform GitHub Actions Playwright pnpm

Table of Contents

Expand
  1. About The Project
  2. Screenshots
  3. Getting Started
  4. Usage
  5. Roadmap
  6. Main Contributors
  7. Contributing
  8. License
  9. Contact
  10. Acknowledgments

About The Project

MediaFlows is a Digital Asset Management (DAM) platform that lets media teams ingest, organize, transform, and distribute large volumes of image and video assets from a single workspace. It pairs a Next.js web app with an API-only ASP.NET Core backend on AWS, fronted by Cognito-backed SSO and a CloudFront-served asset CDN.

The repository is split into four top-level workloads:

  • frontend/ — Next.js 16 (App Router) + React 19 + Tailwind v4 web app, deployed to AWS Amplify Hosting.
  • src/ — ASP.NET Core 8 solution (MediaFlows.Web, MediaFlows.Data, MediaFlows.Shared) deployed to Elastic Beanstalk.
  • lambda/ — supporting AWS Lambda functions for async asset processing.
  • infrastructure/ — Terraform (bootstrap + main stack) provisioning the full AWS estate.

Screenshots

MediaFlows landing page
Landing page — a cinematic entry point into the workspace.

User dashboard
Dashboard — personalized greeting, role-based quick actions, and a recent-assets carousel.
Media catalog
Catalog — browse published media with content-type filters and trending sort.
Real-time monitoring
Live Monitoring — real-time CPU, latency, error-rate, and cost metrics with streaming charts.
Admin summary
Admin Summary — platform KPIs, upload-activity trends, storage breakdown, and CloudWatch alarms.
Review queue
Review Queue — triage submissions with status filters and batch approve / reject / schedule.
Review and approve an asset
Review & Decide — inspect an asset, leave comments, and approve, schedule, or reject.

Getting Started

The repo runs three loosely-coupled workloads. Each has its own README with the deep details; this section gets you to the point where you can build any of them locally.

Prerequisites

  • Node.js 20+ and pnpm 9+ — frontend
  • .NET SDK 8 — backend
  • AWS CLI v2 with an mediaflows profile — for deploys and SSM lookups
  • Terraform 1.6+ — for infrastructure/
  • GitHub CLI (gh) — for the first-time bootstrap workflow

Installation

Clone the repo:

git clone https://github.com/mediaflows-tech/app.git
cd app

Then bring up whichever workload you need:

# Frontend
cd frontend
pnpm install
cp .env.production.example .env.local    # fill in Cognito + API values
pnpm dev                                 # http://localhost:3000

# Backend
dotnet restore MediaFlows.slnx
dotnet run --project src/MediaFlows.Web  # http://localhost:5000

# Infrastructure (first-time deploy)
make deploy                              # see infrastructure/README.md

Workload-specific instructions live in frontend/README.md and infrastructure/README.md.

Usage

Once deployed behind a custom domain, MediaFlows serves four endpoints:

Subdomain Service
web.<domain> Next.js frontend (AWS Amplify Hosting)
api.<domain> ASP.NET Core API (Elastic Beanstalk)
login.<domain> Cognito Hosted UI
cdn.<domain> CloudFront asset delivery

The frontend talks to the API over HTTPS and SignalR (realtime hub), assets are delivered via the CloudFront CDN, and async processing runs through the Lambda pipeline. See infrastructure/README.md for how the AWS estate is provisioned.

Roadmap

See the open issues for a full list of proposed features (and known issues).

Main Contributors

Contributing

Contributions are welcome. The usual flow:

  1. Fork the repo and create your feature branch (git checkout -b feat/your-feature).
  2. Commit your changes.
  3. Push to your fork and open a Pull Request against main.

The CI deploy workflows (deploy.yml, terraform-apply.yml) ship with their automatic push triggers disabled. Run them manually from the Actions tab (workflow_dispatch) once AWS credentials are configured for your account.

License

No license has been declared. All rights reserved by the project authors. Contact the maintainers before reusing this code.

Contact

MediaFlows — @mediaflows-tech

Project Link: https://github.com/mediaflows-tech/app

About

MediaFlows — a cloud-native Digital Asset Management platform for the media industry, built on NextJS, ASP.NET Core on AWS and Terraform.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages