Indie Hacking·Javier Valencia·Revisado por NewsTide Editorial·9 ago 2026·8 min de lectura·🇬🇧 EN

Ship a Real Product in 7 Days: The Stack to Use

Ship a Real Product in 7 Days: The Stack to Use

You can build and launch a functional product in one week if you stop overthinking the tech stack. Start with three core pieces: a database with built-in auth, a server-side rendering framework, and an AI model accessed via API. This method has been utilized twice within six months, with the second build taking just four days due to reusing the architecture.

group of people using laptop computer Photo: Annie Spratt on Unsplash

Who this is for: Solo founders who've spent months "researching the perfect stack" instead of shipping. You don't need microservices or a custom design system. You need revenue-generating software in production before your motivation dies.

Day 1–2: Database and Auth in One Service

Start with Supabase. It may not be perfect—it has connection pooling issues after 100K users—but you're not hitting 100K users in the first week. You'll start with zero users until you ship.

Create a Supabase project. Enable email auth. Write three SQL tables: users, products, and subscriptions. Use Supabase's Row Level Security to protect user data, especially during late nights when you're exhausted.

-- policies.sql
CREATE POLICY "Users can only see their own data"
ON products FOR SELECT
USING (auth.uid() = user_id);

CREATE POLICY "Users can insert their own products"
ON products FOR INSERT
WITH CHECK (auth.uid() = user_id);

Quickly set up the auth flow using Supabase's client library. Avoid custom JWT systems or adding OAuth providers initially. Focus on email and password. Ship it.

Important note: Supabase's free tier limits database size to 500MB and bandwidth to 2GB per month (Supabase pricing, 2026). It's sufficient for your first 200–300 users if you're not storing videos. Once you hit the limit, you have a real problem worth paying for.

Day 3–4: Frontend That Renders on the Server

closeup photo of eyeglasses Photo: Kevin Ku on Unsplash

Use Next.js 15 with App Router and server components. Not because React is unmatched, but because hiring Next.js developers is easier when scaling your project.

npx create-next-app@latest product-name
cd product-name
npm install @supabase/supabase-js

Build your landing page, signup flow, and main interface using server components by default. Only mark components as "use client" when absolutely necessary. This approach keeps your JavaScript bundle under 100KB and your Lighthouse score high.

A practical file structure:

/app
  /api
    /webhook
      route.ts          # Stripe webhooks
  /(auth)
    /login
      page.tsx          # Server component
    /signup
      page.tsx
  /dashboard
    /page.tsx           # Server component
    /ProductList.tsx    # Client component for interactions
  /layout.tsx
  /page.tsx             # Landing page

Connect Supabase client through a single utility file:

// lib/supabase.ts
import { createClient } from '@supabase/supabase-js'

export const supabase = createClient(
  process.env.NEXT_PUBLIC_SUPABASE_URL!,
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
)

For mutations, use server actions instead of a REST API. This means less code, fewer files, and faster shipping.

// app/actions.ts
'use server'

import { supabase } from '@/lib/supabase'

export async function createProduct(formData: FormData) {
  const { data, error } = await supabase
    .from('products')
    .insert({
      name: formData.get('name'),
      price: formData.get('price'),
    })
  
  if (error) throw error
  return data
}

Day 5: Add Intelligence with Claude API

Don't fine-tune a model or host your own LLM. Call Anthropic's Claude API to ship the feature. Optimization can wait until customers demand it.

npm install @anthropic-ai/sdk

Build one AI feature that makes your product significantly more useful than a spreadsheet. For writing tools, focus on content generation. For CRM, consider email drafting. For project managers, task breakdown might be the way to go.

// lib/ai.ts
import Anthropic from '@anthropic-ai/sdk'

const anthropic = new Anthropic({
  apiKey: process.env.ANTHROPIC_API_KEY,
})

export async function generateContent(prompt: string) {
  const message = await anthropic.messages.create({
    model: 'claude-3-5-sonnet-20241022',
    max_tokens: 1024,
    messages: [
      {
        role: 'user',
        content: prompt,
      },
    ],
  })

  return message.content[0].text
}

Call this from a server action. You could stream the response to the client for a faster appearance, but honestly, for a v1, just return the complete response. Streaming adds complexity that can cause headaches at 2am.

Cost reality: Claude Sonnet costs $3 per million input tokens and $15 per million output tokens (Anthropic pricing, 2026). If your average request has 500 input tokens and 800 output tokens, that's $0.0135 per request. At 1,000 requests per month, you're spending $13.50. That's negligible compared to domain registration.

Day 6: Payments and Deploy

Integrate Stripe Checkout. Avoid custom payment flows. Use Stripe's hosted checkout page and webhook system.

npm install stripe

Set up two products in Stripe Dashboard: one for the monthly plan, another for the annual. Copy the price IDs. Create a checkout button:

// app/api/checkout/route.ts
import { NextResponse } from 'next/server'
import Stripe from 'stripe'

const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
  apiVersion: '2024-11-20.acacia',
})

