MCPcopy Index your code
hub / github.com/dh1011/subscription-manager

github.com/dh1011/subscription-manager @3.2.8

Chat with this repo
repository ↗ · DeepWiki ↗ · release 3.2.8 ↗ · + Follow
97 symbols 232 edges 30 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

📅 Subscription Manager

Docker Ko-fi

This single-page web application lets you keep track of and manage your subscriptions. You can add, edit, delete, and view subscriptions all in one place. You can set up notifications for each subscription using NTFY or Gotify. The app provides a general summary of all your subscriptions and a detailed summary for each payment account, all within a single, intuitive interface.

Demo

https://github.com/user-attachments/assets/9e7830e1-3c3c-474a-8f48-93ee8f5e440d

Features

  • ➕ Add, edit, and delete subscriptions
  • 🗓️ View subscriptions on a calendar
  • 💰 Calculate weekly, monthly, and yearly totals
  • 📊 Detailed summaries per payment account
  • 🖼️ Easy to add icons for each subscription
  • 🔔 Notification system integration with NTFY and Gotify
  • 💱 Support for multiple currencies

Tech Stack

  • ⚛️ Next.js
  • 🔄 React
  • 🗄️ SQLite
  • 🐳 Docker
  • 🎨 Iconify

Setup

Using Docker Compose

  1. Create a docker-compose.yml file with the following content:

yaml version: "3.9" services: app: image: dh1011/subscription-manager:stable ports: - "3000:3000" volumes: - ./data:/app/data restart: unless-stopped

  1. Create the data directory: bash mkdir data

  2. Run Docker Compose: bash docker-compose up -d

  3. The app will be available at http://localhost:3000.


Manual Setup

  1. Clone the repository: bash git clone https://github.com/your-repo/subscription-manager.git cd subscription-manager

  2. Install dependencies: bash npm install

  3. Start the development server: bash npm run dev

  4. The app will be available at http://localhost:3000.

Building for Production

  1. Build the application: bash npm run build

  2. Start the production server: bash npm start

Adding Icons

This app uses Iconify icons. To add an icon to your subscription, use the icon name from the Iconify icon library.

Notifications

The app integrates with NTFY and Gotify for sending notifications. To set up notifications:

  1. Go to the Settings page
  2. Choose NTFY or Gotify
  3. Enter your NTFY topic and domain, or your Gotify server URL and application token
  4. Save the settings

You'll receive notifications for upcoming subscription payments.

Enjoy 🎉!

Extension points exported contracts — how you extend this code

UserConfiguration (Interface)
(no doc)
src/types/index.ts
NtfySettingsModalProps (Interface)
(no doc)
src/components/NtfySettingsModal.tsx
Subscription (Interface)
(no doc)
src/types/index.ts
ConfigurationModalProps (Interface)
(no doc)
src/components/ConfigurationModal.tsx
NtfySettings (Interface)
(no doc)
src/types/index.ts
HistoryGraphProps (Interface)
(no doc)
src/components/HistoryGraph.tsx
ApiResponse (Interface)
(no doc)
src/types/index.ts
CurrencySettingsModalProps (Interface)
(no doc)
src/components/CurrencySettingsModal.tsx

Core symbols most depended-on inside this repo

assert
called by 27
scripts/test-api.js
request
called by 14
scripts/test-api.js
getDb
called by 13
src/lib/db.ts
isSubscriptionActive
called by 5
src/lib/subscriptionDates.ts
getSubscriptionEndDate
called by 4
src/lib/subscriptionDates.ts
isSubscriptionEnded
called by 4
src/lib/subscriptionDates.ts
getNextDueDate
called by 3
src/components/SubscriptionList.tsx
isOnOrBeforeSubscriptionEnd
called by 3
src/lib/subscriptionDates.ts

Shape

Function 79
Interface 18

Languages

TypeScript100%

Modules by API surface

src/app/page.tsx9 symbols
src/components/Totals.tsx8 symbols
src/components/SubscriptionModal.tsx6 symbols
src/components/CompositionCharts.tsx6 symbols
src/components/SubscriptionList.tsx5 symbols
src/components/NtfySettingsModal.tsx5 symbols
src/types/index.ts4 symbols
src/lib/subscriptionDates.ts4 symbols
src/components/HistoryGraph.tsx4 symbols
src/components/CurrencySettingsModal.tsx4 symbols
src/components/CostTrendGraph.tsx4 symbols
src/components/ConfigurationModal.tsx4 symbols

For agents

$ claude mcp add subscription-manager \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact