openresty 1.19.9.1
tcp/443 tcp/80
railway-edge
tcp/443 tcp/80
Open service 34.193.221.66:443 · shop.finvue.dev
2026-01-06 17:06
HTTP/1.1 400 Bad Request Server: openresty/1.19.9.1 Date: Tue, 06 Jan 2026 17:06:26 GMT Content-Type: text/html Content-Length: 261 Connection: close Page title: 400 The plain HTTP request was sent to HTTPS port <html> <head><title>400 The plain HTTP request was sent to HTTPS port</title></head> <body> <center><h1>400 Bad Request</h1></center> <center>The plain HTTP request was sent to HTTPS port</center> <hr><center>openresty/1.19.9.1</center> </body> </html>
Open service 34.193.221.66:80 · shop.finvue.dev
2026-01-06 17:06
HTTP/1.1 200 OK
Server: openresty/1.19.9.1
Date: Tue, 06 Jan 2026 17:06:25 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 34991
Connection: close
x-revision: ea769b4e98b8
x-gr: PROD
link: <https://assets.gumroad.com/packs/css/design-374d0d48.css>; rel=preload; as=style; crossorigin=anonymous; nopush,<https://assets.gumroad.com/assets/application-cbf244e9109e70d7b04497041636f00173a1e588f9b879b3a3ef11f8dfb86e5c.js>; rel=preload; as=script; nopush
set-cookie: _mkra_stck=mysql%3A1767719190.1931689; path=/; max-age=10; expires=Tue, 06 Jan 2026 17:06:35 GMT; httponly; SameSite=None
set-cookie: _gumroad_guid=4b0f4e69-1578-4535-ac9b-726e6bf353b8; domain=finvue.dev; path=/; expires=Sun, 06 Jan 2036 17:06:25 GMT; httponly; samesite=lax
set-cookie: XSRF-TOKEN=5vMlGIXcAudMOImY_osCmNRky3nYTN4okLrLGBDoDmKdJEk5E74-hDMPLxGDHHGJC1R8xDHd4NhSkUeT7C4Mfg; path=/; samesite=lax; HttpOnly
etag: W/"53153adb0006acb474ee027773ac87ae"
cache-control: max-age=0, private, must-revalidate
x-request-id: 4101c6a0-820b-4353-b24a-8b2cc33f43f0
x-runtime: 0.078003
vary: Origin
x-original-headers-class: Rack::Headers
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
x-download-options: noopen
x-permitted-cross-domain-policies: none
content-security-policy: default-src https 'self'; child-src * data: blob:; connect-src 'self' blob: www.dropbox.com api.dropboxapi.com s3.amazonaws.com/gumroad s3.amazonaws.com/gumroad/ s3.amazonaws.com/gumroad-public-storage s3.amazonaws.com/gumroad-public-storage/ gumroad-public-storage.s3.amazonaws.com gumroad-public-storage.s3.amazonaws.com/ www.google.com www.gstatic.com *.facebook.com *.facebook.net *.google-analytics.com *.g.doubleclick.net *.googletagmanager.com analytics.google.com *.analytics.google.com files.gumroad.com/ d1bdh6c3ceakz5.cloudfront.net/ *.braintreegateway.com www.paypalobjects.com *.paypal.com *.braintree-api.com iframe.ly help.gumroad.com gumroad.com wss://cable.gumroad.com assets.gumroad.com; font-src * data: blob:; frame-src * data: blob:; img-src * data: blob:; media-src * data: blob:; object-src * data: blob:; script-src 'self' 'unsafe-eval' ajax.cloudflare.com static.cloudflareinsights.com js.stripe.com api.stripe.com connect-js.stripe.com *.braintreegateway.com *.braintree-api.com www.paypalobjects.com *.paypal.com *.google-analytics.com *.googletagmanager.com optimize.google.com www.googleadservices.com www.google.com www.gstatic.com *.facebook.net *.facebook.com www.dropbox.com s.ytimg.com cdn.iframe.ly platform.twitter.com cdn.jwplayer.com *.jwpcdn.com gumroad.us3.list-manage.com analytics.twitter.com help.gumroad.com unpkg.com/@lottiefiles/lottie-player@latest/ gumroad.com assets.gumroad.com 'nonce-ZGDBRiBslyqs5MxE/irxv74Na/cytUHPSXACTsGWFG8=' 'unsafe-inline'; style-src 'self' 'unsafe-inline' s.ytimg.com optimize.google.com fonts.googleapis.com assets.gumroad.com; worker-src * data: blob:
Page title: Finvue: The Ultimate Self-Hosted Stock Dashboard & Scraper
<!DOCTYPE html>
<html lang="en">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# gumroad: http://ogp.me/ns/fb/gumroad#">
<link rel="dns-prefetch" href="//assets.gumroad.com">
<link rel="dns-prefetch" href="//static-2.gumroad.com">
<link rel="dns-prefetch" href="//public-files.gumroad.com">
<title inertia>Finvue: The Ultimate Self-Hosted Stock Dashboard & Scraper</title>
<meta name="action-cable-url" content="wss://cable.gumroad.com/cable" />
<link rel="stylesheet" crossorigin="anonymous" href="https://assets.gumroad.com/packs/css/design-374d0d48.css" />
<style>:root{--accent: 255 144 232;--contrast-accent: 0 0 0;--font-family: "ABC Favorit", "ABC Favorit", sans-serif;--color: 0 0 0;--primary: var(--color);--contrast-primary: 255 255 255;--filled: 255 255 255;--contrast-filled: var(--color);--body-bg: #ffffff;--active-bg: rgb(var(--color) / var(--gray-1));--border-alpha: 1}body{background-color:#ffffff;color:#000;font-family:"ABC Favorit", "ABC Favorit", sans-serif}
</style>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="5wvNNq_V7lOOOMzGfxnmLtQl6ymD6cnQx7Kc7pkqbDKc3KEXObfSMPEPak8CjpU_CxVclGp49yAFmRBlZexuLg" />
<meta charset="utf-8">
<meta content="149071038533330" property="fb:app_id">
<meta content="http://www.facebook.com/gumroad" property="fb:page_id">
<meta property="twitter:site" value="@gumroad">
<meta content="Gumroad" property="og:site_name">
<meta content="https://abelikova.gumroad.com/l/finvue" property="og:url">
<meta content="Stop paying for expensive market data APIs. Own your financial analytics stack.Finvue is a production-ready, high-performance stock tracking dashboard and Yahoo Finance scraper built for developers and traders who want control, speed, and privacy.Built with a modern tech stack (**React, Fastify, Bun, Redis**), Finvue isn't just a dashboard—it's a robust platform for extracting, caching, and visualizing real-time market data without hitting rate limits or paying per-call fees.Demo---## 🔥 Why Finvue?### ⚡ Blazing Fast PerformanceExperience zero lag even with hundreds of tickers. We use virtualized rendering (`@tanstack/react-virtual`) to handle massive watchlists smoothly, and Redis caching to ensure your data is served instantly.### 🛠️ Robust "Invisible" ScrapingForget fragile web scrapers. Finvue includes a custom-built, ban-resistant Yahoo Finance client that manages cookies, crumbs, and sessions automatically. It mimics real browser behavior to reliably fetch:- Real-time Quotes &amp; Prices- Financial Statements (Income, Balance Sheet, Cash Flow)- Historical Data &amp; Charts- Options Chains### 📊 Professional-Grade Analytics- Deep Financials: Analyze 10+ years of padded annual/quarterly financial statements.- Bulk Management: Paste 50+ tickers at once—Finvue handles the rest.- Excel Export: Download your entire dashboard analysis to .xlsx with one click.- Interactive Charts: Responsive candlestick and area charts powered by Recharts.### 🔐 Enterprise-Ready Architecture- Authentication: Secure sign-up/login flows powered by Better-Auth.- Backend: High-throughput API built on Fastify and run with the Bun runtime.- Dockerized: Deploy anywhere in minutes with the included docker-compose setup.---## 💻 Technical Stack- Runtime: [Bun](https://bun.sh) (Super fast JavaScript runtime)- Frontend: React, Vite, Tailwind CSS, TanStack Query- Backend: Fastify, TypeScript- Data: PostgreSQL (Persistence), Redis (High-speed caching)- Scraping: Custom Axios client with intelligent session management---## 📦 What's Inside?The full unminified source code:- ✅ Complete monorepo structure (Turbo)- ✅ apps/web: The React Dashboard- ✅ apps/api: The Fastify API &amp; Scraper Worker- ✅ packages/yahoo-client: The core scraping logic library- ✅ Deployment configurations (Dockerfile, Railway)---Perfect for:- Developers building fintech apps who need a reference implementation.- Traders who want a private, customizable dashboard.- anyone wanting
Open service 3.225.36.17:443 · shop.finvue.dev
2026-01-06 17:06
HTTP/1.1 400 Bad Request Server: openresty/1.19.9.1 Date: Tue, 06 Jan 2026 17:06:25 GMT Content-Type: text/html Content-Length: 261 Connection: close Page title: 400 The plain HTTP request was sent to HTTPS port <html> <head><title>400 The plain HTTP request was sent to HTTPS port</title></head> <body> <center><h1>400 Bad Request</h1></center> <center>The plain HTTP request was sent to HTTPS port</center> <hr><center>openresty/1.19.9.1</center> </body> </html>
Open service 54.197.57.166:80 · shop.finvue.dev
2026-01-06 17:06
HTTP/1.1 200 OK
Server: openresty/1.19.9.1
Date: Tue, 06 Jan 2026 17:06:25 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 34991
Connection: close
x-revision: ea769b4e98b8
x-gr: PROD
link: <https://assets.gumroad.com/packs/css/design-374d0d48.css>; rel=preload; as=style; crossorigin=anonymous; nopush,<https://assets.gumroad.com/assets/application-cbf244e9109e70d7b04497041636f00173a1e588f9b879b3a3ef11f8dfb86e5c.js>; rel=preload; as=script; nopush
set-cookie: _mkra_stck=mysql%3A1767719190.163023; path=/; max-age=10; expires=Tue, 06 Jan 2026 17:06:35 GMT; httponly; SameSite=None
set-cookie: _gumroad_guid=a199f0f7-a8e1-43f0-a9b7-b1b854d3ae52; domain=finvue.dev; path=/; expires=Sun, 06 Jan 2036 17:06:25 GMT; httponly; samesite=lax
set-cookie: XSRF-TOKEN=0B8iRAey5wjncBsrYkgo0lwhICEwQorw-NHJZb8Qz_CPI-8D1lj895m0nEFFKUDd-vVr1Cz4r1sp8r4kHue5Og; path=/; samesite=lax; HttpOnly
etag: W/"1ac6f5b8cdde5709af5fb77dc27ef940"
cache-control: max-age=0, private, must-revalidate
x-request-id: df1111a3-7de6-4cf6-9373-dbcf5f355608
x-runtime: 0.080320
vary: Origin
x-original-headers-class: Rack::Headers
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
x-download-options: noopen
x-permitted-cross-domain-policies: none
content-security-policy: default-src https 'self'; child-src * data: blob:; connect-src 'self' blob: www.dropbox.com api.dropboxapi.com s3.amazonaws.com/gumroad s3.amazonaws.com/gumroad/ s3.amazonaws.com/gumroad-public-storage s3.amazonaws.com/gumroad-public-storage/ gumroad-public-storage.s3.amazonaws.com gumroad-public-storage.s3.amazonaws.com/ www.google.com www.gstatic.com *.facebook.com *.facebook.net *.google-analytics.com *.g.doubleclick.net *.googletagmanager.com analytics.google.com *.analytics.google.com files.gumroad.com/ d1bdh6c3ceakz5.cloudfront.net/ *.braintreegateway.com www.paypalobjects.com *.paypal.com *.braintree-api.com iframe.ly help.gumroad.com gumroad.com wss://cable.gumroad.com assets.gumroad.com; font-src * data: blob:; frame-src * data: blob:; img-src * data: blob:; media-src * data: blob:; object-src * data: blob:; script-src 'self' 'unsafe-eval' ajax.cloudflare.com static.cloudflareinsights.com js.stripe.com api.stripe.com connect-js.stripe.com *.braintreegateway.com *.braintree-api.com www.paypalobjects.com *.paypal.com *.google-analytics.com *.googletagmanager.com optimize.google.com www.googleadservices.com www.google.com www.gstatic.com *.facebook.net *.facebook.com www.dropbox.com s.ytimg.com cdn.iframe.ly platform.twitter.com cdn.jwplayer.com *.jwpcdn.com gumroad.us3.list-manage.com analytics.twitter.com help.gumroad.com unpkg.com/@lottiefiles/lottie-player@latest/ gumroad.com assets.gumroad.com 'nonce-MWP+d+oH/oxsGkD6BsFD+k4NkXinAvobdzk651hmIic=' 'unsafe-inline'; style-src 'self' 'unsafe-inline' s.ytimg.com optimize.google.com fonts.googleapis.com assets.gumroad.com; worker-src * data: blob:
Page title: Finvue: The Ultimate Self-Hosted Stock Dashboard & Scraper
<!DOCTYPE html>
<html lang="en">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# gumroad: http://ogp.me/ns/fb/gumroad#">
<link rel="dns-prefetch" href="//assets.gumroad.com">
<link rel="dns-prefetch" href="//static-2.gumroad.com">
<link rel="dns-prefetch" href="//public-files.gumroad.com">
<title inertia>Finvue: The Ultimate Self-Hosted Stock Dashboard & Scraper</title>
<meta name="action-cable-url" content="wss://cable.gumroad.com/cable" />
<link rel="stylesheet" crossorigin="anonymous" href="https://assets.gumroad.com/packs/css/design-374d0d48.css" />
<style>:root{--accent: 255 144 232;--contrast-accent: 0 0 0;--font-family: "ABC Favorit", "ABC Favorit", sans-serif;--color: 0 0 0;--primary: var(--color);--contrast-primary: 255 255 255;--filled: 255 255 255;--contrast-filled: var(--color);--body-bg: #ffffff;--active-bg: rgb(var(--color) / var(--gray-1));--border-alpha: 1}body{background-color:#ffffff;color:#000;font-family:"ABC Favorit", "ABC Favorit", sans-serif}
</style>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="rttTDC_OqnbWH4M94PvAOBD6Okh5aafQqMtWWMboEkLx555L_iSxiajbBFfHmqg3ti5xvWXTgnt56CEZZx9kiA" />
<meta charset="utf-8">
<meta content="149071038533330" property="fb:app_id">
<meta content="http://www.facebook.com/gumroad" property="fb:page_id">
<meta property="twitter:site" value="@gumroad">
<meta content="Gumroad" property="og:site_name">
<meta content="https://abelikova.gumroad.com/l/finvue" property="og:url">
<meta content="Stop paying for expensive market data APIs. Own your financial analytics stack.Finvue is a production-ready, high-performance stock tracking dashboard and Yahoo Finance scraper built for developers and traders who want control, speed, and privacy.Built with a modern tech stack (**React, Fastify, Bun, Redis**), Finvue isn't just a dashboard—it's a robust platform for extracting, caching, and visualizing real-time market data without hitting rate limits or paying per-call fees.Demo---## 🔥 Why Finvue?### ⚡ Blazing Fast PerformanceExperience zero lag even with hundreds of tickers. We use virtualized rendering (`@tanstack/react-virtual`) to handle massive watchlists smoothly, and Redis caching to ensure your data is served instantly.### 🛠️ Robust "Invisible" ScrapingForget fragile web scrapers. Finvue includes a custom-built, ban-resistant Yahoo Finance client that manages cookies, crumbs, and sessions automatically. It mimics real browser behavior to reliably fetch:- Real-time Quotes &amp; Prices- Financial Statements (Income, Balance Sheet, Cash Flow)- Historical Data &amp; Charts- Options Chains### 📊 Professional-Grade Analytics- Deep Financials: Analyze 10+ years of padded annual/quarterly financial statements.- Bulk Management: Paste 50+ tickers at once—Finvue handles the rest.- Excel Export: Download your entire dashboard analysis to .xlsx with one click.- Interactive Charts: Responsive candlestick and area charts powered by Recharts.### 🔐 Enterprise-Ready Architecture- Authentication: Secure sign-up/login flows powered by Better-Auth.- Backend: High-throughput API built on Fastify and run with the Bun runtime.- Dockerized: Deploy anywhere in minutes with the included docker-compose setup.---## 💻 Technical Stack- Runtime: [Bun](https://bun.sh) (Super fast JavaScript runtime)- Frontend: React, Vite, Tailwind CSS, TanStack Query- Backend: Fastify, TypeScript- Data: PostgreSQL (Persistence), Redis (High-speed caching)- Scraping: Custom Axios client with intelligent session management---## 📦 What's Inside?The full unminified source code:- ✅ Complete monorepo structure (Turbo)- ✅ apps/web: The React Dashboard- ✅ apps/api: The Fastify API &amp; Scraper Worker- ✅ packages/yahoo-client: The core scraping logic library- ✅ Deployment configurations (Dockerfile, Railway)---Perfect for:- Developers building fintech apps who need a reference implementation.- Traders who want a private, customizable dashboard.- anyone wanting
Open service 3.225.36.17:80 · shop.finvue.dev
2026-01-06 17:06
HTTP/1.1 200 OK
Server: openresty/1.19.9.1
Date: Tue, 06 Jan 2026 17:06:24 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 34991
Connection: close
x-revision: ea769b4e98b8
x-gr: PROD
link: <https://assets.gumroad.com/packs/css/design-374d0d48.css>; rel=preload; as=style; crossorigin=anonymous; nopush,<https://assets.gumroad.com/assets/application-cbf244e9109e70d7b04497041636f00173a1e588f9b879b3a3ef11f8dfb86e5c.js>; rel=preload; as=script; nopush
set-cookie: _mkra_stck=mysql%3A1767719189.776607; path=/; max-age=10; expires=Tue, 06 Jan 2026 17:06:34 GMT; httponly; SameSite=None
set-cookie: _gumroad_guid=2a5db7c3-8504-43a6-9123-6b2a2b6539d9; domain=finvue.dev; path=/; expires=Sun, 06 Jan 2036 17:06:24 GMT; httponly; samesite=lax
set-cookie: XSRF-TOKEN=KM1PZYB8yVgOYGJ0qNib9liCQJZmIvhGe_ECn3To_hK2q9uOwJ9DyxWF--RgPNytLDGsX_S0oANtDsjRibTovA; path=/; samesite=lax; HttpOnly
etag: W/"73ba2884e1e2eb16d88ee14457797ec3"
cache-control: max-age=0, private, must-revalidate
x-request-id: 2552ebec-c91c-4441-bbda-217c8848134f
x-runtime: 0.079930
vary: Origin
x-original-headers-class: Rack::Headers
x-content-type-options: nosniff
x-xss-protection: 1; mode=block
x-download-options: noopen
x-permitted-cross-domain-policies: none
content-security-policy: default-src https 'self'; child-src * data: blob:; connect-src 'self' blob: www.dropbox.com api.dropboxapi.com s3.amazonaws.com/gumroad s3.amazonaws.com/gumroad/ s3.amazonaws.com/gumroad-public-storage s3.amazonaws.com/gumroad-public-storage/ gumroad-public-storage.s3.amazonaws.com gumroad-public-storage.s3.amazonaws.com/ www.google.com www.gstatic.com *.facebook.com *.facebook.net *.google-analytics.com *.g.doubleclick.net *.googletagmanager.com analytics.google.com *.analytics.google.com files.gumroad.com/ d1bdh6c3ceakz5.cloudfront.net/ *.braintreegateway.com www.paypalobjects.com *.paypal.com *.braintree-api.com iframe.ly help.gumroad.com gumroad.com wss://cable.gumroad.com assets.gumroad.com; font-src * data: blob:; frame-src * data: blob:; img-src * data: blob:; media-src * data: blob:; object-src * data: blob:; script-src 'self' 'unsafe-eval' ajax.cloudflare.com static.cloudflareinsights.com js.stripe.com api.stripe.com connect-js.stripe.com *.braintreegateway.com *.braintree-api.com www.paypalobjects.com *.paypal.com *.google-analytics.com *.googletagmanager.com optimize.google.com www.googleadservices.com www.google.com www.gstatic.com *.facebook.net *.facebook.com www.dropbox.com s.ytimg.com cdn.iframe.ly platform.twitter.com cdn.jwplayer.com *.jwpcdn.com gumroad.us3.list-manage.com analytics.twitter.com help.gumroad.com unpkg.com/@lottiefiles/lottie-player@latest/ gumroad.com assets.gumroad.com 'nonce-U0+yD+Sw4j1cIYyKHU2rFHt/I185CEnAh/jVGnA+dNg=' 'unsafe-inline'; style-src 'self' 'unsafe-inline' s.ytimg.com optimize.google.com fonts.googleapis.com assets.gumroad.com; worker-src * data: blob:
Page title: Finvue: The Ultimate Self-Hosted Stock Dashboard & Scraper
<!DOCTYPE html>
<html lang="en">
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# gumroad: http://ogp.me/ns/fb/gumroad#">
<link rel="dns-prefetch" href="//assets.gumroad.com">
<link rel="dns-prefetch" href="//static-2.gumroad.com">
<link rel="dns-prefetch" href="//public-files.gumroad.com">
<title inertia>Finvue: The Ultimate Self-Hosted Stock Dashboard & Scraper</title>
<meta name="action-cable-url" content="wss://cable.gumroad.com/cable" />
<link rel="stylesheet" crossorigin="anonymous" href="https://assets.gumroad.com/packs/css/design-374d0d48.css" />
<style>:root{--accent: 255 144 232;--contrast-accent: 0 0 0;--font-family: "ABC Favorit", "ABC Favorit", sans-serif;--color: 0 0 0;--primary: var(--color);--contrast-primary: 255 255 255;--filled: 255 255 255;--contrast-filled: var(--color);--body-bg: #ffffff;--active-bg: rgb(var(--color) / var(--gray-1));--border-alpha: 1}body{background-color:#ffffff;color:#000;font-family:"ABC Favorit", "ABC Favorit", sans-serif}
</style>
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="c5Ngmx1AZS-zbFoFbwu-gww1VOdZ507_IjGzU-TPcADt9fRwXaPvvKiJw5Wn7_nYeIa4LstxFro0znkdGZNmrg" />
<meta charset="utf-8">
<meta content="149071038533330" property="fb:app_id">
<meta content="http://www.facebook.com/gumroad" property="fb:page_id">
<meta property="twitter:site" value="@gumroad">
<meta content="Gumroad" property="og:site_name">
<meta content="https://abelikova.gumroad.com/l/finvue" property="og:url">
<meta content="Stop paying for expensive market data APIs. Own your financial analytics stack.Finvue is a production-ready, high-performance stock tracking dashboard and Yahoo Finance scraper built for developers and traders who want control, speed, and privacy.Built with a modern tech stack (**React, Fastify, Bun, Redis**), Finvue isn't just a dashboard—it's a robust platform for extracting, caching, and visualizing real-time market data without hitting rate limits or paying per-call fees.Demo---## 🔥 Why Finvue?### ⚡ Blazing Fast PerformanceExperience zero lag even with hundreds of tickers. We use virtualized rendering (`@tanstack/react-virtual`) to handle massive watchlists smoothly, and Redis caching to ensure your data is served instantly.### 🛠️ Robust "Invisible" ScrapingForget fragile web scrapers. Finvue includes a custom-built, ban-resistant Yahoo Finance client that manages cookies, crumbs, and sessions automatically. It mimics real browser behavior to reliably fetch:- Real-time Quotes &amp; Prices- Financial Statements (Income, Balance Sheet, Cash Flow)- Historical Data &amp; Charts- Options Chains### 📊 Professional-Grade Analytics- Deep Financials: Analyze 10+ years of padded annual/quarterly financial statements.- Bulk Management: Paste 50+ tickers at once—Finvue handles the rest.- Excel Export: Download your entire dashboard analysis to .xlsx with one click.- Interactive Charts: Responsive candlestick and area charts powered by Recharts.### 🔐 Enterprise-Ready Architecture- Authentication: Secure sign-up/login flows powered by Better-Auth.- Backend: High-throughput API built on Fastify and run with the Bun runtime.- Dockerized: Deploy anywhere in minutes with the included docker-compose setup.---## 💻 Technical Stack- Runtime: [Bun](https://bun.sh) (Super fast JavaScript runtime)- Frontend: React, Vite, Tailwind CSS, TanStack Query- Backend: Fastify, TypeScript- Data: PostgreSQL (Persistence), Redis (High-speed caching)- Scraping: Custom Axios client with intelligent session management---## 📦 What's Inside?The full unminified source code:- ✅ Complete monorepo structure (Turbo)- ✅ apps/web: The React Dashboard- ✅ apps/api: The Fastify API &amp; Scraper Worker- ✅ packages/yahoo-client: The core scraping logic library- ✅ Deployment configurations (Dockerfile, Railway)---Perfect for:- Developers building fintech apps who need a reference implementation.- Traders who want a private, customizable dashboard.- anyone wanting
Open service 66.33.22.20:80 · finvue.dev
2026-01-06 14:47
HTTP/1.1 301 Moved Permanently Content-Type: text/html; charset=utf-8 Location: https://finvue.dev/ Server: railway-edge X-Railway-Edge: railway/us-east4-eqdc4a X-Railway-Request-Id: pMyAGQsGTei_qpobBT7zVQ Date: Tue, 06 Jan 2026 14:47:54 GMT Content-Length: 54 Connection: close <a href="https://finvue.dev/">Moved Permanently</a>.
Open service 66.33.22.20:443 · finvue.dev
2026-01-06 14:47
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Credentials: true
Cache-Control: public, max-age=0
Content-Length: 5759
Content-Type: text/html; charset=UTF-8
Date: Tue, 06 Jan 2026 14:47:45 GMT
Etag: W/"167f-19b92dfe3a8"
Last-Modified: Tue, 06 Jan 2026 10:35:05 GMT
Server: railway-edge
Vary: Origin
X-Railway-Edge: railway/europe-west4-drams3a
X-Railway-Request-Id: _2C1DOmtTTKo2Jic5nX1uw
Connection: close
Page title: Finvue | Premium Stock Tracking Dashboard
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Finvue | Premium Stock Tracking Dashboard</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700;800&display=swap" rel="stylesheet">
<style>
body { font-family: 'Inter', sans-serif; }
.glass { background: rgba(255, 255, 255, 0.7); backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.2); }
</style>
</head>
<body class="bg-slate-50 text-slate-900">
<!-- Hero Section -->
<header class="relative overflow-hidden pt-16 pb-32">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<div class="text-center">
<h1 class="text-5xl md:text-7xl font-extrabold tracking-tight text-slate-900 mb-6">
Master the Markets with <span class="text-indigo-600">Finvue</span>
</h1>
<p class="mt-4 text-xl text-slate-600 max-w-2xl mx-auto">
The ultra-fast, professional-grade stock tracking dashboard. Built for traders who demand precision, speed, and clean data.
</p>
<div class="mt-10 flex justify-center gap-4">
<a href="#features" class="px-8 py-4 bg-indigo-600 text-white font-bold rounded-xl hover:bg-indigo-700 transition-all shadow-lg shadow-indigo-200">
Explore Features
</a>
<a href="/app" class="px-8 py-4 bg-white text-slate-900 font-bold rounded-xl border border-slate-200 hover:border-slate-300 transition-all">
View Demo
</a>
</div>
</div>
</div>
<!-- Decorative Background -->
<div class="absolute top-0 left-1/2 -translate-x-1/2 -z-0 w-full h-full opacity-10 pointer-events-none">
<div class="absolute top-0 right-0 w-[500px] h-[500px] bg-indigo-400 rounded-full blur-[120px]"></div>
<div class="absolute bottom-0 left-0 w-[500px] h-[500px] bg-blue-400 rounded-full blur-[120px]"></div>
</div>
</header>
<!-- Features Section -->
<section id="features" class="py-24 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-1 md:grid-cols-3 gap-12">
<div class="p-8 rounded-2xl border border-slate-100 bg-slate-50/50 hover:shadow-xl transition-all">
<div class="w-12 h-12 bg-indigo-100 text-indigo-600 rounded-lg flex items-center justify-center mb-6">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path></svg>
</div>
<h3 class="text-xl font-bold mb-3">Instant Scraping</h3>
<p class="text-slate-600">High-performance extraction of real-time stock data directly from market sources.</p>
</div>
<div class="p-8 rounded-2xl border border-slate-100 bg-slate-50/50 hover:shadow-xl transition-all">
<div class="w-12 h-12 bg-blue-100 text-blue-600 rounded-lg flex items-center justify-center mb-6">
<svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 15.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"></path></svg>
</div>
<h3 class="text-xl font-bold mb-3">Bulk Ticker Management</h3>
<p class="text-slate-600">Add and manage hundreds of symbols with ease. Perfect for institutional-grade watchlists.</p>
</div>
<div class="p-8 rounded-2xl border border-slate-100 bg-slate-50/50 hover:shadow-