Idea:
Integration between Roam & Tonic
Create stream/streams. Can auto subscribe people to them
Posting to a stream does 2 things
Creates a post on that stream in the UI - so you can look back at it over time
Sends an email to everyone subscribed to the stream.
Additional Features
Comments on posts
Thinking: I want to be able to get a sense for the extent to which time passes between updates, and the frequency of the updates. This will incentivize me/us to keep regular updates coming in to projects and thus to keep projects moving. The first attempt at this is a horizontal scrolling style UI for reading streams, where you can scroll backwards to the left to see the historical posts.
Add horizontal day scroller to streams index

Improve display for stream show page

Add links (to post and to stream) to the stream post email

Bug: Mails not sending because recipient emails function needs to be updated
Styling - remove disc list style if li contains: bold, pre, code, img
Styling - fix display of pre on website - overflow scroll
Improve db model for users & stream subscriptions
Build new subscriber model
Transfer over previous relationships
Allow sub-streams
For example: Tonic - Tonic customer acquisition, Atlas, Greenore, Housebuild
Add database and backend structure
Come up with way to prevent email from sending in certain scenarios
Scenarios
Small update
Send to self to test
Don't feel this warrants an email of its own
Thinking
Have an attribute called Email, which can be set to Self, All, or Digest
Self will immediately send to the user who owns the stream.
All will immediately send to anyone subscribed to the stream.
Digest will send to anyone subscribed to the stream, at the end of the day along with any other streams they're subscribed to.
Tasks
Add method to infer recipient list based on Email attribute
Send to ennis.tony@gmail.com if set to Self
Send to subscribers if set to all
Hide the email attribute in the output
This was the trickiest task today. Involved fun with Nokogiri
def cleaned_raw_roam_content
begin
doc = Nokogiri::HTML::DocumentFragment.parse(self.raw_roam_content)
doc.at('a:contains("Email:")').parent.parent.remove
return doc.inner_html
rescue => exception
self.raw_roam_content
end
end
Come up with structure for assigning a title
What about - if the first node is an h3 - get the content and set that as the title.
Set title based on first h3
Think about/mock up layout for "All Streams" frontend
How can we have a Github green grid style panel to incentivise regular posting?

Add published_at date to use instead of created_at and updated_at
For Next Time
Allow modifying dates for stream posts
Load in some old posts to the VanBuild stream and modify the dates