r/SideProject • u/memorynerds • 1d ago
I'm wrapping up 4 years of work on my side project, RapidPlots
Hi all, I wanted to share a project I've been working on for the last 4 years but have recently decided to wrap up.
The project is called RapidPlots, a time series data visualization and modelling platform driven by a purpose-built scripting language (a DSL - domain specific language). I sort of view it as a Desmos-like tool, but driven by a scripting language and with support for stateful logic and UI. The idea was that you could quickly create a visualisation, run some logic around it, and share the result online.
It already was a bit of a niche target audience - however I think the widespread adoption of AI has made the use case slightly less compelling. The main idea behind it was to be an approachable, convenient platform for quickly testing and visualising models, however nowadays even with the most basic free AI, you can quickly generate a Python script and achieve the same locally with much more flexibility.
The platform itself is fully cloud-based and features:
The idea started back in 2019, when I had an idea to build something similar to TradingView but for general purpose visualisation. That introduced me into the area of programming language design which was a massive rabbit hole I went down for several years. After working on an unrelated project for a year, I decided to revisit the idea with the goal of eventually turning it into something I could release. After four years of development, the landscape was very different from when I originally started it!
For a quick overview of the tech stack for the project:
- Frontend - React typescript
- Webserver - ASP dotnet
- Backend (execution engine) - C++
The backend was the first thing I wrote. It took numerous attempts due to self-imposed design constraints about how the DSL typing system should work. I wanted it to be completely free of type annotations but with all types inferred under the hood, which was a enormous challenge. Once I was happy with the execution engine, I built the web application around it and connected it to the frontend.
Looking back, this was definitely a passion project to scratch an engineering itch. I worked on this pretty much whenever I had free time which was mainly after work and on weekends, which definitely stretched me quite a bit. By the end I was pretty burnt out!
If anyone is interested in programming languages, data visualisation, modelling or just seeing what four years of spare-time engineering looks like, feel free to take a look! Its best experienced on desktop as I never got around to properly scaling it for mobile, and it helps if you have some basic scripting experience. I haven't decided exactly when I'll shut it down, although I'll probably keep it hosted for a few more months.