When you build something, everywhere you look, you are inspired.
This is the secret sauce that makes your creations uniquely yours. It is a cocktail blend of unique experiences that only you can perceive.
Today I drew inspiration from the last place many people would look - a project management software.
When I first launched muchiround.com, the site revolved around two main ideas: Events and Articles.
Events are basically gatherings scheduled for a future date—think something likeKing Kandoro's World Tour. Articles, on the other hand, are what you're reading right now—pieces that share thoughts, stories, or updates.
Both Events and Articles can either be in draft or published mode. Drafts are private, meaning only the person who created them can see them. Once they're published, though, they’re open for anyone with the link to check out.
They have a 'published at' date, which when present and set to a past date means that the article or event is published, and when it is absent it is in draft.
event.rb
This was the first version that I shipped:
screenshot, showing published at
Not bad. But it could be better.
As I started publishing more events, manually setting the 'published at' time to the current moment became a real chore. It was clear something had to change.
While I was drafting a message in my Basecamp account to brainstorm a solution, I stumbled upon the perfect fix already in action. It was such a simple and elegant solution that I knew I had to implement it.
Basecamp draft or publish
Before I checked the source code the first thought that came to my mind was that they were using JavaScript to allow multiple submit buttons on the form that submit different values, but it was even simpler than that.
simplified basecamp view source
The trick was to send the status value in the submit buttons, which I honestly didn't know you could do. But hey, we learn every day.
All I had to do was to add those submit buttons and refactor the article_params to set the published at accordingly
articled_controller.rb
And this was my version. I like it. Simple. Clean.
My implementation
I hope everywhere you look, you find inspiration to feed into your dream.