Build indie artist platform with music industry code management and catalog system#11
Draft
Copilot wants to merge 6 commits intoSin-Estres-dev-patch-2from
Draft
Build indie artist platform with music industry code management and catalog system#11Copilot wants to merge 6 commits intoSin-Estres-dev-patch-2from
Copilot wants to merge 6 commits intoSin-Estres-dev-patch-2from
Conversation
Co-authored-by: Sin-Estres-dev <174596748+Sin-Estres-dev@users.noreply.github.com>
Co-authored-by: Sin-Estres-dev <174596748+Sin-Estres-dev@users.noreply.github.com>
Co-authored-by: Sin-Estres-dev <174596748+Sin-Estres-dev@users.noreply.github.com>
Co-authored-by: Sin-Estres-dev <174596748+Sin-Estres-dev@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Add core artist profile storage page
Build indie artist platform with music industry code management and catalog system
Feb 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements a full-stack web application for indie artists to centralize professional music industry identifiers (IPI, ISNI, ISRC, ISWC, DDEX, UPC, UPN, EIN, UUID) and manage their music catalog with proper metadata.
Architecture
Stack: Next.js 16 App Router, TypeScript, Prisma 7.x, SQLite, Tailwind CSS
Database Schema:
ArtistProfile- Stores artist identity and 9 professional codes with unique constraintsTrackRecord- Music catalog entries with distribution metadata and foreign key to artistAPI Design: 6 RESTful endpoints following resource-based patterns
POST/GET /api/profiles- Artist CRUDGET/PUT /api/profiles/[profileId]- Single artist with relational includesPOST/GET /api/tracks- Track CRUD with query filteringKey Implementation Details
Prisma 7.x Adapter Pattern:
Next.js 16 Async Params:
Naming Convention: Used domain-specific naming to avoid conflicts:
interestedPartyInfofor IPIstandardNameIdfor ISNIintlStandardRecordingCodefor ISRCbelongsToArtistfor foreign key relationshipUI/UX
useSearchParamsto prevent prerender errorsDocumentation
Created 6 documentation files covering setup, architecture, API reference, and quick reference guide for different user personas (artists vs. developers).
File Structure
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
checkpoint.prisma.io/opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node /home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/prisma/build/child {"product":"prisma","version":"7.3.0","cli_install_type":"local","information":"","local_timestamp":"2026-02-05T23:03:06Z","project_hash":"f421b266","cli_path":"/home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/.bin/prisma","cli_path_has(dns block)/opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node /home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/prisma/build/child {"product":"prisma","version":"7.3.0","cli_install_type":"local","information":"","local_timestamp":"2026-02-05T23:03:16Z","project_hash":"f421b266","cli_path":"/home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/.bin/prisma","cli_path_has(dns block)/opt/hostedtoolcache/node/24.13.0/x64/bin/node /opt/hostedtoolcache/node/24.13.0/x64/bin/node /home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/prisma/build/child {"product":"prisma","version":"7.3.0","cli_install_type":"local","information":"","local_timestamp":"2026-02-05T23:03:21Z","project_hash":"f421b266","cli_path":"/home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/.bin/prisma","cli_path_has(dns block)fonts.googleapis.com/home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/Strezless/Strezless/indie-artist-app/node_modules/.bin/next build(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
walk me through careful step by step instructions with the exact code to copy and paste to build a powerful, code-linked app designed to help indie artists sell more music, grow their fan base, get industry exposure, and level up professionally.
a promising start.
Brainstorm ideas to Build an app mainly tailored to indie artists but, can also be of use to any musical artist in whichever level of their career that he/she may find themselves when discovering said app after launched and in stores for free services in distribution.
I want the app to be able link the ipi, isni, isrc, iswc, ddex, upc, upn, ein, uuid, and more codes issued to the correct artist so maybe we can start by creating the main artist profile storage page.
The app should ultimately be a great asset for artists as it would ultimately help
-to Sell more music
-Grow their fan base
-Get more exposure in the industry
-Become more professional
Step 1: Core Artist Profile (Storage Page)
This isn't just a profile—it's your digital ID in the music ecosystem. Here's what it could include:
Personal Info: Name (stage name), birthdate (optional for age verification), contact email.
Artist Codes: IPI code? ISNI? These are unique to creators—like social security numbers for musicians.
If an artist doesn’t have one yet → offer automated generation or integration via services like ISNI.org or CISAC.
For pro status: auto-link to official registries so labels/distributors trust you instantly.
Pro Tip: Make onboarding smooth. Ask only what’s needed at first; advanced codes can be added later when they gain traction.
Step 2: Music Catalog Management
Now that we've got identity… let's store tracks!
Each song will need:
Title & Album Name (if applicable)
Duration & Genre Tags (to categorize properly)
Most importantly:
✅ UPC / UPN – Universal Product Code/Numbers assigned by distributors
✅ ISRC – International Standard Recording Code — every track needs one!
✅ DDEX Format compatibility – so data flows cleanly into stores
Suggestion:* Automate as much of this as possible.* When uploading songs from computer/phone -> auto-generate missing metadata if possible
We are going to build a web application for indie artists. We'll use Next.js for the frontend and backend (API routes) and Prisma with a SQLite database for simplicity. However, note that for production, you might want to use a more robust database like PostgreSQL.
The app will have two main parts:
Artist Profile Storage (Step 1)
Music Catalog Management (Step 2)
We'll start by setting up the project and then create the database schema for artists and their music.
Let's break down the steps:
Step 1: Set up a new Next.js project with TypeScript and Prisma.
Step 2: Define the database schema for Artist and Music (and any related tables).
Step 3: Create API endpoints to handle creating and updating artist profiles and music.
Step 4: Create frontend pages/forms for the artist profile and music catalog.
However, note that the problem is complex and we are only going to set up the foundation. We'll create a basic structure that can be extended.
Let's start:
Step 1: Create a new Next.js project.
Open your terminal and run:
bash
npx create-next-app@latest indie-artist-app --typescript --tailwind
cd indie-artist-app
Step 2: Install Prisma and SQLite.
bash
npm install prisma @prisma/client
npx prisma init --datasource-provider sqlite
Step 3: Define the schema in prisma/schema.prisma.
We'll create two main models: Artist and Music. Also, we might need a model for the codes (like IPI, ISNI, etc.) but for simplicity, we'll include them in the Artist model for now. Similarly, for music, we'll include ISRC, UPC, etc. in the Music model.
However, note that an artist might have multiple music records, so it's a one-to-many relationship.
Let's edit prisma/schema.prisma:
prisma
generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
model Artist {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedat
// Personal Info
name String
stageName String?
birthDate DateTime?
email String @unique
// Artist Codes
ipiCode String? // IPI code (Interested Parties Information)
isniCode String? // International Standard Name Identifier
iswcCode String? // International Standard Musical Work Code (for compositions)
ddex String? // DDEX (Digital Data Exchange) identifier
upn String? // Universal Product Number
ein String? // Employer Identification Number (for tax purposes, if applicable)
uuid String? @unique @default(cuid()) // Internal unique identifier
// Relations
musics Music[]
// You can add more fields as needed
}
model Music {
id String @id @default(cuid())
createdAt DateTime @default(now())
updatedAt DateTime @updatedat
title String
album String?
duration Int // in seconds
genre String?
// Codes
upc String? // Universal Product Code
upn...
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.