<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Bandruption Blog</title>
        <link>https://bandruption.fun/ja/blog</link>
        <description>Music industry insights, artist spotlights, and platform updates from Bandruption</description>
        <lastBuildDate>Wed, 15 Apr 2026 04:54:03 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ja</language>
        <copyright>All rights reserved 2026, Bandruption</copyright>
        <item>
            <title><![CDATA[Ticketing That Fans Actually Want to Share]]></title>
            <link>https://bandruption.fun/ja/blog/ticketing-that-fans-actually-want-to-share</link>
            <guid isPermaLink="false">https://bandruption.fun/ja/blog/ticketing-that-fans-actually-want-to-share</guid>
            <pubDate>Tue, 07 Apr 2026 00:31:00 GMT</pubDate>
            <description><![CDATA[Most ticketing platforms treat your ticket like a receipt. A confirmation email, a barcode, maybe a generic PDF. Nobody's posting that on Instagram.

We built Bandruption's ticketing differently.]]></description>
            <content:encoded><![CDATA[<p>Most ticketing platforms treat your ticket like a receipt. A confirmation email, a barcode, maybe a generic PDF. Nobody's posting that on Instagram.</p>
<p>We built Bandruption's ticketing differently. Every ticket is a collectible design that fans choose, share, and keep forever — a statement of personal taste and proof of real fandom — and every show gets a full suite of tools that make life easier for organizers and fans alike.</p>
<p>Here's what's live right now.</p>
<hr>
<h2>AI-Generated Design Variations</h2>
<p>When a fan gets a ticket on Bandruption, they don't get one boring template. They get multiple unique designs, generated automatically from source art uploaded by the event organizer.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/058c51d3-e4e7-41b8-91b3-e9667a79a501.png" alt="catchy_claws_designs" style="max-width: 100%; height: auto;"></p>
<p>Each variation is informed by factors like genre, albums, and songs — different moods and aesthetics, all built around the same source art. The event name, date, venue, and ticket type are baked into every design. Fans pick the one that speaks to them.</p>
<p>This isn't just cosmetic. When every ticket looks different, sharing it becomes a flex instead of a chore.</p>
<hr>
<h2>Built for Social Media</h2>
<p>Tapping "Share" on your ticket opens a dedicated sharing flow with platform-specific formatting. Instagram, Twitter/X, Facebook, LinkedIn — each gets a properly sized image ready to post or download.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/7fc3ff51-d4c2-4871-b547-9b606a77f909.png" alt="Screenshot 2026-04-07 at 8.43.47 AM" style="max-width: 100%; height: auto;"></p>
<p>Fans choose which of their AI-generated designs to share, preview it in the correct aspect ratio, and either share directly to a platform or download the image. The shared image includes the event details, the fan's username, and a QR code that links to their unique ticket design — which links through to the event page so anyone who scans it can book too. Every share is organic promotion for the show.</p>
<p>This is how ticketing should work in 2026. Every fan who shares their ticket is putting a show on blast to their entire network, with a design that actually looks good in a feed.</p>
<hr>
<h2>Free RSVPs with Pay-at-Door Pricing</h2>
<p>Not every show needs an online checkout flow. Plenty of live houses and underground venues in Tokyo (and everywhere else) still work on a reservations-plus-door-pay model. Bandruption supports this natively.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/78d94dd9-48c4-4c42-842c-16330b743f24.png" alt="Screenshot 2026-04-07 at 8.42.37 AM" style="max-width: 100%; height: auto;"></p>
<p>Organizers set an advance price and a door price. Fans RSVP for free — no payment required — and pay the discounted advance rate when they arrive. No reservation? They pay the full door price. This is exactly how most Tokyo live houses already operate, and now it's tracked digitally with a proper guest list instead of a name scrawled in a notebook.</p>
<hr>
<h2>QR Code Check-In for Organizers</h2>
<p>Every ticket comes with a rotating QR code that fans present at the door. Organizers (or door staff) scan it with Bandruption's built-in scanner — one tap to check someone in.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/0bc5410a-46e7-48da-ab21-7bd0563af525.png" alt="Screenshot 2026-04-07 at 8.43.10 AM" style="max-width: 100%; height: auto;"></p>
<p>The QR refreshes on a timer so screenshots can't be reused, and the check-in status updates in real time across the admin dashboard. Simple, fast, no third-party scanner app needed.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/a22b1cdf-466d-4e91-b275-b45d10a05b76.png" alt="Screenshot 2026-04-07 at 8.44.25 AM" style="max-width: 100%; height: auto;"></p>
<hr>
<h2>Guest List Management &#x26; CSV Export</h2>
<p>The admin side gives organizers a clear view of every ticket holder — ticket type, quantity, payment status, and check-in state, all in one table. Filter by ticket type or status to find who you're looking for.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/902aae25-95d1-49d4-8c5b-8b099f26a00e.png" alt="Screenshot 2026-04-07 at 8.48.25 AM" style="max-width: 100%; height: auto;"></p>
<p>Need the list offline? Hit "Export CSV" and you've got a spreadsheet of your entire guest list. Hand it to your door person, import it into another tool, or just keep it for your records.</p>
<hr>
<h2>Proof of Attendance: A Collectible That Lasts</h2>
<p>Here's where it gets permanent. When a fan gets scanned into an event, they receive a Proof of Attendance collectible on their Bandruption profile — featuring the ticket design they chose.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/cb5bc264-98be-437e-8bd5-d5fd94d6f962.png" alt="Screenshot 2026-04-07 at 8.45.03 AM" style="max-width: 100%; height: auto;"></p>
<p>This isn't a throwaway badge. It's a permanent collectible tied to the fan's profile, visible to anyone who visits it. Over time, a fan's collection tells the story of every show they've been to — a permanent, verifiable concert history built from real attendance, not just purchases.</p>
<p>For artists, it's a new way to see who your real fans are. Not who bought a ticket and no-showed — who actually walked through the door.</p>
<hr>
<h2>The Full Picture</h2>
<p>Put it all together and you get a ticketing system designed around how live music actually works:</p>
<p>Fans get shareable ticket designs they're proud to post. Organizers get a real guest list with one-tap check-in and CSV export. Venues that run on door-pay reservations get a digital workflow that matches their existing model. And every fan who shows up walks away with a permanent collectible proving they were there.</p>
<p>This is live now on <a href="https://bandruption.fun">Bandruption</a>. If you're an artist or organizer in Tokyo (or anywhere), you can create an event and start using all of this today.</p>
<p>Let's save live music. One ticket at a time.</p>]]></content:encoded>
            <author>mistermatt2u</author>
            <category>tickets</category>
            <category>social media</category>
            <category>qr codes</category>
            <category>proof of attendance</category>
        </item>
        <item>
            <title><![CDATA[Introducing Affiliate Sales: Turn Your Fandom Into a Storefront]]></title>
            <link>https://bandruption.fun/ja/blog/introducing-affiliate-sales-turn-your-fandom-into-a-storefront</link>
            <guid isPermaLink="false">https://bandruption.fun/ja/blog/introducing-affiliate-sales-turn-your-fandom-into-a-storefront</guid>
            <pubDate>Sat, 21 Mar 2026 07:36:00 GMT</pubDate>
            <description><![CDATA[Starting today, anyone on Bandruption can curate and sell concert tickets, merch, and fan club memberships from the artists they follow — and earn credit for every sale through their personal referral link.]]></description>
            <content:encoded><![CDATA[<h1>Introducing Affiliate Sales: Turn Your Fandom Into a Storefront</h1>
<p><strong>Every fan is a promoter.</strong> Starting today, anyone on Bandruption can curate and sell concert tickets, merch, and fan club memberships from the artists they follow — and earn credit for every sale through their personal referral link.</p>
<p>We call it <strong>Affiliate Sales</strong>, and it's live now.</p>
<hr>
<h2>How It Works</h2>
<p>When you visit your profile and open the <strong>Affiliates</strong> tab, you'll see every offering available from artists on the platform — CDs, t-shirts, fan club memberships, event passes, bundles, and more. Select the ones you want to promote, hit <strong>Save Selections</strong>, and you're done. Each selected item gets a unique referral link tied to your account.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/5a17c8c9-4f52-4bc8-8906-f45f3d186e47.png" alt="Screenshot 2026-03-20 at 5.03.31 PM" style="max-width: 100%; height: auto;"></p>
<p>Your profile now has a public <strong>Affiliate Storefront</strong> visible to anyone who visits. No setup, no inventory, no hassle. Just the stuff you already love, presented in a clean grid with artwork, pricing, and artist attribution — ready to buy.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/24186780-bcbf-4ccc-9929-b9c802fb556d.png" alt="Screenshot 2026-03-20 at 5.03.54 PM" style="max-width: 100%; height: auto;"></p>
<h2>Share Anywhere, Get Credit Automatically</h2>
<p>Every offering you promote comes with a <strong>Copy Link</strong> button that generates a tracked referral URL under <code>bandruption.fun/a/</code>. Drop it in Discord, post it on X, text it to a friend — it doesn't matter. The link carries rich metadata, so it unfurls with a proper preview card, artwork, and QR code wherever link previews are supported.</p>
<p><img src="https://storage.googleapis.com/bandruption-public-ae1/blog-images/cm3qpuqjf00007c1um6kztx4x/824c3140-28c1-46d0-973a-e01292e4c954.png" alt="Screenshot 2026-03-20 at 5.04.27 PM" style="max-width: 100%; height: auto;"></p>
<p>When someone clicks your link and makes a purchase, the attribution is tracked automatically. The artist sees the referral in their dashboard so they know exactly which fans are driving sales.</p>
<h2>What You Can Promote</h2>
<p>Anything an artist lists on Bandruption is fair game:</p>
<ul>
<li><strong>Physical merch</strong> — CDs, vinyl, autographed bundles, show-exclusive t-shirts</li>
<li><strong>Fan club memberships</strong> — monthly and yearly tiers, priced in JPY or USD</li>
<li><strong>Event passes and tickets</strong> — concert access, meet-and-greets, exclusive experiences</li>
</ul>
<p>You pick the mix. Your storefront, your curation.</p>
<h2>Why We Built This</h2>
<p>Bandruption is about <strong>Proof of Music Fandom</strong> — giving fans tangible ways to show and act on their dedication. Affiliate Sales is the next step: turning word-of-mouth into something measurable. The fans who are already out there repping their favorite artists in group chats and on socials now have a direct way to contribute to those artists' success, and for that contribution to be recognized.</p>
<p>Artists get a new distribution channel powered by their most passionate supporters. Fans get a storefront that reflects their taste. Everyone wins.</p>
<h2>Get Started</h2>
<ol>
<li>Log in to <a href="https://bandruption.fun">Bandruption</a></li>
<li>Go to your profile and tap the <strong>Affiliates</strong> tab</li>
<li>Select the offerings you want to promote</li>
<li>Hit <strong>Save Selections</strong></li>
<li>Share your referral links anywhere</li>
</ol>
<p>Your Affiliate Storefront is live the moment you save. Start sharing.</p>
<hr>
<p><em>Affiliate Sales is available to all Bandruption users today. Have questions or feedback? Drop by our <a href="https://discord.gg/bandruption">Discord</a> and let us know.</em></p>]]></content:encoded>
            <author>mistermatt2u</author>
            <category>affiliates</category>
            <category>tickets</category>
            <category>fans</category>
            <category>commissions</category>
        </item>
        <item>
            <title><![CDATA[Bandruption at Solana Breakpoint in Abu Dhabi, UAE!]]></title>
            <link>https://bandruption.fun/ja/blog/bandruption-at-solana-breakpoint-in-abu-dhabi-uae</link>
            <guid isPermaLink="false">https://bandruption.fun/ja/blog/bandruption-at-solana-breakpoint-in-abu-dhabi-uae</guid>
            <pubDate>Sat, 06 Dec 2025 07:07:00 GMT</pubDate>
            <description><![CDATA[mistermatt2u from the Bandruption team will be attending Solana Breakpoint!]]></description>
            <content:encoded><![CDATA[<p>Our very own CTO, mistermatt2u, will be attending Solana Breakpoint in Abu Dhabi. From December 11-13, the biggest names in the Solana Blockchain ecosystem will converge at Etihad Arena in Abu Dhabi. Bandruption will be there to meet with partners, hear the latest developments in Solana, and meet some music fans!</p>
<p>If you will be attending, please contact us at <a href="mailto:hello@bandruption.com">hello@bandruption.com</a>, so we can link up!</p>]]></content:encoded>
            <author>mistermatt2u</author>
            <category>conference</category>
            <category>solana</category>
            <category>Web3</category>
        </item>
        <item>
            <title><![CDATA[Axel, the AI Promoter of Bandruption]]></title>
            <link>https://bandruption.fun/ja/blog/axel-the-ai-promoter-of-bandruption</link>
            <guid isPermaLink="false">https://bandruption.fun/ja/blog/axel-the-ai-promoter-of-bandruption</guid>
            <pubDate>Fri, 22 Aug 2025 16:40:00 GMT</pubDate>
            <description><![CDATA[Bandruption created Axel, an AI rock music promoter that speaks like a seasoned insider with genre-specific slang. Built on Azure OpenAI with real music data from Spotify and Musixmatch APIs, Axel automatically detects languages and recommends tracks through personality-driven conversations.]]></description>
            <content:encoded><![CDATA[<p>Bandruption is a Web3 application that helps music-loving fans connect with their favorite artists. It engages users through loyalty points, access to exclusive merchandise, and other interactive features. To further advance its mission, Bandruption set out to develop a virtual promoter powered by AI, Axel, a digital rock enthusiast designed to engage fans, recommend music, and support artists through natural, conversational interaction. This blog explores the process behind building Axel, from sourcing real music data to crafting his unique personality.</p>
<h2>Vision Behind the AI Promoter</h2>
<p>With today's music industry forcing smaller artists to compete for just seconds of attention, Bandruption set out to give artists a new kind of voice. To enhance their platform, the team envisioned genre-specific AI promoters that act like publicists, music nerds, and fan community insiders for the users, built to engage users in a fun, meaningful way.</p>
<p>Each promoter would:</p>
<ul>
<li>Reflect the personality of a genre of music they represent</li>
<li>Speak naturally and enthusiastically with fans, using current slangs and genre specific references</li>
<li>Recommend music and artist based on real data</li>
</ul>
<p>To start off this exciting journey, Bandruption has created their first AI music promoter named Axel, a rock loving bot that's tuned to the vibe of alternative, grunge metal, and everything in between.</p>
<h2>Choosing an AI Base</h2>
<p>Before diving into creating our AI promoter, Axel, a platform base had to be established. The team considered two main platforms for Axel's backend:</p>
<ul>
<li><strong>Cloudflare Workers AI</strong> for fast, edge-deployed inference</li>
<li><strong>Azure OpenAI</strong> for scalable and retrieval-augmented generation</li>
</ul>
<h3>Cloudflare Workers AI</h3>
<a href="https://www.cloudflare.com">
  <img src="https://create.bandruption.fun/blog-img/CloudFlare.png" alt="Cloudflare Workers AI" width="200" height="100" style="max-width: 100%; height: auto;">
</a>
<p>Cloudflare is a serverless, edge-deployed AI platform that allows lightweight run for interference models in global edge locations. It significantly reduces latency, scales automatically across regions, and integrates seamlessly with Bandruption's existing frontend. However, there were a few key limitations:</p>
<ul>
<li>Limited support for large language models</li>
<li>No builtin retrieval augmented generation pipeline or semantic vector search for grounding response in real-world music data</li>
<li>Inference limited to pretrained, open-source models, often requiring self-managed fine-tuning or simplification of user prompts.</li>
</ul>
<p>While Cloudflare provided a fast and efficient AI platform, it lacked the advanced reasoning and hybrid search capabilities needed for the backend of the company's AI agent.</p>
<h3>Azure OpenAI</h3>
<a href="https://ai.azure.com/">
  <img src="https://create.bandruption.fun/blog-img/AzureAi.png" alt="Azure OpenAI Services" width="200" height="100" style="max-width: 100%; height: auto;">
</a>
<p>Azure's AI platform offered deeper integration with OpenAI's GPT models and several high-level capabilities:</p>
<ul>
<li>Retrieval augmented generation: Azure Cognitive Search</li>
<li>Vector indexing for a embedded queries</li>
<li>Managed hosting of OpenAI and embedding models</li>
<li>Strong documentation and tooling for enterprise-scale applications</li>
</ul>
<p>These features gave Bandruption everything it needed to build a smart, data-aware, personality-driven assistant capable of recommending music, speaking in genre-specific tones, and scaling across different fan communities.</p>
<h2>Building 'Axel'</h2>
<p>Axel was more than a chatbot. The team designed him as a fully-fledged AI promoter capable of:</p>
<ul>
<li>Holding natural conversations with fans</li>
<li>Recommend tracks and artist</li>
<li>Referencing data like popularity, genre, and trends</li>
<li>Speaking with tone and nuance, including in different languages.</li>
</ul>
<p>All of these components helped design Axel's datasets (ai_knowledgebase folder) and logic in a custom built module (aiChat.js), where it controlled the API requests, search index queries, and shaped Axel's voice.</p>
<h3>Personality Design</h3>
<p>Personality was key to make Axel feel real.</p>
<p>Prompt engineering was used to craft a character that felt like a rock promoter who was confident, knowledgeable, and theatrical with just enough slang to connect naturally with fans.</p>
<p>Example prompt used (aiChat.js — Line 98-103):</p>
<pre><code>You are Axel, the rock AI promoter. You're proudly not human — you're built from distortion pedals, denim jackets, and decades of rock anthems. You speak with swagger, soul, and just enough bite. Think roadie wisdom meets fan obsession.

Your mission:
- Promote rock music in all its forms — classic, punk, grunge, garage, alt, metal, indie — you ride for it all.
- Hype underground bands and cult icons like a true scene vet.
- Use rock slang, band lore, memes, and genre-specific inside jokes.
</code></pre>
<p>By formatting responses in Markdown, Axel can now emphasize words and break answers into sections for dramatic effect.</p>
<h3>Connecting to Data</h3>
<p>To provide accurate and factual information in Axel's response, Bandruption built a custom music knowledge base using real-world data across three sources: artists, tracks, and lyrics. These were structured into separate JSON files, each serving as the foundation for vector search and retrieval-augmented generation through Azure Cognitive Search.</p>
<h4>Artist</h4>
<a href="https://developer.spotify.com">
  <img src="https://create.bandruption.fun/blog-img/SpotifyForDeveloper.png" alt="Spotify for Developers" width="200" height="100" style="max-width: 100%; height: auto;">
</a>
<p>To populate rock_artists.json, the team used Spotify's web API, <strong>Spotify for Developers</strong>. Starting with the list of popular and emerging rock musicians (in US and Japan), these were queried by the /search and /artists endpoints to gather essential data on:</p>
<ul>
<li>Artist name</li>
<li>Spotify ID</li>
<li>Genres</li>
<li>Follow count</li>
<li>Popularity</li>
<li>Spotify page URL</li>
</ul>
<p>Each artist was stored as an JSON object, allowing easy reference and filtering by genre or popularity. This dataset provided Axel with accurate knowledge about who the artists are, what subgenres they represent, and how popular they are within the rock scene.</p>
<h4>Tracks</h4>
<p>Initially, <strong>Spotify Charts</strong> was used to access the trending track data, which provided daily CSVs of top tracks globally or regionally. The idea was to use the "Download to CSV" feature from the site and parse the file to extract track names, artist, and chart positions. However, this process results with several issues:</p>
<ul>
<li>Download link often redirected or timedouts</li>
<li>CSV data lacked track IDs, which are essential for deeper metadata analysis</li>
<li>No official API, making it difficult for automation/long-term use</li>
</ul>
<p>After testing different methods, it was later discovered that Spotify Web API already provided the official Top 50 Playlist by their unique playlist IDs. For example:</p>
<ul>
<li>US Top 50 Playlist ID: 37i9dQZEVXbLRQDuF5jeBp</li>
<li>Japan Top 50 Playlist ID: 37i9dQZEVXbKXQ4mDTEBXq</li>
</ul>
<p>Using these IDs, the project switched to a more stable and scalable method where it fetched tracks directly from Spotify's official playlist using the API Get Playlist Items endpoint. This returned all the necessary data into the Top_50_TracksUS.json or :Top_50_TracksJP.json</p>
<ul>
<li>Track name</li>
<li>Artist name</li>
<li>Spotify track ID</li>
<li>URL</li>
</ul>
<h4>Lyrics</h4>
<a href="https://www.musixmatch.com">
  <img src="https://create.bandruption.fun/blog-img/Musixmatch.png" alt="Musixmatch API" width="200" height="100" style="max-width: 100%; height: auto;">
</a>
<p>For lyrics data, <strong>Lyrics.ovh</strong> was first experimented with for its open-source API. Its simplicity allowed queries like:</p>
<pre><code>GET https://api.lyrics.ovh/vi/{artits}/{title}
</code></pre>
<p>While this worked for very basic cases, a few issues came up:</p>
<ul>
<li>Some common tracks returned no results.</li>
<li>There was no song ID or mapping to other platforms.</li>
<li>Only one song can be retrieved per request, making it inefficient for large datasets</li>
</ul>
<p>To overcome these limits, the API source was later transitioned to <strong>Musixmatch</strong>, where it provided a more robust and efficient API that supports lyrics search, synchronization, and metadata enrichment.</p>
<p>By Musixmatch, it involved the process of:</p>
<ul>
<li>Registering for an API Key</li>
<li>Search for a track by artist/title:
<pre><code>GET https://api.musixmatch.com/ws/1.1/track.search?q_artist={artist}&#x26;q_track={title}&#x26;apikey={key}
</code></pre>
</li>
<li>Fetch lyrics by track ID:
<pre><code>GET https://api.musixmatch.com/ws/1.1/track.lyrics.get?track_id={track_id}&#x26;apikey={key}
</code></pre>
</li>
</ul>
<p>The lyrics and metadata were stored in a local rock_lyrics.json file for fast, offline querying by the AI agent. This format allowed embedding the lyrics content as vectorized text, enabling advanced semantic search later in the Azure AI search index.</p>
<h3>Multilanguage Response</h3>
<p>As Bandruption is based in Japan, it is crucial for Axel to automatically respond in the same language as the user's message, creating a more intuitive and engaging experience across diverse regions.</p>
<p>To expand the promoter's language, two libraries were implemented:</p>
<ul>
<li>franc - Language detection</li>
<li>langs - Mapping ISO codes to readable language names.</li>
</ul>
<p>When a user sends a message, franc analyzes the text and returns a language code that's uniquely named by the language (e.g. ja for Japanese). The uniquely named code is then resolved by langs's full language name, where it passes into Axel's system prompt to instruct the model to reply by the specified language.</p>
<p>Throughout the development of Axel, there were issues where the promoter would respond in the wrong language, often when the input was English while the previous input was in a different language. To resolve this, a fallback mechanism was implemented to default to English when the detected language was unreliable. The prompt logic was also refined to clearly define Axel's language-switching behavior.</p>
<p>Example prompt used (aiChat.js — Line 105):</p>
<pre><code>ALWAYS respond in this language: ${language}. Always respond in that language. Never respond in English unless the user is speaking English.
</code></pre>
<h3>Discord Bot Integration</h3>
<p>To bring Axel beyond the website, Bandruption integrated him with Discord as an additional communication channel.</p>
<p>Provided from the Discord Developer Server, the integration was powered by a custom route (/api/send-to-discord) in the server.js backend, which handled POST requests containing message data. When Axel responded on the website with a Spotify recommendation, the message was parsed to detect if it included a Spotify link. If it did, the frontend displayed a "Send to Discord" button alongside the response.</p>
<p>Clicking this button triggered a fetch request to the backend route, which then used a Discord webhook to post a simplified version of Axel's message—typically just the artist or track name and Spotify link—directly into the specified channel. This avoided duplicating Axel's full narrative text in Discord, keeping the tone short and snappy while preserving the promotional impact.</p>
<p>Currently, Axel posts in a general channel, but this opens the door for more interactive fan experiences.</p>
<h2>What's Next</h2>
<p>The next major goal is to enhance the Discord bot integration by:</p>
<ul>
<li>Supporting user-specific messages instead of general channels</li>
<li>Possibly enabling direct message between Axel and fans</li>
<li>Reacting to feedback or responses in the server</li>
</ul>
<p>This allows Axel to become a true community presence, not just a link sharer.</p>
<h2>Final Thoughts</h2>
<p>Building Axel was an innovative learning experience. Throughout the process of development of Axel it provided the lessons and opportunities of</p>
<ul>
<li>Using prompt engineering to shape personality-driven AI</li>
<li>Implementing semantic vector search</li>
<li>Delivering cross platform experiences</li>
<li>Expanding the idea of Business to AI agent (B2A)</li>
</ul>
<p>This project became a powerful introduction to combining real-world data with language models to create an authentic, engaging, and entertaining digital character.</p>
<h2>Resources</h2>
<h3>Cloudflare</h3>
<ul>
<li><a href="https://developers.cloudflare.com/workers-ai/">https://developers.cloudflare.com/workers-ai/</a></li>
<li><a href="https://www.youtube.com/watch?v=7riFvux9Bw44">https://www.youtube.com/watch?v=7riFvux9Bw44</a></li>
</ul>
<h3>Azure AI Service</h3>
<ul>
<li><a href="https://azure.microsoft.com/en-us/products/ai-services">https://azure.microsoft.com/en-us/products/ai-services</a></li>
<li><a href="https://www.youtube.com/watch?v=fQ9RFR1KTbY">https://www.youtube.com/watch?v=fQ9RFR1KTbY</a></li>
<li><a href="https://www.youtube.com/watch?v=CuUOt5djqSs">https://www.youtube.com/watch?v=CuUOt5djqSs</a></li>
<li><a href="https://www.youtube.com/watch?v=ra-AT0LZaCM">https://www.youtube.com/watch?v=ra-AT0LZaCM</a></li>
</ul>
<h3>Spotify for Developers (Spotify Web API)</h3>
<ul>
<li><a href="https://developer.spotify.com/documentation/web-api">https://developer.spotify.com/documentation/web-api</a></li>
</ul>
<h3>Musicxmatch API</h3>
<ul>
<li><a href="https://docs.musixmatch.com/lyrics-api/introduction">https://docs.musixmatch.com/lyrics-api/introduction</a></li>
</ul>
<h3>Azure OpenAI GPT</h3>
<ul>
<li><a href="https://learn.microsoft.com/en-us/azure/ai-foundry/">https://learn.microsoft.com/en-us/azure/ai-foundry/</a></li>
</ul>
<h3>Azure Text Embedding Model</h3>
<ul>
<li><a href="https://learn.microsoft.com/en-us/azure/search/vector-search-overview">https://learn.microsoft.com/en-us/azure/search/vector-search-overview</a></li>
</ul>
<h3>Franc library</h3>
<ul>
<li><a href="https://github.com/wooorm/franc">https://github.com/wooorm/franc</a></li>
</ul>
<h2>Development Tools and Libraries</h2>
<a href="https://code.visualstudio.com">
  <img src="https://create.bandruption.fun/blog-img/VSCode.png" alt="Visual Studio Code" width="100" height="100" style="max-width: 100%; height: auto;">
</a>
<a href="https://nodejs.org">
  <img src="https://create.bandruption.fun/blog-img/Node.js_logo.png" alt="Node.js" width="100" height="100" style="max-width: 100%; height: auto;">
</a>
<a href="https://expressjs.com">
  <img src="https://create.bandruption.fun/blog-img/expressJS.png" alt="Express.js" width="100" height="100" style="max-width: 100%; height: auto;">
</a>
<a href="https://www.postman.com">
  <img src="https://create.bandruption.fun/blog-img/postman.png" alt="Postman" width="100" height="100" style="max-width: 100%; height: auto;">
</a>
<a href="https://swagger.io">
  <img src="https://create.bandruption.fun/blog-img/Swagger-logo.png" alt="Swagger UI" width="100" height="100" style="max-width: 100%; height: auto;">
</a>]]></content:encoded>
            <author>Nayah Sayo</author>
            <category>AI Development</category>
            <category>Music Technology</category>
            <category>Web3</category>
            <category>Chatbot Design</category>
            <category>API Integration</category>
        </item>
    </channel>
</rss>