Vincent Ritter

← back to projects

Sublime Feed

Building a feed reader and sync service for the web.

NOTE: This project is currently in deep freeze mode. I put a pin into it. Thanks for following.

Project posts JSON/RSS Feed...

I decided to let go of Sublime Feed for now. Considering Micro.blog already is a feed sync and reading service and recognising that I don't want to work on yet another thing, I think, for the time being, I'll let this slide.

✌️❤️

Preliminary URL feed lookup checker for Sublime Feed. Happy this works. Onto the next task 🤗

A few minor tweaks to login and registration on Sublime Feed. Basically added full dark mode support. I know I get excited about this too much, but I always see it in the way of the user journey. Step by step.

Dark and light:

I'm cross posting Sublime Feed related dev diary posts to @sublimefeed on Micro.blog if anyone wants to follow there.

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.

Guess Sublime Feed will be built with Laravel... 🤪 Here is an auth screen (all comes out the box, with tweaks from me 👍). The main site now also runs on it... was using Rails before. Nothing like learning something new.

Thinking of doing a little code challenge this week, which I was supposed to start today. Let me know if you dear readers would be interested in Sublime Feed, a web based feed (RSS) reader and sync service. Already recorded a podcast this morning saying I'll do it 😋

Friday evening. So instead of playing a video game — I really don’t play at all anymore — I’m going to be dusting off an old project of mine. Much better game where my code and me are the story.

Playing around with the login and register section of Sublime Feed. Trying out Unsplash for background images.


Started on getting my.sublimefeed.com set up. It's got a homepage and a link to the next section. There's also a info modal on the top right that shows the current status of the page. Click to expand :)


Got to start somewhere I guess, you can see it in action here: sublimefeed.com


Started the very first step of Sublime Feed today. Set up two repos, hosted them on Netlify, pointed the domain to it. Deploying nicely. They're already React JS web apps, which I'll be using to build out everything. A bit excessive at the moment, however it'll be the foundation of the sites - don't really fancy adding it at a later stage.

My next code challenge. The idea, the plan, sharing and needing guidance.

It’s been a few months since I shipped Simple Schedule, part of my first ever code challenge. It’s been an eye opener for sure and am happy where it got me. Whilst it hasn’t gained much traction, I am pretty OK with it. A lot of effort went into it, during a difficult part in my life. True, it’s still in beta and yeah… there are still a few items I want to change and add.

Now, I want to attempt something new. Something out of my comfort zone, using a new framework - in a language I have never really coded in. With multiple apps to throw into the mix.

Looking at my registrar I registered a domain name in summer of last year… with a simple ‘directory’ of things being hosted - just to try out a prototype iOS app that I fully designed in Sketch. With the iOS app and part web app serving as a directory I got to work with shipping something for September of last year. As everything in life, I was confronted with other things. So it never saw the light of day. Nor did I progress further except getting a design into Xcode and getting the views hooked up. With that, I also got one of the feeds (spoiler) to work. But that’s as far as I got.

Didn’t want to keep you in suspense too long, so let’s get right to it.

The idea

Last year I sat down and looked at feed readers and the state of online feed sync services (talking about RSS btw). They’re all pretty great and I tried a lot of readers out there. The only feed sync service I ended up using was FeedWrangler. I liked the simplicity of it all and it was well supported with readers. True enough, there are a lot out there that do the same thing.

With that being said, I think there is room for one more. I call it Sublime Feed. Initially called Just Feed last year, I have grown rather fond of the word ‘sublime’.

So, whilst I don’t want to go into too much detail just yet - for this post - I do want to offer a clue, or let’s say a high level overview, of what I actually want to achieve with Sublime Feed:

  1. A modern feed reading web app.
  2. A full feed syncing service.
  3. A full native iOS app.
  4. A React Native App for… Android. (More on that later). Which compiles down to native anyway.
  5. An easy to use API so it can be used with any third party app that would like to.
  6. Fully support JSON Feed and then fully support RSS.
  7. A gateway to interact with the Micro.blog community both via web and native apps.
  8. A public discovery section to discover interesting, popular and categorised feeds.

There are many more things I want to put here like accessibility, multi-language support, privacy and portability of data - however I think that will go into too much detail at the moment.

The plan

There is always a plan… plans are plans and are subject to change. So right off the bat, I won’t get annoyed when things don’t work out as I want them to. I may even cut features to get to Alpha. Oh, spoiler right there. Whoops.

