🔥 1 day streak
481 words

The long and illustrious history of coast on clojure

I've been working on my clojure web framework on and off in my spare time for almost 2 years now, in various forms and names. First, I started with this idea of a “majestic monolith” and I actually called it “majestic”. It was essentially luminus, but worse, much worse. What a weird name and time in my life. Then I moved on from that and thought, well maybe I do want to make SPAs after all? So I made majestic-api, again horrible. After I sort of didn’t really find much use for those two things, I gave up and went back to slinging clojure libs together on top of ring. It was not pleasant. I try to make websites really quickly, on the order of two or three 8 hour days on the weekends, any time spent not just getting data in and out of a SQLite database is time wasted. I went back to the drawing board and finally hit on a name and a solution I liked.

Coast was born

I figured since I was just writing sites the old fashioned way and ruby on rails was what I was aiming to be, the “rails of clojure”, why not just call the thing “Coast on Clojure”. I’m honestly surprised I didn’t find anything on this before, so I ran with it. I wanted it to feel integrated, but I went with an MVP approach, I pulled in existing libraries and sort of glued them together in one namespace, the coast namespace. Over time though I started to replace some of the basic stuff with more “railsy” things, like centralized routing that wasn’t compojure, more rails-like logging, rails like db migrations... you get the picture.

Coast has a bright future

Even though I get down sometimes about writing websites and getting zero traction, I really do enjoy it, it’s kind of who am I now. I just make websites in my spare time. It would be nice if a lot of other people found them useful, but I have a few people who say, “hey this is cool” or what have you, so that’s something. I try to make a new site almost every month in the span of a few hours on weekends, so coast is getting used quite thoroughly, even though it might be 25 days or something since I’ve updated things in the master branch, I’m experimenting with making things more and more ergonomic, not just rails like. In the coming days, I have a new project that I want to get off of the ground with the latest iteration of coast: theta and I’m pretty excited for this next release of coast all on it’s own. I think it will really ease the process of making websites in clojure and make it fun to boot!