Transformative Rendering Interface for Discography, Experience & Navigation Toolkit
Front-of-house publishing layer for Leviathan.
TRIDENT is a static Astro site meant to live behind nginx and give your music projects a proper home base under mymusic.club.
Current scaffold includes:
- a root landing page for artists
- a generated artist page at
/artists/signal-theory-project/ - a reusable artist hero component
- a reusable discography grid
- album cards that link out to existing album share pages
- placeholder artwork you can replace with real covers later
Astro's official docs show the recommended project bootstrap command as npm create astro@latest, and the usual local workflow uses npm run dev and npm run build. Astro v6 also drops Node 18 and 20 support, so use Node 22+ for this project.
cd trident
npm install
npm run devThen open the local URL Astro prints, usually:
http://localhost:4321
npm run buildAstro outputs the production site into:
dist/
That dist/ directory is what nginx should serve.
npm run previewtrident/
├── astro.config.mjs
├── package.json
├── public/
│ └── images/
├── src/
│ ├── components/
│ ├── data/
│ ├── layouts/
│ └── pages/
└── README.md
Artist and album data currently live in:
src/data/site.ts
That file is the fastest way to add more artists and albums right now.
Add another object to the albums array for the artist.
Required fields:
slugtitleyearsummarycoverSrcshareUrlaccent
Add a new artist object to the exported artists array in src/data/site.ts.
TRIDENT will automatically generate a new page for any artist in that array because src/pages/artists/[slug].astro uses Astro static paths.
Current image locations:
public../images/artists/
public../images/albums/
Recommended filenames for the current scaffold:
public../images/artists/signal-theory-project.svg
public../images/albums/analog-tide-dreams.svg
public../images/albums/she-learned-my-name.png
The she-learned-my-name.png file is already included in this scaffold. Replace the SVG placeholders whenever you're ready.
If you build this project on Leviathan and want nginx to serve it directly, point the location at the built dist/ directory.
Example:
server {
listen 443 ssl http2;
server_name mymusic.club;
root /var/www/trident/dist;
index index.html;
location /artists/ {
try_files $uri $uri/ /artists/index.html;
}
location / {
try_files $uri $uri/ /index.html;
}
}Adjust the root path to wherever you deploy the built output.
git clone <your-repo>
cd trident
npm install
npm run build
rsync -av --delete dist/ /var/www/trident/dist/Then reload nginx.