Sublime Feed: Dev Diary #1
Yesterday morning I started a new project of mine called Sublime Feed. It'll basically be a RSS feed reader and sync service (with an API).
Think Feedbin, Feedly and whatever else there might be. But this time I will put my own spin on it, on how I would like a service like this to behave and look.
I did intent to start with a "1 week to MVP" kinda challenge, but today I am sitting here thinking I will just take my time and slowly build this. Rather have something I am proud of.
Beginnings
On Monday I entertained the notion that it'll be built with Ruby on Rails. It's a framework I know and love. For reasons that I will not explain here, I actually chose to dive in and use Laravel instead. Shocking, yes. Am I surprised? Yes, kinda... but not really. It's an itch I wanted to scratch for some time, so here we are. Using Laravel has its own benefits too cumbersome to describe here.
With a Monday morning start in mind, I made a mistake early morning shortly after recording the podcast episode to go with it.
Long story short, my choice of breakfast really hindered me, and I was totally zoned out for most of the day. On the one hand though, I changed my mind on what framework to use.
Tuesday
The original holding page was built with Rails under the hood already. After a few trips to the Laravel website, and the documentation, I set up a new project.
Everything pretty much comes out the box, so I got TailwindCSS to work, which was super easy and I learned how to apply the correct markup so Laravel picks up any versioned files. Laravel uses Laravel Mix for asset generations, so I feel right at home.
I then copy and pasted my existing HTML and made a template. On the way I learned how layouts work in Laravel and "slots"... and you name it. It's great and I really like the way it works together. The last time I tried Laravel, we didn't have slots.
Next up was deploying, and I'm using Ploi for my own PHP related stuff already and it worked a treat without a problem, plus it supports Laravel out the box. It was super easy to get going. No drama... unlike Rails, it just works straight away.
With that working and my domains set up, amongst other few things, I wanted to work on login and registration. I certainly didn't want to re-invent the wheel so I just opted on using one of many great pre-built packages by Laravel called Laravel Breeze.
The great thing about Laravel Breeze was that it showed me the way on how to use "slots" and also how it goes about a few other templating things... Oh and of course it all just worked.
With a few hours spent with the templates and laying out a few things my way, and of course adding the correct translation strings, it was pretty much ready to go.
True, I spent a day on it, but it was good to learn and go through everything that was new to me. With that, we now have various things working:
- Registration
- Login
- Password reset
Towards the end of the day I spent a few more minutes tidying up some templating stuff.
Wednesday morning
This morning I spent a few minutes making sure that new accounts verify their email before they can login after registration. It was easy enough and comes out the box with Laravel Breeze, with a tiny bit of set up required.
With that out the way and working, I started digging around rendering different homepages depending on the environment it's running on, for example "production" or "staging". This way I can show just a normal holding page in production, but have the actual homepage with login and registration working on staging.
My plan is to open up the test site before I push everything live... so I can get some feedback. However, sitting here now, I don't think I'll do it. I'd rather have people on the production site to avoid any headaches trying to re-add all their feeds.
Next
I'm probably done for today. Next up I'd like to visit a slight home page tweak and then I'll start work with the "feed" screen after you're logged in.
I'll be heading over to Laracasts to help me on the way too, which is nice to do as I'm building something I am interested in.
All in all I am happy with the way it has gone the past few days. I do love to build and explore new things. I also like to take everything step by step and build it out as a user journey through the whole product... so it's nice to exercise that muscle again.
Till next time.