Whenever I've been wrenching on the Limo, I try to remember to make some notes here about the changes. I hope that these changes are taking things in a good direction. Please drop me a line with your comments, questions, or suggestions.
This list documents only the current line of development. I built (and re-built) a series of prototypes before this current incarnation of Lofi Limo. If you've been around long enough, you may remember them but unfortunately I didn't keep very good notes back then.
Update about page. The revised text will hopefully better convey the “why” and “how” of Lofi Limo.
Update favorite icon and add a touch icon. These icons should better convey the mellow vibes of the Lofi Limo.
Add a Smart App Banner. This should make it easier for listeners with iPhones to find and get the Lofi Limo app for a better listening experience.
Update sharing card. This should brighten and freshen up the background of the sharing card to better represent the mellow vibes you get in the Lofi Limo.
Use “Lofi Limo” more consistently to refer to the service, while reserving “lofi.limo” for the website address and logotype. This should help comfort readers (like me) who are uncomfortable when things are not named consistently.
Update player tagline and description. This should help better describe the site in search engine results pages and make it more attractive.
Add five new bumpers; enjoy!
Add a service message API endpoint. This gives me a way to let you know in near real-time about any recent or upcoming issues or events which may impact the availability of mellow tunes. Right now this is only used by the iOS app, but I plan to update the web player to use it as well (until then, service messages on the web are less near to real-time).
Include audio item duration in API response message. This makes it easier for the iOS app to know when it should check for the next audio item play. I may also use this in the web player in the future, since it's a bit less fiddly than what I'm doing now.
Refactor and reformat player HTML. This should make it easier to debug and work on in the future.
Refactor CSS and use a proportional font more long-form text. This should make the site easier to read and the CSS easier to work on in the future.
Refactor and open-source XMLHTTPRequest automatic retry and exponential backoff wrapper function. This should make the wrapper function easier to document and more adaptable to a broad range of applications. I hope that releasing it under a permissive license will be a nice way to help give back to the open-source community.
Make several corrections to the Write HTML Right blog article. These corrections should improve its readability and accuracy. Thanks Ian!
Automatically resize images on the merchandise page for narrower viewports. This should make it easier to view the images on mobile devices. Thanks whoibrar!
Add a third blog post. Watch out, this one has some strong opinions! I probably won't include new articles in the release notes going forward.
Improve syntax highlighting in the blog and make some style adjustments for figures and listings. This should make the articles more attractive and easier to read.
Tweaked breadcrumb navigation in the blog area. Hopefully this will make the navigation more clear and easier to use.
Add dozens of new songs since the last release. Keeping it fresh indeed! I plan to keep this up and may not always include new songs and bumpers in the release notes going forward.
Add a second blog post. The first one was a big hit and helped get the word out, so I'm going to keep it going. 😀
Sort blog article list. Now that there's more than one article, I thought it would be nice if the newest one was on top!
Adjust cache-control directives. This should help reduce latency when loading media and reduce origin server traffic.
Add twelve new songs. Keeping it fresh as we roll into summer! Drop me a line if you know an artist who might like to be featured on Lofi Limo.
Add twelve new songs. I think it's important to keep the playlist fresh and growing. If you're an artist or if you know an artist who may be interested in having their work featured here, please drop me a line!
Remove unused options in the audio and background modules. This should make these modules easier to modify and test going forward.
Add a merchandise page with stickers for sale. I hope that these stickers will bring joy to listeners and a little revenue to me while helping to get the word out about Lofi Limo!
Add a service announcement to the main page. I plan to use this to let listeners know when I'm aware of planned maintenance that may disrupt service.
Fix the Telegram sharing link on blog posts. I totally flubbed that one. 😅
Add syntax highlighting to blog posts. This should make the code a little more interesting (and maybe easier) to read.
Make blog post diagrams brighter. This should make them more readable.
Stop logging how long it takes to process each request. The times are looking good right now. I think if I want to dig into this deeper in the future, I should write something to aggregate and surface the statistics in real-time.
Remove CSS that is specific to the main page from about page and related pages. This should help those other pages load a little faster. This change also lays groundwork for adding more content in the future.
Refactor current audio and background views. I noticed these were a little awkward when I was writing a blog article about them. This should make the code more understandable and more easily-modified in the future.
Extract sharing link composition into its own module. This should make it easy to re-use for blog articles.
Add a semi-static blog engine. This should give me a place to share more information about how Lofi Limo is built and why. And hopefully help let more people know about us.
Adjust the main page title and description. I'd be happy to have feedback on these... it's kinda tricky to sum everything up in so few words.
Remove sharing metadata from about page and related pages. The sharing metadata (the stuff that Twitter, Facebook, and friends use to make a neat "card" when you share a link to Lofi Limo) for the main page was being included on every page even though it was not tailored for those pages. Leaving out the un-tailored metadata should allow Twitter or Facebook to provide a better sharing experience for these ancillary pages. This change also lays groundwork for more shareable content in the future.
Alter chat behavior so that messages are not cleared upon automatic re-joining after a connection interruption. Instead a marker ("---") is added to indicate the period during which the chatter was not connected. This should reduce the inconvenience of temporary interruptions to connectivity.
On joining chat, save the nick the chatter used in localStorage and use it to automatically join next time chat is shown. This should make it more convenient for chatters to join the chat.
Save chat visibility in localStorage and restore visibility on each visit. Chatters should no longer need to explicitly join the chat each time they visit.
Add secret menu option to acquire a "screen wake lock". This should help listeners who would like to keep their display awake and unlocked while listening. Thanks Spikebob!
Add custom error page for HTTP status 503 (Service unavailable). This should provide a less jarring experience for visitors who come to the site during the few seconds it usually takes me to roll out updates. It should also provide contact information and encouragement to reach out in case the service is having trouble.
Update sharing image to reflect the new audio player layout. This should provide a more accurate view of what the site looks like when shared on Twitter.
Add Open Graph tags to each page. This should make links to Lofi Limo shared on Facebook and Reddit look better.
Add "description" meta tag. This should make links on search engine results pages more clear.
Add "share" page and move the "tweet" link there along with links to share on Reddit, Facebook, Pinterest, Linkedin, and Telegram. This should make it easier for happy listeners to help get the word out.
Update volume button icons to fit better with the surrounding text and add label attributes to them to help screen readers and other accessibility technologies.
Remove "debug" and lower level logging. I think this will make it a little quicker to get the next song or background (these requests in particular log all of their interactions with the database at "debug" level -- it's very verbose). It should also make the logs easier to read, bringing us to...
Log how long it takes to process each request. Detailed information about the requests is not logged: don't be creepy.
Move volume controls to the main screen and out of the secret menu. Thanks to all my new friends on /r/InternetIsBeautiful!
Reduce the default volume level so your headphones can stay on your head.
Save volume setting in localStorage so it should be the same when you come back.
Correct a mistake in how the start time for songs and bumpers is calculated. This mistake was causing the beginnings of songs and bumpers to be cut off sometimes for some listeners. I was sorting timestamps wrong... shameful!
Add eighteen new fun facts. Your chauffeur has been working overtime!
Fix a mistake I made in formatting the time remaining for display. It would go from like 1m30s to 0m29s... woops. It should show the correct time now.
Add HTML lang attributes. This should help screen readers and other accessibility tools. For example, screen readers depend on this information for correct pronunciation. Thanks lauchsfa!
Do a better job handling automatic re-connection of the chat socket. Before it would show multiple copies of each chat message after re-connection. It should work better now.
Add max-age to cache-control header for static assets and media. This should help reduce revalidation requests and improve performance for repeat visitors. Thanks lauchsfa!
Switch back to IBM's Plex Mono from PlemolJP. PlemolJP is beautiful, but it's more than twenty times the size with all those glyphs.
Use a content delivery network for audio and backgrounds. This should improve reliability and reduce loading delays for listeners, especially those who are not near the Limo's main garage in Lansing, Michigan.
Expand and revise the About page to tell more of my story.
Switch to Console variant of PlemolJP for better rendering of symbols in mostly non-Japanese text.
Add Twitter card support.
Add "tweet" link to the player for easy sharing.
Improve error handling for background, bumper, and song import.
Make it simpler and safer to delete a song. (Please let me know if you run into any songs that Lofi Limo would be better without.)
Record sources of traffic to the player page. Counts are pre-aggregated by date and source to prevent correlation with a specific request (don't be creepy).
Add donation button.
Quiet down debug logging.
Handle audio player ending before the next song is loaded.
Revise "about" page and documentation.
Use PlemolJP for better Japanese support in Plex Mono typeface.
Avoid certain race-conditions in chat client.
Lazy-load chat client dependencies.
Improve support for the audio being started and stopped outside the browser (hardware buttons, for example).
Show a message when a shortcut is used.
Add a shortcut menu for devices without a keyboard.
Adapt for deployment on FreeBSD.
Add (secret) deep-tint mode.
Add (secret) chat prototype.
Fix an issue with how the playlist is shuffled.
Add a "mute" button to the player.
Add an "about" page.
Add TLS support.
Add (secret) shortcuts.
Improve compatibility with older browsers.
Handle a race-condition when selecting the next song to play.
Launch release!Aaron D. Parks