npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

indie-footer

v1.0.7

Published

This is footer package for indie founders

Readme

🚀 indie-footer

The fastest way to manage footers across all your indie products. Update once, sync everywhere in 5 minutes.

npm version downloads license

Built for indie hackers and multi-product founders who want to cross-promote their products and stop wasting time managing footers.


💡 The Problem

You launched 3 SaaS products. Now you want to update your bio in all footers:

- ❌ Open Product A → Edit footer → Push → Deploy (20 min)
- ❌ Open Product B → Edit footer → Push → Deploy (20 min)  
- ❌ Open Product C → Edit footer → Push → Deploy (20 min)
- ❌ Total: 1 hour wasted 😫

✨ The Solution

+ ✅ Login to dashboard → Update bio → Auto-syncs in 5 min
+ ✅ Total: 2 minutes ⚡

Save 97% of your time.


🎯 What You Get

1. Founder Profile Section

Showcase yourself across all your products:

┌───────────────────────────────────────────────┐
│  Hey, I'm Alex - Indie Hacker                 │
│  I build tools for creators. Currently        │
│  working on 3 products 👇                     │
│  📅 Book a call                               │
└───────────────────────────────────────────────┘

2. Product Showcase

Cross-promote your entire product suite automatically:

┌───────────────────────────────────────────────┐
│  🚀 My Products                               │
│                                               │
│  📱 FitTracker - Track your fitness journey   │
│  🥗 MealPlanner - Plan healthy meals          │
│  💪 WorkoutAI - AI-powered workout plans      │
└───────────────────────────────────────────────┘

3. Live Analytics

See exactly which products your users click on:

  • Track clicks across all products
  • See which sites drive most traffic
  • Identify your best-performing products
  • Optimize your cross-promotion strategy

🚀 Quick Start (30 seconds)

1. Install

npm install indie-footer

2. Get Your Keys

Sign up at indiefooter.com (free) and copy:

  • ✅ Your if_key (API key)
  • ✅ Your site_key (website URL)

3. Add 2 Lines of Code

import IndieFooter from 'indie-footer';

export default function App() {
  return (
    <div>
      {/* Your app */}
      
      <IndieFooter
        if_key="IF_11urkva9msfb2yw43ngnpf4"
        site_key="https://www.yoursite.com"
      />
    </div>
  );
}

Done! 🎉 Your footer now updates from the dashboard.


📖 Full Example

"use client";
import IndieFooter from "indie-footer";

export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <body className="bg-white dark:bg-black">
        {children}
        
        {/* Dynamic footer */}
        <IndieFooter
          if_key={process.env.NEXT_PUBLIC_INDIE_FOOTER_KEY}
          site_key={process.env.NEXT_PUBLIC_SITE_URL}
        />
      </body>
    </html>
  );
}

Environment Variables

# .env.local
NEXT_PUBLIC_INDIE_FOOTER_KEY=IF_11urkva9msfb2yw43ngnpf4
NEXT_PUBLIC_SITE_URL=https://www.yoursite.com

🎨 Manage Everything from Dashboard

Login to indiefooter.com/dashboard and:

✏️ Update Your Profile

  • Profile photo
  • Name & bio
  • Call-to-action links (Book a call, Twitter, etc.)
  • Updates all sites in 5 minutes

🚀 Manage Products

  • Add new products instantly
  • Update descriptions & logos
  • Reorder products (drag & drop)
  • Toggle products on/off
  • All changes sync automatically

📊 Track Performance

  • See total clicks per product
  • Identify top-performing products
  • Track cross-promotion ROI
  • Optimize based on data

💰 Real Results

Meet Sarah - 3 Product Founder

Before indie-footer:

  • ❌ Spent 2 hours/month updating footers
  • ❌ No cross-promotion between products
  • ❌ No idea which products users wanted

After indie-footer:

  • ✅ Spends 5 minutes/month on footers
  • ✅ 200 users discovered other products via footer
  • ✅ +$1,450 MRR from cross-promotion clicks

Time saved: 1.9 hours/month
Revenue increase: $1,450/month
ROI: 1,842% 🚀


🔧 Props

| Prop | Type | Required | Description | |------|------|----------|-------------| | if_key | string | ✅ Yes | Your API key from dashboard | | site_key | string | ✅ Yes | Your website URL |

That's it. Super simple.


🚀 How It Works Under the Hood

