Just launched DataVisualizer.ai, a AI startup that enables users to generate interactive charts based on their data (stop wasting hours in Excel). Initially, I was keen to try a new tech stack with Svelte as the main framework. However, I decided against it for three main reasons:
- Scalability Concerns: I doubted that Svelte’s data layers could scale effectively. They tend to turn into spaghetti code after a few months, whereas I prefer the data layer to exist outside of React components.
- Library Availability: The ReCharts library is built on React.
- Stability Issues: Svelte was in the middle of launching v5 and felt relatively unstable.
I also avoided Cloudflare D1 due to unstable integration with NextJS/Prisma/T3/TypeScript, which required too much hacky code. Zustand was another option I explored, but I disliked having multiple stores and the necessity to use functions for every interaction with the store instead of simple Redux dispatch with a type and payload.
Tech Stack
This is the stack I ended up with:
- Framework & Boilerplate: T3 frontend to backend type safety is awesome
- State Management: Redux for essential data layer interactions with the backend through a bespoke client,
createTRPCClient, largely avoiding tRPC data hooks to interact with the backend.
- Charting Library: ReCharts, one of the best chart libraries due to its incredibly easy data handling.
- UI Components: ShadCN
- ORM: Prisma
- Performance Optimization: Partytown for lazy-loading Google Analytics.
Hosting
- Serverless Endpoints, CDN, and Server Components: Vercel for the chart overview and individual charts.
- Database: Railway for PostgreSQL.
- Static File Hosting and DNS: Cloudflare for large static files such as videos and DNS.
Payment
Since the launch a few days ago, I haven’t yet spent time optimizing the stack, such as lazy-loading ReCharts or other heavy components.
I truly value your insights! They remind me of the importance of having intuitive debugging capabilities in my development process. That’s why I’ve turned to EchoAPI, which has made a noticeable difference.