AgentStack
SKILL verified MIT Self-run

Ai App

skill-laguagu-claude-code-nextjs-skills-ai-app · by laguagu

|

No reviews yet
0 installs
15 views
0.0% view→install

Install

$ agentstack add skill-laguagu-claude-code-nextjs-skills-ai-app

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Ai App? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

AI App Generator

Build full-stack AI applications with Next.js, AI SDK, and ai-elements.

Quick Start

1. Scaffold Project

bunx --bun shadcn@latest create --preset "https://ui.shadcn.com/init?base=radix&style=nova&baseColor=neutral&theme=neutral&iconLibrary=lucide&font=geist-sans&menuAccent=subtle&menuColor=default&radius=default" --template next my-ai-app
cd my-ai-app

2. Install Dependencies

bun add ai @ai-sdk/react @ai-sdk/anthropic zod
bunx --bun ai-elements@latest

3. Configure Environment

# .env.local - Choose your provider
ANTHROPIC_API_KEY=sk-ant-...
# OPENAI_API_KEY=sk-...
# GOOGLE_GENERATIVE_AI_API_KEY=...

4. Generate Application

Based on user requirements, generate:

  • Chatbot: See [references/chatbot.md](references/chatbot.md)
  • Agent Dashboard: See [references/agent-dashboard.md](references/agent-dashboard.md)
  • Custom: Combine patterns as needed

Application Types

Chatbot

Simple conversational AI with streaming responses.

| Feature | Implementation | |---------|----------------| | Chat UI | Conversation + Message + PromptInput | | API | streamText + toUIMessageStreamResponse | | Extras | Reasoning, Sources, File attachments |

Agent Dashboard

Multi-agent interface with tool visualization.

| Feature | Implementation | |---------|----------------| | Agents | ToolLoopAgent with tools | | UI | Dashboard layout + Tool components | | API | createAgentUIStreamResponse | | Extras | Status monitoring, tool approval |

Custom AI App

Mix and match based on user needs:

  • Web search chatbot
  • Code generation assistant
  • Document analyzer
  • Multi-modal chat

Project Structure

my-ai-app/
├── app/
│   ├── page.tsx                 # Main UI
│   ├── layout.tsx               # Root layout
│   ├── globals.css              # Theme
│   └── api/
│       └── chat/
│           └── route.ts         # AI endpoint
├── components/
│   ├── ai-elements/             # AI Elements components
│   ├── ui/                      # shadcn/ui components
│   └── chat.tsx                 # Chat component (if extracted)
├── lib/
│   ├── utils.ts                 # Utilities
│   └── ai.ts                    # AI configuration (optional)
├── ai/                          # Agent definitions (if needed)
│   └── assistant.ts
└── .env.local                   # API keys

See [references/project-structure.md](references/project-structure.md) for details.

Core Patterns

API Route

// app/api/chat/route.ts
import { streamText, UIMessage, convertToModelMessages } from 'ai';
import { anthropic } from '@ai-sdk/anthropic';

export const maxDuration = 30;

export async function POST(req: Request) {
  const { messages }: { messages: UIMessage[] } = await req.json();

  const result = streamText({
    model: anthropic('claude-sonnet-4-6'),
    messages: await convertToModelMessages(messages),
    system: 'You are a helpful assistant.',
  });

  return result.toUIMessageStreamResponse({
    sendSources: true,
    sendReasoning: true,
  });
}

Chat Page

// app/page.tsx
'use client';
import { useChat } from '@ai-sdk/react';
import { DefaultChatTransport } from 'ai';
import {
  Conversation,
  ConversationContent,
  ConversationScrollButton,
} from '@/components/ai-elements/conversation';
import {
  Message,
  MessageContent,
  MessageResponse,
} from '@/components/ai-elements/message';
import {
  PromptInput,
  PromptInputBody,
  PromptInputTextarea,
  PromptInputFooter,
  PromptInputSubmit,
  type PromptInputMessage,
} from '@/components/ai-elements/prompt-input';
import { Loader } from '@/components/ai-elements/loader';
import { useState } from 'react';

export default function ChatPage() {
  const [input, setInput] = useState('');
  const { messages, sendMessage, status } = useChat({
    transport: new DefaultChatTransport({ api: '/api/chat' }),
  });

  const handleSubmit = (message: PromptInputMessage) => {
    if (!message.text.trim()) return;
    sendMessage({ text: message.text, files: message.files });
    setInput('');
  };

  return (
    
      
        
          {messages.map((message) => (
            
              {message.parts.map((part, i) => {
                if (part.type === 'text') {
                  return (
                    
                      
                        {part.text}
                      
                    
                  );
                }
                return null;
              })}
            
          ))}
          {status === 'submitted' && }
        
        
      

      
        
           setInput(e.target.value)}
          />
        
        
          
          
        
      
    
  );
}

Skill References

For detailed patterns, see:

| Need | Skill | Reference | |------|-------|-----------| | Chat UI components | /ai-elements | [chatbot.md](references/chatbot.md) | | Next.js patterns | /nextjs-shadcn | [architecture.md](../nextjs-shadcn/references/architecture.md) | | AI SDK functions | /ai-sdk-6 | [core-functions.md](../ai-sdk-6/references/core-functions.md) | | Agents & tools | /ai-sdk-6 | [agents.md](../ai-sdk-6/references/agents.md) | | Caching | /cache-components | [REFERENCE.md](../cache-components/REFERENCE.md) | | Production patterns | /nextjs-chatbot | DB persistence, HITL approval, consent, feedback, search | | Code review & cleanup | code-simplifier agent | DRY/KISS/YAGNI validation |

Workflow

Phase 1: Understand Requirements

Ask user:

  • What type of AI app? (chatbot, agent, custom)
  • What features? (reasoning, sources, tools, file upload)
  • What style? (vega=classic, nova=compact, maia=soft/rounded, lyra=boxy/sharp, mira=dense) — default: nova
  • What font? (geist-sans, inter, jetbrains-mono, figtree, dm-sans, outfit, noto-sans, nunito-sans, roboto, raleway, public-sans) — default: geist-sans
  • What base color? (neutral, zinc, slate, gray, stone) — default: neutral
  • What theme accent? (neutral, blue, green, orange, red, rose, violet) — default: neutral
  • What border radius style? (default, sm, md, lg, xl)
  • Component library? (radix=default, base-ui)

Phase 2: Scaffold Project

Run scaffolding commands based on requirements.

Phase 3: Generate Files

Create files based on application type:

  • API route (app/api/chat/route.ts)
  • Main page (app/page.tsx)
  • Components (if needed)
  • Agents (if needed)

Phase 4: Configure

  • Set up .env.local
  • Configure next.config.ts if needed
  • Add any additional dependencies

Phase 5: Verify

bun dev

Test the application works correctly.

References

  • [Chatbot Templates](references/chatbot.md) - Full chatbot implementation
  • [Agent Dashboard Templates](references/agent-dashboard.md) - Agent-based apps
  • [Project Structure](references/project-structure.md) - Directory layout
  • [Examples](references/examples.md) - Copy-paste examples

Package Manager

Always use bun, never npm:

  • bun add (not npm install)
  • bunx --bun (not npx)
  • bun dev (not npm run dev)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.