David Krupp
About Author
February 7, 2024
 in 
Build in Public

Figuring Out the Right Tech Stack for StockNoodles

Choosing simple, flexible tech that enhances performance is key for my project. We'll explore the tech stack I've selected, designed for easy refinement for learning before scaling up. I didn't set out to use many of these technologies initially, but the need to solve a series of unpredictable problems along the way motivated me to explore and research a wide range of available solutions.

Frontend Interaction and Data Visualization

  • React: React is terrific for supporting data visualization projects for its efficient Document Object Model (DOM) manipulation capabilities, which pairs perfectly with D3's strengths. React enables dynamic updates and interactions on the web application without the need for page reloads, ensures a fluid and responsive user experience.
  • D3.js: In contrast to React's DOM manipulation, D3.js is utilized for its robust data manipulation features, especially in the context of data visualizations. It handles complex tasks such as scaling, which adjusts data point sizes for visual consistency, and mapping, which converts data values into graphical instructions. This makes D3.js invaluable for presenting complex datasets in an engaging manner within the React framework.

The React and D3.js Logos
React and D3.js Logos

React Libraries

  • DexieDB: revolutionized client-side storage for StockNoodles by offering a database-like cache organized within the browser. This ensures lightning-fast performance and seamless offline access, making data management simple and efficient for users.
  • GSAP (GreenSock Animation Platform): Brings sophisticated animations to the UI, enriching the user experience.
  • Styled Components: Allows for CSS-in-JS, making styling a more integral part of the component logic.
  • React Lazy Load: Improves performance by loading components as they're needed.
  • React-Virtualized: primarily enhances performance by rendering components only when they're needed, reducing the overhead of managing a large number of elements in the DOM. While it may not directly reduce resource consumption like DexieDB, its optimized rendering approach leads to faster load times and smoother user interactions, indirectly improving overall efficiency.
  • React Icons: Provides a vast library of icons, enabling a more visually cohesive interface.

Backend Services and Data Handling

  • Firebase: Selected for its comprehensive backend services, Firebase offers a streamlined approach to database management, authentication, and hosting. It excels in providing real-time data updates, which is crucial for maintaining a dynamic and interactive user interface in StockNoodles. However, in the case of StockNoodles, Firebase's fast read database capabilities ensure high performance, especially when paired with batch aggregated data uploads by scheduled Node scripts.
  • Node.js for Background Data Processing: Complementing Firebase's real-time capabilities, Node.js is employed for specific data processing tasks that are more effectively handled outside the main application flow. This ensures that data-intensive operations don't hinder the application's performance and avoids giving too much work to the client.

Supporting Tools for Design and Project Management

  • Figma & FigJam: Essential for sketching out ideas, these tools support ideation, UX patterns, and UI details. Surprisingly, I haven't used Figma or FigJam too much beyond a few tech diagrams, but that will change when I start working on more complex user interactions.
  • Trello: This project management tool helps organize tasks and milestones, ensuring a clear overview of project progress and priorities. My Trello board is pretty ugly haha, but it still has been handy to prioritize my work and think through what is feasible for a given sprint.

Development and Version Control

  • Visual Studio Code: My preferred code editor, Visual Studio Code enhances coding efficiency and supports a wide range of development needs.
  • GitHub: A cornerstone for code repository management, GitHub enables effective version control and collaborative review processes, ensuring code integrity and facilitating incremental development.
  • Netlify-CLI/CD: With the CLI, developers can easily create and test functions locally before deploying to production. Continuous development (CD)ensures that changes to functions are automatically deployed, streamlining the development process and enabling rapid iteration. Netlify streamlines the deployment process, ensuring that updates to StockNoodles are published quickly and smoothly, keeping the application up-to-date and accessible to users without downtime or interruptions.

Evaluating Future Technologies

As StockNoodles continues to evolve, technologies such as GraphQL for advanced data querying, MongoDB for flexible data storage, and Docker for containerization are being explored. Integrating these technologies aims to improve data efficiency and enhance application scalability.

Conclusion: Building with Purpose

The selection of each technology in the StockNoodles stack is driven by specific functional needs, from frontend interactivity and data visualization to backend services and development efficiency. This deliberate approach ensures that the application is not only performant and scalable but also remains aligned with the evolving requirements of the project and its users.

The D3.js logo is used under the GPL-3.0 license. For more details, visit the D3.js official page on ObservableHQ: https://observablehq.com/@d3/logo.
The React logo is used under the Creative Commons Attribution 4.0 International license. For more information, see the React documentation license page:
https://github.com/reactjs/react.dev/blob/main/LICENSE-DOCS.md.

More Posts

You Might Also Like

Read More
Build in Public

Behind the Scenes: Crafting Intuitive Data Experiences with React

Have you ever considered what it's like to build a SaaS app solo? That's the path I've chosen with StockNoodles, aiming to uncover the realities of turning my design visions into a functioning product.
Feb 5, 2024
David Krupp
Read More
Research

Beyond the Surface: Uncovering Hidden Data Insights with Research

In our fast-moving digital age, finding the critical insights hiding in your data is essential to adapting rather than dying. Whether you're carving out a business strategy or crafting content, metrics are more than just numbers.
Oct 30, 2023
David Krupp
Read More
Dataviz

Complexity to Clarity: Mastering Simplicity in Data with Top-Line Metrics

In today's data-rich world, it's easy to get lost in complex metrics and deep analyses. But there's real value in keeping things simple. That's where top-line metrics come in – giving us clear insights without the noise.
Oct 23, 2023
David Krupp