Software Engineer

The "Awsom" Project

For the past few years I've been working on a real estate search app called "Awsom". The main goal of the project is to use it as a means to get better with Next.js, Typescript, Node and other libraries, as well as to demonstrate the kind of code I have experience working on. I'm hosting the app on Vercel, the database is hosted on MongoDB Atlas and I'm using ImageKit to host my images.

The Awsom website
The awsome.homes website.

Right now the app only includes fake listing data for Seattle neighborhoods. Generating this fake data was actually a whole learning experience in and of itself. I was able to get some Seattle neighborhood boundary data for free through the city's website and use it to take advantage of MongoDBs built-in geospatial search capabilities. However, the experience with Mongo as a geospatial database wasn't as seamless as one would like. I ended up having to supplement some functionality with Turf.js (which is a great library). Otherwise, it worked well enough for a rapid development paradigm.

Iterating through continuous improvement has actually been a theme of this project. I originally started out with an app written with Vue that was much closer to the app I worked on professionally. After that, I pivoted to rewriting everything in Next.js with Typescript. That version is the one that is currently being used for the awsom.homes site.

I've recently began a third iteration. This latest version is no longer a monolith. I have a separate real estate listing search service that uses Koa. For the frontend, I chose a simpler approach, using Tailwind with Shadcn for components, rather than writing everything from scratch, as I had previously done.

I've also wanted to try going back to using Postgres with PostGIS, which is what I had used for work. I put together most of the necessary database tables and queries needed for the listing service but haven't gotten around to rewiting the service with this yet.

This Website

It's not the largest project in the world but putting together this site has been a fun thing to work on. I've learned more about how to optimize a site for SEO with Next.js. I've also spent some time learning the Motion animation library as well as the Motion-Primitives UI kit.

© Adam Griffin