Erm… plans… right.

With that said, I expect a few things to change along the way and I don’t want to overpromise too much. However, I set this as a guideline to the end goal of the “code challenge” part. Not everything will be there straight away and some things will take longer than others to get there.

This certainly won’t be a 3 month challenge… To be honest, I’m not even sure if I should call it a code challenge. At the same time though… it is. I have never attempted something this challenging for a long period of time. I usually concentrated on one thing at a time. One app, one website, you name it. This is more than that.

The truth is, I like to start with getting a design in place and working with that to define the app and features I want to have. This worked well for Simple Schedule. True, this is not for everyone and may not work for you… it does for me. It floats my boat.

Here is the plan, for the plan, to plan the first plan, of the planned web application (that probably didn’t make sense):

  1. A fully designed and static web application front end.

Here was me thinking there will be a huge list. Sure… it’s one point… however it’s actually a massive undertaking. Hey, anyone can code HTML and CSS… right?

For the nerdy type, I’d like to build the project (the frontend) out with the following frameworks/technologies:

  1. Frontend, including marketing and discovery section, to be built on ReactJS.
  2. The backend and API to be written in PHP (shocking, I know) using the Laravel framework.

I would like to say that the website is phase one. With the web app built I’m hoping it will give me clues of what I should and shouldn’t include in the iOS and Android app. A side effect of using React JS is that the web application will be a progressive web app. That's pretty neat!

Whilst not set in stone, I want to really tie myself up and say that I will release both the Android and iOS App at the same time. However, the web app will, for sure, be first.

The Android app, together with the iOS release, has been fuelled by seeing a lot of these service and/or apps not catering for either at the same time. Sure, a few offer alternatives. In fact, I’ll be investing in an Android device to develop on it… and not use emulators of that sort. You can’t beat a real device.

Everybody reads. They shouldn’t be limited to what device they use.

And yes, I agree that you should work on what you know and feel comfortable with. But that’s not the point of a challenge.

I’ll be writing everything down in more detailed posts along the way.

Let’s call this the plan for the frontend part - Stage 1.

Sharing

As with my last project, I’ll be working publicly where I can. This time around I won’t have a newsletter “beta” sign up form at all. So readers of the blog and myself can keep an eye on it and then eventually sign up to it.

There will be many, however not that frequent, blog posts as I go. I also want to attempt a few short podcasts, however that remains to be seen.

I may rename "Code Challenge" to Development Diaries or something similar. Inspired by Brent Simmons.

I need your help

It would be great to hear from followers and readers of this blog of what they would like to see in a feed reader. May it be web specific, app specific, reading style specific, you name it. Anything at all. Is there something missing on what you use now that you want to see? Email me as per below or message me on Micro.blog.

Timelines

This is going to be breaking a lot of hearts. I am one person, with many client projects taking most of my time - hey, it pays the rent! Not only that, I work on tight schedules which drain me mentally and actually physically - not bad for sitting in a chair all day. On top, I have a family that need me when I’m not working.

However, I have planned dedicated time for the project around all my client work. They don’t need to know…

The famous plan for timing:

  1. Web app frontend (static design) - 3 months.
  2. Web app logic layer - 2 - 3 months.

I’ll stop there because we’re now at 6 months already. I’d love to work on the mobile apps at the same time, but that just won’t be the case. On top, I don’t want to hold up the project at all trying to get these out the door. No, I just want to ship something and then build it out into something really great.

For a firm start date for getting started… don’t ask me. I think around mid of May would be a good start. So watch this space.

Again, I’ll be dedicating a little section on my website regarding the project so you can follow along. Not sure if I should create a special one-off feed for these posts?

I’ll also be working on a pre-alpha type release, where stuff will break all the time… but you can start using it. Because if I can use it, so can you.

Closing thoughts

Again, this is an exercise for me, to throw me into the deep end. I want to learn and gain new skills on the way. I want to take something complex and make it simple, or so I hope.

Also, by throwing this out now I do realise that I’m pretty much giving anyone my idea. By opening it up to the public I hope to once again keep this all going. Keeps me liable to actually shipping it. Sure, I take away the surprise effect, but why wait?

I don’t want to build yet another feed service… no, I want something way more sublime and engaging.

And on that note, thanks for reading. Excited to get started and totally amazed that I finally got it off my chest.

If you want to follow along, subscribe to my blog feed, follow me on Micro.blog or just email me. Glad to speak to a human :)