ai-startup-skills
创业公司做 AI 产品的 7 步 Agent Skill 合集:验证 → BP → 政策 → 路演 → 获客 → 定价 → 注册。
Translation pending
Broadcast your Space Invader flashes.
Translation pending
OtherPython · TypeScriptGitHub @gitpancakeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The frontend application for Flashcastr - a social app for sharing Space Invader flashes
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
A Farcaster Frame application for broadcasting and viewing Space Invaders flash photos, with a real-time global feed.Read the full README ↗A Farcaster Frame application for broadcasting and viewing Space Invaders flash photos, with a real-time global feed.
image_url fieldimage_url server-side (Backblaze B2 for migrated flashes, a
legacy origin fallback for older ones, null when neither is available)git clone https://github.com/gitpancake/flashcastr.git
cd flashcastr
npm install
cp .env.example .env
Configure your .env file with your actual values:
openssl rand -base64 32Run the development server:
npm run dev
Open http://localhost:3000 to see the application.
src/
├── app/ # Next.js app router pages
│ ├── api/ # API routes
│ ├── flash/[id]/ # Individual flash page
│ ├── profile/ # User profile pages
│ └── page.tsx # Homepage
├── components/ # React components
│ ├── atom/ # Atomic components
│ ├── molecule/ # Molecular components
│ ├── organism/ # Organism components
│ └── ui/ # shadcn/ui components
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries
│ ├── api.flashcastr.app/ # Flashcastr API client (unified API)
│ ├── neynar/ # Neynar/Farcaster API client
│ ├── help/ # Helper utilities
│ └── constants.ts # App constants
└── auth.ts # NextAuth configuration
Flash images are resolved server-side by the Flashcastr API, not constructed by the client:
null, and the client renders a placeholder instead of a broken imageThe getImageUrl() utility is a pass-through of the API's image_url field:
const imageUrl = getImageUrl(flash);
// Returns flash.image_url, or "" if the API has no resolvable image for this flash
Flash Data Structure:
interface FlashData {
flash_id: number;
player: string;
city: string;
timestamp: number;
img: string; // Legacy field for backwards compatibility
ipfs_cid?: string; // IPFS content identifier (legacy)
image_url: string | null; // Resolved image URL from the API
}
Global Flash Structure:
interface GlobalFlash {
flash_id: number;
player: string;
city: string;
text: string;
timestamp: number;
img: string;
ipfs_cid?: string; // Legacy IPFS content identifier
image_url: string | null; // Resolved image URL from the API
}
npm run dev - Start development servernpm run build - Build for productionnpm run start - Start production servernpm run lint - Run ESLintnpm run deploy:vercel - Deploy to VercelThe app uses multiple environment files:
.env - Your local configuration (gitignored for security).env.example - Template showing all required variablesnpm run deploy:vercel
This will:
npm run build
Set environment variables on your hosting platform
Start the production server:
npm start
All required environment variables are documented in .env.example. Copy it to .env and configure with your values.
| Variable | Description | Example |
|---|---|---|
NEYNAR_API_KEY | Neynar API key for Farcaster integration | Get from neynar.com |
NEYNAR_CLIENT_ID | Neynar client ID from dashboard | ca507e6f-5287-... |
NEXTAUTH_URL | Your app's public URL | https://your-app.vercel.app |
NEXTAUTH_SECRET | JWT signing secret | Generate with openssl rand -base64 32 |
NEXT_PUBLIC_URL | Public URL for the app | Same as NEXTAUTH_URL |
FLASHCASTR_API_KEY | API key for Flashcastr backend | Contact team for access |
NEXT_PUBLIC_FLASHCASTR_API_URL | Flashcastr API endpoint | http://localhost:4000 (dev) |
| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_FRAME_NAME | App name displayed in frame | Flashcastr |
NEXT_PUBLIC_FRAME_DESCRIPTION | Frame description | Broadcast your Space Invader flashes. |
NEXT_PUBLIC_FRAME_BUTTON_TEXT | Frame button text | Enter |
| Variable | Description | Required |
|---|---|---|
REDIS_URL | Redis connection for caching | Production only |
KV_REST_API_URL | Vercel KV store URL | Optional |
KV_REST_API_TOKEN | Vercel KV store token | Optional |
NEXT_PUBLIC_ADMIN_FID | Admin Farcaster ID for special features | Optional |
USE_TUNNEL | Enable localtunnel for development | Optional |
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-featureThis project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ for the Space Invaders community