Crypto Tracker
Finance · React + Node (Express) · 18 @molecule/* packages
CoinGecko-like cryptocurrency tracker with portfolio, price charts, alerts, and market data — with built-in Stripe-backed subscription tiers
Try it
Opens instantly. Runs on sample data, so changes reset on reload.
What is inside
Screens (15)
- Login
/login - Signup
/signup - ForgotPassword
/forgot-password - ResetPassword
/reset-password - Dashboard
/dashboard(signed in) - Markets
/markets(signed in) - CoinDetail
/coin/:symbol(signed in) - Portfolio
/portfolio(signed in) - Watchlist
/watchlist(signed in) - Alerts
/alerts(signed in) - Settings
/settings(signed in) - News
/news(signed in) - Transactions
/transactions(signed in) - AlertNew
/alerts/new(signed in) - NotFound
/404
Data model (11 tables)
- bookmarks — id, userId, resourceType, resourceId, folder, createdAt, updatedAt
- coin_price_history — id, coin_id, interval, price, timestamp
- coins — id, symbol, name, market_cap_rank, current_price, market_cap_usd, market_cap, volume_24h_usd, …
- crypto_holdings — id, user_id, coin_id, symbol, name, amount, avg_buy_price, total_cost, …
- crypto_news — id, title, source, summary, url, related_symbols, signal, published_at
- crypto_transactions — id, user_id, symbol, kind, amount, price_usd, fee_usd, exchange, …
- crypto_watchlist — id, user_id, coin_id, symbol, name, target_price, alert_direction, alert_threshold_cents, …
- devices — id, createdAt, updatedAt, userId, name, pushPlatform, pushSubscription, hasPushSubscription
- notifications — id, createdAt, updatedAt, user_id, type, title, body, href, …
- user_preferences — user_id, display_name, quote_currency, locale, refresh_seconds, theme, notify_email, notify_push, …
- price_alerts — id, user_id, coin_id, symbol, condition, target_price, is_active, channels, …
API (10 handlers)
- \_seed
api/src/handlers/_seed.ts - alerts
api/src/handlers/alerts.ts - markets
api/src/handlers/markets.ts - news
api/src/handlers/news.ts - notifications
api/src/handlers/notifications.ts - portfolio
api/src/handlers/portfolio.ts - preferences
api/src/handlers/preferences.ts - reports
api/src/handlers/reports.ts - transactions
api/src/handlers/transactions.ts - watchlist
api/src/handlers/watchlist.ts
Subscription tiers
free / pro / team — gated by: maxAlerts, maxCoins, maxMarket, maxPortfolio, advancedFeatures, canExport, retentionDays
Built from 18 @molecule/* packages
@molecule/api-cron-node-cron@molecule/api-database-postgresql@molecule/api-email-templates@molecule/api-emails-mailgun@molecule/api-encryption-aes@molecule/api-entitlements@molecule/api-payments-stripe@molecule/api-resource-bookmark@molecule/api-resource-notification@molecule/api-resource-payment@molecule/api-resource-user@molecule/api-search-meilisearch@molecule/app-billing-react@molecule/app-data-table@molecule/app-date-range-picker@molecule/app-notification-feed-react@molecule/app-sidebar-layout-react@molecule/app-virtual-scroll
Required secrets
DATABASE_URLPostgreSQL connection stringENCRYPTION_KEYAES key for encrypting API keysMEILISEARCH_API_KEYMeilisearch API key
The @molecule/* packages are Apache-2.0. The app you build from this template is yours to export and self-host. Licensing