export async function POST(req: Request) {
  const { priceId } = await req.json()

  const session = await stripe.checkout.sessions.create({
    payment_method_types: ['card'],
    line_items: [{ price: priceId, quantity: 1 }],
    mode: 'subscription',
    success_url: `${process.env.NEXT_PUBLIC_URL}/dashboard`,
    cancel_url: `${process.env.NEXT_PUBLIC_URL}/pricing`,
  })

  return NextResponse.json({ url: session.url })
}

Establish a webhook endpoint to handle checkout.session.completed and customer.subscription.deleted events. Update the subscriptions table accordingly. Test with Stripe CLI before deploying.

Deploy to Vercel. Push your repo, import in Vercel dashboard, add environment variables, deploy. You'll be live in minutes.

Day 7: Launch and Iterate

Post on Twitter/X, Hacker News, Reddit (if relevant), and Product Hunt. Don't wait for perfection. Expect typos on your landing page and confusion in your onboarding. Bug reports are good signals that real people are using your product.

Set up basic analytics—Vercel Analytics is built-in if you're on their platform. Add Plausible or Fathom if you prefer privacy-focused tracking without cookie banners.

The mistake to avoid: Spending day seven adding more features instead of getting early users. Feedback from three paying customers is more valuable than dark mode or email notifications.

What Nobody Tells You About the Seven-Day Sprint

Your code will be messy. Expect TODO comments, duplicate functions, and components over 200 lines long. Ship it anyway. Refactor once you have revenue.

You'll want to add auth providers. Resist the urge for Google login, GitHub OAuth, or magic links until five users ask. Email/password works.

AI responses might be gibberish sometimes. Claude can hallucinate. GPT-4 might fabricate citations. Add a disclaimer: "AI-generated content may contain errors." Allow users to regenerate or make edits.

Database migrations can be daunting. Supabase has a system, but you might not grasp it by day two. Use the dashboard SQL editor for your first schema. Move to proper migrations once you have users who will notice downtime.

You'll skip tests. It's okay. Write them in week two when a user reports a critical bug. TDD is a luxury for funded teams.

Common Mistakes That Kill the Seven-Day Sprint

Starting with monorepo tooling. Options like Turborepo, Nx, or pnpm workspaces are great for teams but a huge time sink for solo founders. Stick to one Next.js app in one repo. Ship it.

Creating a custom component library. Skip the design system. Use Tailwind CSS and shadcn/ui components. Customize them later.

Overthinking database schema. You'll get it wrong anyway. Add columns as needed. Supabase eases migrations once the initial chaos subsides.

Building an admin dashboard. You're the admin. Use Supabase Studio for data checks, subscription updates, and spam account bans. Develop an admin UI when you hire someone.

Integrating too many AI models. Stick to one model, one provider—either Claude Sonnet or GPT-4. Benchmark later when API calls cost $500/month.

FAQ

Can I really ship a product that makes money in seven days?

Yes, if "product" means functional software that solves a problem and accepts payment. Mobile apps and integrations won't be ready; you'll have a web app that does one thing well enough for someone to pay $10–50/month. Two products launched this way: one reached $1,200 MRR in month two, the other stalled at $0. Both shipped within a week.

What if I don't know Next.js or Supabase?

Learn only the essentials. Spend two hours on Next.js App Router docs. Follow a Supabase tutorial. You're not becoming an expert—you’re shipping software. Real learning occurs when users break your app unexpectedly.

How much does this stack cost to run?

$0–25/month for the first 500 users. Supabase free tier, Vercel hobby plan (free), Anthropic API (~$10–20/month with real traffic). Stripe takes 2.9% + $0.30 per transaction. Your domain costs $12/year. Expect to spend more on coffee than on infrastructure.

Should I use this stack if I plan to scale to millions of users?

No. Planning for millions of users before having ten is just procrastinating. This stack gets you to $50K MRR. Beyond that, you'll have resources to hire someone skilled in distributed systems. For now, focus on generating revenue, not on deploying Kubernetes clusters.

Ship It Today, Improve It Tomorrow

Select your idea. Set a seven-day timer. Avoid researching alternatives. Don't refactor before going live. Hold off on adding features until someone pays.

Your next step: create a Supabase project now and write the first three SQL tables. Name your Next.js app. Run npx create-next-app. The difference between founders who ship and those who plan is starting before feeling ready.

For more insights on the challenges faced by solo founders, check out "One-Person Companies Scale AI, But Fail at People." If you're interested in how one-person companies can achieve significant revenue, read "One-Person Companies Hit $2M ARR: AI Infrastructure."


Editorial note: This article was produced with AI assistance and reviewed by Javier Valencia. Verified facts are distinguished from editorial opinion throughout the text. External sources linked are independent of NewsTide.

Nota editorial: Este artículo ha sido elaborado con asistencia de inteligencia artificial y revisado por Javier Valencia para garantizar su precisión y relevancia. Conoce nuestra política editorial.

Más sobre Indie Hacking

← Volver al inicioVer todos de Indie Hacking