Perfect SEO (Server-Side Rendering)

User visits your site
    ↓
Next.js fetches footer data (SSG + ISR)
    ↓
Footer rendered server-side
    ↓
Google sees complete HTML with all links ✅
    ↓
100% of your footer links indexed ✅

Auto-Sync (No Deployments)

You update profile in dashboard
    ↓
Next.js ISR detects change (5 min)
    ↓
Re-fetches new footer data
    ↓
All users see updated footer ✅
    ↓
No code changes. No deployments. ✅

Smart Analytics

User clicks product link
    ↓
Event tracked (client-side)
    ↓
Sent to analytics API
    ↓
View in dashboard instantly ✅

📦 Works With Everything

Next.js 13+ App Router

import IndieFooter from 'indie-footer';

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        {children}
        <IndieFooter if_key="..." site_key="..." />
      </body>
    </html>
  );
}

Next.js 12 Pages Router

// pages/_app.tsx
import IndieFooter from 'indie-footer';

function MyApp({ Component, pageProps }) {
  return (
    <>
      <Component {...pageProps} />
      <IndieFooter if_key="..." site_key="..." />
    </>
  );
}

React + Vite

import IndieFooter from 'indie-footer';

function App() {
  return (
    <div>
      <YourApp />
      <IndieFooter if_key="..." site_key="..." />
    </div>
  );
}

Remix

import IndieFooter from 'indie-footer';

export default function App() {
  return (
    <html>
      <body>
        <Outlet />
        <IndieFooter if_key="..." site_key="..." />
      </body>
    </html>
  );
}

💰 Pricing

| Plan | Price | Perfect For | |------|-------|-------------| | Free | $0/mo | Testing with 1 site, 5 products, 10k views/mo | | Pro | $29/mo | Serious indie hackers: 5 sites, unlimited products, 100k views/mo | | Business | $79/mo | Agencies & companies: Unlimited sites, white-label, priority support |

View detailed pricing →


🎯 Perfect For

1. Multi-Product Indie Hackers

You built 3-5 products and want to:

  • Cross-promote them all
  • Track which products resonate
  • Save time on footer management

Result: +20% revenue from cross-promotion

2. Solo SaaS Founders

You're launching new products and want to:

  • Keep all footers consistent
  • Update everything from one place
  • Focus on building, not managing footers

Result: Save 2 hours/month

3. Agencies

You manage 10+ client sites and want to:

  • Give clients dashboard access
  • Auto-update all client footers
  • White-label the solution

Result: Clients self-serve, you save time

4. Product Suites

You have 5-20 microsites and want to:

  • Consistent branding everywhere
  • Centralized control
  • No more deployment hell

Result: Update 20 sites in 5 minutes


🔐 Security & Trust

  • HTTPS Only - All API calls encrypted
  • No PII - Only anonymous click events tracked
  • GDPR Compliant - EU-friendly infrastructure
  • 99.9% Uptime - Reliable, fast infrastructure
  • Open Source Client - Verify our code yourself

🐛 Troubleshooting

Footer not appearing?

Check your keys:

console.log(process.env.NEXT_PUBLIC_INDIE_FOOTER_KEY);
console.log(process.env.NEXT_PUBLIC_SITE_URL);

Make sure they match your dashboard settings.

Updates not syncing?

ISR takes up to 5 minutes. To force immediate update:

rm -rf .next
npm run dev

Need TypeScript support?

npm install --save-dev @types/react

Still stuck? Email us - we respond in < 2 hours.


🌟 What People Say

"This saved me SO much time. I have 4 products and updating footers was killing me. Now it takes 30 seconds."
— Sarah K., Founder of FitTracker

"Cross-promotion analytics helped me understand which products my users actually want. Revenue up $1,500/mo."
— Mike R., Indie Hacker

"Finally! A dead-simple solution. Installed in 2 minutes, works perfectly."
— Alex T., SaaS Founder


⚡ Get Started in 30 Seconds

npm install indie-footer
  1. Sign up: indiefooter.com (free)
  2. Copy your keys from dashboard
  3. Add 2 lines to your app
  4. Done!

Try it free. No credit card required.


📚 Learn More


💬 Questions?


Made with ❤️ for indie hackers everywhere

WebsiteDocsPricingGitHub

Star us on GitHub if this saved you time!

Stop wasting hours on footers. Start building products.