Frontend Tech Stack
In order to accomplish one of our goals which is making the platform easy to maintain and as durable as possible, we conducted extensive research to define our Frontend Tech Stack. Below is a detailed table summarizing the selected technologies, including their purpose, license, popularity, and maintenance status.
| Technology ✅ | GitHub | Purpose in Project | License | Community | Created | Last Commit | Company / Usage |
|---|---|---|---|---|---|---|---|
| React ✅ | GitHub | Core UI Library | MIT | 218k ⭐ / 21.7M weekly installs | 2013 | March 2025 | Meta (Facebook) |
| Vite ✅ | GitHub | Frontend build tool | MIT | 62.6k ⭐ / 9.4M installs | 2019 | March 2025 | Backed by Astro, StackBlitz |
| TailwindCSS ✅ | GitHub | Utility-first CSS framework | MIT | 75.5k ⭐ / 7.9M installs | 2017 | April 2025 | Tailwind Labs |
| MUI ✅ | GitHub | Component library (Material Design) | MIT | 90.3k ⭐ / 2.4M installs | 2014 | March 2025 | MUI Inc. |
| React Router DOM ✅ | GitHub | Routing | MIT | 51.7k ⭐ / 10.1M installs | 2014 | March 2025 | Remix |
| Axios ✅ | GitHub | HTTP requests | MIT | 103k ⭐ / 47.3M installs | 2014 | March 2025 | Sponsored by Proxidize, Lowdify |
| Lucide React ✅ | GitHub | Icon library | ISC | 4.7k ⭐ / 600k+ installs | 2022 | March 2025 | Open source |
| Framer Motion ✅ | GitHub | Animations | MIT | 21.1k ⭐ / 2M installs | 2019 | March 2025 | Framer |
| Leaflet + React Leaflet ✅ | Leaflet / React | Interactive Maps | BSD / MIT | 38.5k ⭐ (Leaflet) / 5.9k ⭐ (React) | 2010 / 2016 | March 2025 | Mapbox, OpenStreetMap |
| Recharts ✅ | GitHub | Charting | MIT | 21.6k ⭐ / 1.1M installs | 2016 | March 2025 | ByteDance |
| Chart.js + react-chartjs-2 ✅ | Chart.js / React wrapper | Charting | MIT | 63.9k ⭐ / 3.5M installs | 2013 | March 2025 | NASA, Netflix |
| @react-pdf/renderer ✅ | GitHub | PDF generation | MIT | 12.4k ⭐ / 500k installs | 2017 | March 2025 | Used in dashboards, reports |
| React Icons ✅ | GitHub | Icon wrapper | MIT | 10.8k ⭐ / 4.8M installs | 2016 | March 2025 | Open Source |
| Heroicons ✅ | GitHub | SVG icons | MIT | 18.6k ⭐ / 2.2M installs | 2020 | Jan 2024 | Tailwind Labs |
| Tippy.js + @tippyjs/react ✅ | GitHub | Tooltips | MIT | 11.4k ⭐ | 2017 | March 2025 | Open Source |
| XLSX ✅ | GitHub | Excel file parsing | Apache 2.0 | 34.2k ⭐ / 1.2M installs | 2012 | March 2025 | Used by Airtable, Tableau |
| ExcelJS ✅ | GitHub | Excel generation | MIT | 12.4k ⭐ / 1.1M installs | 2016 | March 2025 | Open Source |
| Date-fns ✅ | GitHub | Date utilities | MIT | 32.5k ⭐ / 13.1M installs | 2014 | March 2025 | Shopify, GitHub |
| React Datepicker ✅ | GitHub | Date selection | MIT | 6.5k ⭐ / 1.3M installs | 2014 | March 2025 | Open Source |
| QRCode ✅ | GitHub | QR Code generation | MIT | 6.6k ⭐ / 2M installs | 2011 | March 2025 | Open Source |
| React Time Picker ✅ | GitHub | Time selection | MIT | 1.2k ⭐ / 300k installs | 2018 | March 2025 | Open Source |
| @emotion/react + styled ✅ | GitHub | Styling support for MUI | MIT | 12.7k ⭐ / 3.5M installs | 2017 | March 2025 | Used internally by MUI |
| @mui/x-date-pickers ✅ | GitHub | Date pickers (advanced MUI) | MIT | 3.4k ⭐ / 1M installs | 2021 | March 2025 | MUI Inc. |
| Dayjs ✅ | GitHub | Lightweight date manipulation | MIT | 44.5k ⭐ / 9M installs | 2018 | March 2025 | Open Source |
| Firebase ✅ | GitHub | Realtime DB, auth, hosting | Apache 2.0 | 4.4k ⭐ / 5M installs | 2014 | March 2025 | |
| idb ✅ | GitHub | IndexedDB wrapper | Apache 2.0 | 5.3k ⭐ / 1.3M installs | 2016 | March 2025 | |
| i18next + React-i18next ✅ | GitHub / React | Internationalization | MIT | 7.7k ⭐ / 2.5M installs | 2011 | March 2025 | Widely used across industries |
| react-day-picker ✅ | GitHub | Calendar UI | MIT | 5.9k ⭐ / 800k installs | 2015 | March 2025 | Open Source |
| @hello-pangea/dnd ✅ | GitHub | Drag and drop | MIT | 1.3k ⭐ / 500k installs | 2022 | March 2025 | Community-maintained fork |
| pdf-lib ✅ | GitHub | PDF editing and merging | MIT | 14.1k ⭐ / 1.3M installs | 2018 | March 2025 | Open Source |
| pdfjs-dist ✅ | GitHub | PDF rendering | Apache 2.0 | 43.7k ⭐ / 4M installs | 2011 | March 2025 | Mozilla |
| React Speech Recognition ✅ | GitHub | Voice input and control | MIT | 1.7k ⭐ / 100k installs | 2020 | March 2025 | Open Source |
Consulted in April 2025
✅ Observations on Choices
State Management
Given the modular nature and scale of this project, we opted for a simpler approach using React’s built-in state and Context API where needed. This reduces boilerplate and keeps performance and maintainability in check.
Form Handling
Since the project’s form requirements are relatively simple, we handle form state manually using React, and apply custom validation logic as needed — in some cases using utility libraries like yup or simply relying on native HTML5 validation.
UI Framework
We combined the flexibility of TailwindCSS with the robust component suite from MUI 6. This hybrid approach gives us the freedom to design custom UI where needed while leveraging ready-made, accessible components for complex elements (e.g., tables, dialogs, inputs).
Charting
Both Recharts and Chart.js (via react-chartjs-2) were included. Each serves a different visual and functional need:
- Recharts for lightweight, responsive data viz with declarative APIs.
- Chart.js for more complex charts and custom render logic when needed.
Mapping
We use Leaflet and React-Leaflet for interactive maps, due to their strong open-source support and ease of integration with GeoJSON, markers, and tile layers — no external paid APIs required.
PDF & Excel
To cover export needs:
- We use @react-pdf/renderer for PDF document generation directly in React.
- ExcelJS and XLSX (SheetJS) support exporting data tables to
.xlsxformat, covering both basic and advanced spreadsheet features.
Date & Time
Instead of a full calendar suite, we use:
- Date-fns for all date manipulations.
- React Datepicker and React Time Picker for intuitive, minimal date/time input UIs.
Icons
We integrate icons from:
- Lucide, for their clean and lightweight SVGs.
- Heroicons, for design consistency with Tailwind.
- FontAwesome and React Icons, for a wide variety of general-purpose symbols.
Multi-Language Support
To support multi-language capabilities, we use i18next with react-i18next, along with the browser language detector. This stack enables dynamic translation loading and supports locale-based fallbacks, providing a scalable and flexible solution for internationalizing the app.
Persistent Storage
For offline access or persistent local data, we rely on IndexedDB via the idb library. This allows us to store user data, settings, and cached content efficiently, ensuring a smooth experience even when offline.
Notifications
We use Firebase for real-time notifications, leveraging its robust infrastructure for push notifications and real-time data synchronization. This allows us to keep users informed about important updates and events even without the app being open.
Drag-and-Drop
The app supports intuitive reordering and drag-and-drop interfaces using @hello-pangea/dnd — a robust, actively maintained fork of react-beautiful-dnd designed for React 18+ environments. It’s used in UIs like sortable lists and interactive content editors.
PDF Utilities
Beyond generating PDFs with @react-pdf/renderer, we use:
- pdf-lib to merge, edit, or programmatically generate complex PDFs (e.g., with custom layouts or embedded data).
- pdfjs-dist to render PDF files directly in the browser, enabling previewing of user-uploaded files or dynamic reports.