SongCast is a platform that enables music artists to create their own social tokens, build communities, and allow fans to invest directly in their musical journey. This project includes full Farcaster Mini App integration for enhanced social interactions.
- Artist Tokens: Create and manage music artist social tokens
- Interactive Music Player: Listen to music associated with tokens
- Farcaster Integration: Fully integrated mini app for Farcaster ecosystem
- Web3 Authentication: Sign in with Farcaster and other web3 wallets
- Token Trading: Trade music tokens with other users
This repository has been created specifically for hackathon use. It contains a cleaned version of the SongCast application with all sensitive information removed.
Please read the following files before getting started:
- API_SETUP.md - Instructions for setting up required API keys
- Next.js 14 (App Router)
- TypeScript
- TailwindCSS
- Framer Motion
- Web3 Integration with wagmi/viem
- Farcaster SDK (@farcaster/frame-sdk)
- Node.js 18+
- npm or yarn
- A web3 wallet (MetaMask, etc.)
-
Clone the repository:
git clone https://github.com/yourusername/songcast.git cd songcast -
Install dependencies:
npm install # or yarn install -
Set up environment variables:
# Copy the example env file cp env.example .env.local # Then edit .env.local with your own values
-
Run the development server:
npm run dev # or yarn dev -
Open http://localhost:3000 in your browser.
app/
├─ api/ # API routes for backend functions
├─ components/ # Reusable UI components
├─ hooks/ # Custom React hooks
├─ services/ # Services for external API integration
├─ utils/ # Utility functions
├─ types/ # TypeScript type definitions
└─ pages/ # App pages and routes
services/
└─ pinataService.ts # IPFS integration service
public/
└─ ... # Static assets
This project can be deployed on any platform that supports Next.js, but Vercel is recommended for the best experience.
- Push your code to GitHub
- Connect your repository to Vercel
- Add required environment variables
- Deploy!
This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE - see the LICENSE file for details.
