DEV Community

Cover image for Does the perfect stack exist? (hint: nope)
Daniel Smith
Daniel Smith

Posted on • Updated on

Does the perfect stack exist? (hint: nope)

[Photo by Saurav S on Unsplash]

Just a quick observation...

I'm expanding on a tweet:

I'm working on a prototype that leans on Mapping, and being able to search by location.

My thought was to learn some new tech while I was at it, so my fantasy stack was:

  • Remix
  • Prisma, calling MongoDB
  • Tailwind CSS, with Components, such as Adobe react-aria

[and, a day later... a little update... I decided to focus on Next.js instead of Remix. Two reasons: bigger community, and more potential job opportunities]

As it turns out, I had to swap out two different tools:

  • I swapped Prisma for Mongoose. I need to be able to do Geo searching by Points (latitude and longitude). Mongoose (an Open Source project) supported this way back in 2017, when I did an earlier iteration of my prototype. For whatever reason, Prisma does not support this. It has been an issue for over two years: Geolocation/Spatial types support #1798 . I find it remarkable that a company with > $40M financing (Source: TechCrunch) has not yet implemented this.

  • I swapped react-aria for Material Tailwind. I really liked that Adobe react-aria seemed to work with Tailwind. I was hoping the dialog component would 'just work' in Remix (the date, time, calendar, and tabs components were fine). No such luck (trying the example from codesandbox in straight up React did not work either). I reached out to the author of the dialog example (this is an official Adobe offering - we're not talking about some hobby project): no response. Material Tailwind doesn't give me a nice calendar component, but I can live with that. The things that I tried Just Work in Remix.

And that is the important part: pick tools where straightforward use cases Just Work.

Web Development often involves gluing together many moving parts, and it is all too easy to get distracted when things dont work (especially when there is no support). Reduce the number of obstacles!

Focus on your prototype. When some things dont work, swap for the things that do. If it is a prototype, you want to focus on showing your idea, end to end. Put yourself in the frame of mind of a potential user that is going to check things out for 5 minutes (they dont care which ORM you are using!).

This is as much of a reminder to myself, as anything else.

Top comments (0)