I'm not as smart as the other folks in this thread, but I've been lucky enough to work on a few fun, if small, web projects...<p>One was an indoor web map built on an entirely open-source stack (QGIS and OpenLayers): <a href="https://map.fieldmuseum.org/" rel="nofollow">https://map.fieldmuseum.org/</a> It was an interesting challenge because the open-source web mapping libraries (and many/most of the commercial ones too) were designed for outdoor use and didn't really account for indoor idiosyncrasies. Take rooms and doors, for example... while you can import vector SVGs geoJSONs to these mapping libraries, you can't easily indicate "this shape is solid except for these two doors" -- whether for visuals or for an eventual turn-by-turn routing/navigation layer. Another challenge was the concept of "floors", overlapped groups of geometry (walls, balconies, whatever) and points of interest that are mutually exclusive. We ended up having to trace floors against each other in QGIS (map editing software) and then adding state at the Javascript level to store each floor as a separate object to render or hide. Then there were a bunch of UX/UI tweaks we had to do, like how to draw arrows for Covid one-way flows, how zooming should work (we categorize POIs according to level of importance, then show/hide them at different zooms, and also dynamically scale fonts to ensure readability), which geometries to make clickable (a sidebar opens with pics and more details), how to hide easter eggs.<p>The whole thing was written as a vanilla JS single-page app tied to a headless CMS (Contentful at first, eventually DatoCMS) so that editors could easily change copy, graphics, etc. But editing geometries (the shapes and positions of things) still required QGIS knowledge or at least the ability to manually edit geoJSON files.<p>We launched this as a MVP with the intent of rapidly following up with additional features (blue-dot positioning, turn-by-turn routing, audio directions, a better codebase, etc.) At the end of the project we ended up open-sourcing it (after much begging and pleading with The Powers That Be), but then soon thereafter abandoned it altogether :( Just as well, really, because the code was really terrible -- I can say that with confidence because I wrote it, lol. But it's still an interesting problem space. As far as I know, there isn't a ready-built solution for this sort of stuff... especially not an open-source/source-available one. Some commercial solutions have limited indoor support, but as of our last evaluation (early 2021), none of them were especially powerful, elegant, or user-friendly. Hope that keeps evolving!<p>-----------<p>Fast-forward to my current job, and we're now working on a similarly graphical frontend app. I now work for a solar company, and we're designing a map-like tool to help installers plot out the PV modules (the technical term for a single "solar panel") on their customers' roofs, which then enables historical monitoring of various metrics like power output, temperature, etc.<p>Aside from the graphical challenges (rendering React states to Canvas shapes), there were also some interesting frontend engineering challenges, like how to plot tens of thousands of points in a chart while allowing real-time scrubbing in a timeline, but where no two datapoints were ever at the same time, because the devices we were working with all communicated in a one-at-a-time queue.<p>Anyway, I won't get too much into the details here... nothing that exciting, just a lot of nuance. What we're building is like a super-simplified version of <a href="https://www.opensolar.com/3ddesign" rel="nofollow">https://www.opensolar.com/3ddesign</a> (which is awesome! check it out).<p>---------<p>But overall, I just love that I get to work on these sorts of fun apps instead of bog-standard blog pages or ecommerce sites. Even a few years ago, things like this would've been complex desktop apps with difficult lifecycles to manage... now they can be web apps that are updated multiple times a week and evergreen everywhere, to all our customers. Pretty cool stuff!<p>I feel very lucky to be in my line of work -- web dev for nonprofits and small/medium businesses in interesting spaces, who have challenges unique to their industries, not just "how do we optimize this database" or the such (though there is that too). It was easy enough to pick up these technologies and frameworks in just a few months or years. I'm very grateful that is a career option for people now... I'm a high school dropout who eventually went to a natural resources school, but couldn't find a job in that industry so picked this up instead. It's all entirely self-teachable (with tutorials and Stack, of course).