diff --git a/blog/Gemfile.lock b/blog/Gemfile.lock index 816898d60..892d7ce4f 100644 --- a/blog/Gemfile.lock +++ b/blog/Gemfile.lock @@ -1,20 +1,20 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.7.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.5) + public_suffix (>= 2.0.2, < 6.0) colorator (1.1.0) - concurrent-ruby (1.1.9) - em-websocket (0.5.2) + concurrent-ruby (1.2.2) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.15.3) + ffi (1.16.3) forwardable-extended (2.6.0) - http_parser.rb (0.6.0) - i18n (1.8.10) + http_parser.rb (0.8.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) - jekyll (4.2.0) + jekyll (4.2.2) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -29,23 +29,23 @@ GEM rouge (~> 3.0) safe_yaml (~> 1.0) terminal-table (~> 2.0) - jekyll-feed (0.15.1) + jekyll-feed (0.17.0) jekyll (>= 3.7, < 5.0) jekyll-paginate (1.1.0) jekyll-redirect-from (0.16.0) jekyll (>= 3.3, < 5.0) - jekyll-sass-converter (2.1.0) + jekyll-sass-converter (2.2.0) sassc (> 2.0.1, < 3.0) - jekyll-seo-tag (2.7.1) + jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (2.3.1) + kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) - liquid (4.0.3) - listen (3.5.1) + liquid (4.0.4) + listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) @@ -55,23 +55,22 @@ GEM jekyll-seo-tag (~> 2.1) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) - rb-fsevent (0.11.0) + public_suffix (5.0.4) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - rexml (3.2.5) - rouge (3.26.0) + rexml (3.2.6) + rouge (3.30.0) safe_yaml (1.0.5) sassc (2.4.0) ffi (~> 1.9) terminal-table (2.0.0) unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.7.0) - webrick (1.7.0) + unicode-display_width (1.8.0) + webrick (1.8.1) PLATFORMS - ruby - universal-darwin-20 + arm64-darwin-23 DEPENDENCIES jekyll (~> 4.2.0) @@ -85,4 +84,4 @@ DEPENDENCIES webrick (~> 1.7) BUNDLED WITH - 2.2.20 + 2.4.22 diff --git a/blog/_config.yml b/blog/_config.yml index 9f1ed0bef..17f7ca5f7 100644 --- a/blog/_config.yml +++ b/blog/_config.yml @@ -27,6 +27,7 @@ description: > # this means to ignore newlines until "baseurl:" A new sound of an old instrument. baseurl: "" # the subpath of your site, e.g. /blog url: "https://blog.newsblur.com" # the base hostname & protocol for your site, e.g. http://example.com +site.url: "https://blog.newsblur.com" # the base hostname & protocol for your site, e.g. http://example.com permalink: pretty twitter_username: newsblur github_username: samuelclay diff --git a/blog/_posts/2023-12-06-ios-grid-view.md b/blog/_posts/2023-12-06-ios-grid-view.md new file mode 100644 index 000000000..a8eff9211 --- /dev/null +++ b/blog/_posts/2023-12-06-ios-grid-view.md @@ -0,0 +1,20 @@ +--- +layout: post +title: Introducing the Grid view on iOS +tags: ['ios'] +--- + +The Grid view is now on iOS. Read stories with large thumbnails in a magazine-like format, where you can see a customizable number of story previews at once. Works beautifully for both iPhone and iPad. + + +Just like on the web, you can customize how many stories you see and how large each story is, giving you the freedom to read stories with large thumbnails or small image previews. + + + +It even works on iPhone! + + + +If you have any other ideas you'd like to see on iPad and iPhone, feel free to post an idea on the NewsBlur Forum. + +This is a huge release and has been a year in the making. Coming up soon: a new Mac app and intelligent feed discovery. diff --git a/blog/_sass/minima/_base.scss b/blog/_sass/minima/_base.scss index d825d4bb1..51d5eba20 100644 --- a/blog/_sass/minima/_base.scss +++ b/blog/_sass/minima/_base.scss @@ -37,7 +37,7 @@ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, %vertical-rhythm { - margin-bottom: $spacing-unit / 2; + margin-bottom: calc($spacing-unit / 2); } @@ -138,7 +138,7 @@ a { blockquote { color: $grey-color; border-left: 4px solid $grey-color-light; - padding-left: $spacing-unit / 2; + padding-left: calc($spacing-unit / 2); @include relative-font-size(1.125); letter-spacing: -1px; font-style: italic; @@ -195,8 +195,8 @@ pre { @include media-query($on-laptop) { max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit})); max-width: calc(#{$content-width} - (#{$spacing-unit})); - padding-right: $spacing-unit / 2; - padding-left: $spacing-unit / 2; + padding-right: calc($spacing-unit / 2); + padding-left: calc($spacing-unit / 2); } } @@ -250,7 +250,7 @@ table { } } th, td { - padding: ($spacing-unit / 3) ($spacing-unit / 2); + padding: calc(($spacing-unit / 3)) calc($spacing-unit / 2); } th { background-color: lighten($grey-color-light, 3%); diff --git a/blog/_sass/minima/_layout.scss b/blog/_sass/minima/_layout.scss index de99b7ece..a2a50d992 100644 --- a/blog/_sass/minima/_layout.scss +++ b/blog/_sass/minima/_layout.scss @@ -94,8 +94,8 @@ @include media-query($on-palm) { position: absolute; - top: $spacing-unit / 2; - right: $spacing-unit / 2; + top: calc($spacing-unit / 2); + right: calc($spacing-unit / 2); background-color: $background-color; border: 1px solid $grey-color-light; border-radius: 5px; @@ -158,7 +158,7 @@ .footer-heading { @include relative-font-size(1.125); - margin-bottom: $spacing-unit / 2; + margin-bottom: calc($spacing-unit / 2); } .contact-list, @@ -170,14 +170,14 @@ .footer-col-wrapper { @include relative-font-size(0.9375); color: $grey-color; - margin-left: -$spacing-unit / 2; + margin-left: calc($spacing-unit / -2); @extend %clearfix; } .footer-col { float: left; - margin-bottom: $spacing-unit / 2; - padding-left: $spacing-unit / 2; + margin-bottom: calc($spacing-unit / 2); + padding-left: calc($spacing-unit / 2); } .footer-col-1 { diff --git a/blog/_site/2011/03/15/a-new-logo-for-a-new-blog/index.html b/blog/_site/2011/03/15/a-new-logo-for-a-new-blog/index.html index 6c0996967..b185a106d 100644 --- a/blog/_site/2011/03/15/a-new-logo-for-a-new-blog/index.html +++ b/blog/_site/2011/03/15/a-new-logo-for-a-new-blog/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A New Logo for a New Blog | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-03-15T08:39:00-04:00","datePublished":"2011-03-15T08:39:00-04:00","description":"We’ve come a long way, readers. What started as a fun project to scratch an itch has become a fun project that pays for its ever-increasing self. This week I’m going to show how motivated I am about turning NewsBlur into a serious blog reader. And it starts with a collection of a circles:","headline":"A New Logo for a New Blog","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/03/15/a-new-logo-for-a-new-blog/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/03/15/a-new-logo-for-a-new-blog/"} diff --git a/blog/_site/2011/04/01/explaining-intelligence/index.html b/blog/_site/2011/04/01/explaining-intelligence/index.html index dd20d2ce8..c302f75d6 100644 --- a/blog/_site/2011/04/01/explaining-intelligence/index.html +++ b/blog/_site/2011/04/01/explaining-intelligence/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Explaining Intelligence | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-04-01T11:11:33-04:00","datePublished":"2011-04-01T11:11:33-04:00","description":"If you’re not using intelligence classifiers, you’re only getting half the value out of NewsBlur. ","headline":"Explaining Intelligence","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/04/01/explaining-intelligence/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/04/01/explaining-intelligence/"} diff --git a/blog/_site/2011/04/23/where-we-are-in-april/index.html b/blog/_site/2011/04/23/where-we-are-in-april/index.html index c7c32dbe6..ea8462bdd 100644 --- a/blog/_site/2011/04/23/where-we-are-in-april/index.html +++ b/blog/_site/2011/04/23/where-we-are-in-april/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Where We Are in April | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-04-23T14:57:02-04:00","datePublished":"2011-04-23T14:57:02-04:00","description":"Hi readers, I want to take a moment to share what I’m working on for the month of April:","headline":"Where We Are in April","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/04/23/where-we-are-in-april/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/04/23/where-we-are-in-april/"} diff --git a/blog/_site/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/index.html b/blog/_site/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/index.html index 2c78e29fd..e367b26cb 100644 --- a/blog/_site/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/index.html +++ b/blog/_site/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Make your own feed reader with NewsBlur’s new API | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-04-26T06:41:00-04:00","datePublished":"2011-04-26T06:41:00-04:00","description":"Please vote for this blog post on Hacker News: http://news.ycombinator.com/item?id=2485377.","headline":"Make your own feed reader with NewsBlur’s new API","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/"} diff --git a/blog/_site/2011/08/09/blar-a-new-android-app-for-newsblur/index.html b/blog/_site/2011/08/09/blar-a-new-android-app-for-newsblur/index.html index 4883f7fdb..2dbb60f4e 100644 --- a/blog/_site/2011/08/09/blar-a-new-android-app-for-newsblur/index.html +++ b/blog/_site/2011/08/09/blar-a-new-android-app-for-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Blar: A new Android app for NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-08-09T09:44:00-04:00","datePublished":"2011-08-09T09:44:00-04:00","description":"This Summer is shaping up to be the season for mobile apps. Blar, a new Android client for NewsBlur, has just been released. It’s available on the Android Market here: https://market.android.com/details?id=bitwrit.Blar. It is created by Harris Munir, who you can contact through his site.","headline":"Blar: A new Android app for NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/08/09/blar-a-new-android-app-for-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/08/09/blar-a-new-android-app-for-newsblur/"} diff --git a/blog/_site/2011/09/30/customizing-the-reader-step-1-story-titles/index.html b/blog/_site/2011/09/30/customizing-the-reader-step-1-story-titles/index.html index 103183283..e4e920613 100644 --- a/blog/_site/2011/09/30/customizing-the-reader-step-1-story-titles/index.html +++ b/blog/_site/2011/09/30/customizing-the-reader-step-1-story-titles/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Customizing the reader, step 1: story titles | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-09-30T09:40:30-04:00","datePublished":"2011-09-30T09:40:30-04:00","description":"The iPhone app is now only a few days away from launching. But it took 3 weeks of sitting around in the App Store approval queue before getting here. During that time, I started working on the new customizations that folks have been asking for.","headline":"Customizing the reader, step 1: story titles","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/09/30/customizing-the-reader-step-1-story-titles/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/09/30/customizing-the-reader-step-1-story-titles/"} diff --git a/blog/_site/2011/10/26/a-social-feed-reader/index.html b/blog/_site/2011/10/26/a-social-feed-reader/index.html index 666c449f4..6edcb0bbc 100644 --- a/blog/_site/2011/10/26/a-social-feed-reader/index.html +++ b/blog/_site/2011/10/26/a-social-feed-reader/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A Social Feed Reader | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2011-10-26T11:41:23-04:00","datePublished":"2011-10-26T11:41:23-04:00","description":"NewsBlur was released exactly one year ago. You can read the initial reaction on Hacker News: http://news.ycombinator.com/item?id=1834305. Since then, so much has changed and all for the better. Usage is up—way, way up. Premium users are helping the site run. Load times are approaching the goal of less than 100 ms (0.10 sec) per page. In short, things couldn’t be better.","headline":"A Social Feed Reader","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2011/10/26/a-social-feed-reader/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2011/10/26/a-social-feed-reader/"} diff --git a/blog/_site/2012/01/16/2011-year-in-review/index.html b/blog/_site/2012/01/16/2011-year-in-review/index.html index 574de198f..f412401b0 100644 --- a/blog/_site/2012/01/16/2011-year-in-review/index.html +++ b/blog/_site/2012/01/16/2011-year-in-review/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> 2011: Year in Review | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-01-16T20:47:00-05:00","datePublished":"2012-01-16T20:47:00-05:00","description":"Twelve months can be a quick flyby if you don’t stop to write everything down. Luckily, a habit I’ve kept since July 2009, when I started recording monthly goals for my project, is still going strong.","headline":"2011: Year in Review","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/01/16/2011-year-in-review/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/01/16/2011-year-in-review/"} diff --git a/blog/_site/2012/02/29/ssl-stripejs/index.html b/blog/_site/2012/02/29/ssl-stripejs/index.html index dc84c7387..7a157e821 100644 --- a/blog/_site/2012/02/29/ssl-stripejs/index.html +++ b/blog/_site/2012/02/29/ssl-stripejs/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> SSL & Stripe.js | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-02-29T15:45:00-05:00","datePublished":"2012-02-29T15:45:00-05:00","description":"Two big announcements today:","headline":"SSL & Stripe.js","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/02/29/ssl-stripejs/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/02/29/ssl-stripejs/"} diff --git a/blog/_site/2012/03/01/going-full-time/index.html b/blog/_site/2012/03/01/going-full-time/index.html index c8d605146..a73a6458e 100644 --- a/blog/_site/2012/03/01/going-full-time/index.html +++ b/blog/_site/2012/03/01/going-full-time/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> From project to profession: going indie on NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-03-01T11:48:00-05:00","datePublished":"2012-03-01T11:48:00-05:00","description":"Exactly four months ago, Jason Kottke found my project, NewsBlur, and tweeted:","headline":"From project to profession: going indie on NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/03/01/going-full-time/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/03/01/going-full-time/"} diff --git a/blog/_site/2012/03/14/mobile-app-web-feeds-nokia-meego/index.html b/blog/_site/2012/03/14/mobile-app-web-feeds-nokia-meego/index.html index 2798f5394..b7376dd71 100644 --- a/blog/_site/2012/03/14/mobile-app-web-feeds-nokia-meego/index.html +++ b/blog/_site/2012/03/14/mobile-app-web-feeds-nokia-meego/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> New mobile app for NewsBlur: Web Feeds for Nokia MeeGo | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-03-14T13:14:00-04:00","datePublished":"2012-03-14T13:14:00-04:00","description":"And what a gorgeous mobile app it is. App developer Róbert Márki just released Web Feeds, the first NewsBlur app for Nokia MeeGo. Take a look at these screenshots:","headline":"New mobile app for NewsBlur: Web Feeds for Nokia MeeGo","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/03/14/mobile-app-web-feeds-nokia-meego/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/03/14/mobile-app-web-feeds-nokia-meego/"} diff --git a/blog/_site/2012/03/16/knight-news-challenge/index.html b/blog/_site/2012/03/16/knight-news-challenge/index.html index 95af06ce2..77fdff2b9 100644 --- a/blog/_site/2012/03/16/knight-news-challenge/index.html +++ b/blog/_site/2012/03/16/knight-news-challenge/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Knight News Challenge: NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-03-16T11:29:00-04:00","datePublished":"2012-03-16T11:29:00-04:00","description":"Knight News Challenge: NewsBlur","headline":"Knight News Challenge: NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/03/16/knight-news-challenge/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/03/16/knight-news-challenge/"} diff --git a/blog/_site/2012/04/02/building-real-time-feed-updates-for-newsblur/index.html b/blog/_site/2012/04/02/building-real-time-feed-updates-for-newsblur/index.html index b63303967..28c245418 100644 --- a/blog/_site/2012/04/02/building-real-time-feed-updates-for-newsblur/index.html +++ b/blog/_site/2012/04/02/building-real-time-feed-updates-for-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Building real-time feed updates for NewsBlur with Redis and WebSockets | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-04-02T17:52:00-04:00","datePublished":"2012-04-02T17:52:00-04:00","description":"Today, NewsBlur is going real-time. Blogs using the PubSubHubbub protocol (PuSH), which includes all Blogger, Tumblr, and many Wordpress blogs, will instantaneously show new updates to subscribers on NewsBlur. Making this happen, while not for the faint of heart, was straight-forward enough that I’m sharing the recipe I used to get everything hooked up and running smoothly.","headline":"Building real-time feed updates for NewsBlur with Redis and WebSockets","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/04/02/building-real-time-feed-updates-for-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/04/02/building-real-time-feed-updates-for-newsblur/"} diff --git a/blog/_site/2012/07/30/introducing-blurblogs-roy-and-y-combinator/index.html b/blog/_site/2012/07/30/introducing-blurblogs-roy-and-y-combinator/index.html index 1b3a9e257..0eeee6e09 100644 --- a/blog/_site/2012/07/30/introducing-blurblogs-roy-and-y-combinator/index.html +++ b/blog/_site/2012/07/30/introducing-blurblogs-roy-and-y-combinator/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Introducing Blurblogs, Roy, and Y Combinator | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-07-30T11:22:00-04:00","datePublished":"2012-07-30T11:22:00-04:00","description":"What a difference a few months make. NewsBlur was a side-project of mine for two years. In March of this year, I committed myself full-time and went from developing NewsBlur almost entirely on the NYC subway to writing code every waking minute of the day. And now there are three big announcements to make. # 1. NewsBlur is now a *social* news reader The big news of the day is that you can now share stories on NewsBlur. When you share a story, your comments and the original story are posted to your blurblog. Your blurblog is a simple and customizable website. People can comment and reply directly on your blurblog, and you can follow your friends to read the news stories and blog posts that they care about.Since you’re good at picking your friends, and your friends are good at picking their friends, you will see friends of friends show up, expanding your network with shared stories that you will enjoy. It’s a new way of sharing the news. And because NewsBlur is already an easy to use news reader, it’s simple to find and share stories that your friends will care about. Every NewsBlur user has their own blurblog. All you have to do is signup for an account on www.newsblur.com and share interesting stories. # 2. Y Combinator For those of you who work with computer science, you may know that a Y-combinator generalizes recursion, abstracting its implementation, and thereby separating it from the actual work of the function in question.[^1] I’m pleased as punch to announce an investment in NewsBlur by Y Combinator, the investment firm. Over the past two months, we’ve been humbled by the roster of experienced partners giving us candid advice. It’s their tough love that is the catalyst for the next few months of transitioning NewsBlur from side project to world-class news reader. Expect NewsBlur to become simpler and more refined. # 3. Introducing Roy Yang When Y Combinator accepted me as a solo founder, their first piece of advice was to find a co-founder. Looking at every successful startup, a common pattern emerges. Every great startup has multiple people carrying the load when the company takes off. There is one person on this planet that I would trust as a co-founder. His name is Roy Yang and we have been friends since we met in New York four years ago. We worked together for nearly two years at Daylife, another news startup. I attended his wedding last year in Mexico, and he was the only person I called when I knew I needed somebody talented, focused, and able to complement me on a project that demands enormous time and effort.Roy is now responsible for both iOS apps and is instrumental in challenging me when I think I’m right and am clearly not. He’s got the patience of a monk and the determination of a true New Yorker. Follow Roy’s blurblog to keep up with him. # A glimpse into the future of NewsBlur This summer marks the beginning of NewsBlur as a full-time startup. Look forward to new mobile apps, new designs, and new features. Here’s a quick idea of what we’re working on for the next few weeks:","headline":"Introducing Blurblogs, Roy, and Y Combinator","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/07/30/introducing-blurblogs-roy-and-y-combinator/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/07/30/introducing-blurblogs-roy-and-y-combinator/"} diff --git a/blog/_site/2012/09/05/newsblur-ipad-app/index.html b/blog/_site/2012/09/05/newsblur-ipad-app/index.html index 9ee6b3545..9d2af5865 100644 --- a/blog/_site/2012/09/05/newsblur-ipad-app/index.html +++ b/blog/_site/2012/09/05/newsblur-ipad-app/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Take it to the couch with the NewsBlur iPad app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-09-05T08:21:00-04:00","datePublished":"2012-09-05T08:21:00-04:00","description":"There’s no wrong way to hold an iPad loaded with the brand new NewsBlur iPad app, provided it’s facing you and turned on.","headline":"Take it to the couch with the NewsBlur iPad app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/09/05/newsblur-ipad-app/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/09/05/newsblur-ipad-app/"} diff --git a/blog/_site/2012/10/01/giving-life-to-popular/index.html b/blog/_site/2012/10/01/giving-life-to-popular/index.html index fcdd7bcfe..c7bf23c5a 100644 --- a/blog/_site/2012/10/01/giving-life-to-popular/index.html +++ b/blog/_site/2012/10/01/giving-life-to-popular/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Giving Life to “The People Have Spoken” | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-10-01T17:52:00-04:00","datePublished":"2012-10-01T17:52:00-04:00","description":"For a long time, we’ve maintained The People Have Spoken, the blog of what’s popular on NewsBlur, with a simple algorithm that measured how often something was shared. While that’s a great way to see the stuff our users really like (Randall Munroe would probably win the NewsBlur equivalent of the Oscar), it makes it harder for everyone to find new stuff that they might not have seen or heard of before. So we’ve decided to throw a human into the mix. I’ll let Allie introduce herself in her own words:","headline":"Giving Life to “The People Have Spoken”","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/10/01/giving-life-to-popular/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/10/01/giving-life-to-popular/"} diff --git a/blog/_site/2012/10/18/do-the-robot-the-official-newsblur-android-app-is/index.html b/blog/_site/2012/10/18/do-the-robot-the-official-newsblur-android-app-is/index.html index bac90b259..3d43fcfc7 100644 --- a/blog/_site/2012/10/18/do-the-robot-the-official-newsblur-android-app-is/index.html +++ b/blog/_site/2012/10/18/do-the-robot-the-official-newsblur-android-app-is/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Do the robot: the official NewsBlur Android app is here | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-10-18T11:47:00-04:00","datePublished":"2012-10-18T11:47:00-04:00","description":"You’ve been bugging us for two years about it, and now it’s finally here: NewsBlur’s expansion to mobile is complete, with our first-ever official Android app ready and waiting for your device. Thanks to the gifts of money and time from Y Combinator and the programming prowess of Papermill creator Ryan Bateman (otherwise known as @secretsquirrel), you can now join your iOS brethren on the couch with your daily dose of RSS goodness. Level of accompanying smugness is up to you.","headline":"Do the robot: the official NewsBlur Android app is here","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/10/18/do-the-robot-the-official-newsblur-android-app-is/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/10/18/do-the-robot-the-official-newsblur-android-app-is/"} diff --git a/blog/_site/2012/10/26/ios-update-1-6/index.html b/blog/_site/2012/10/26/ios-update-1-6/index.html index 6f5b6bd12..f9d17ae60 100644 --- a/blog/_site/2012/10/26/ios-update-1-6/index.html +++ b/blog/_site/2012/10/26/ios-update-1-6/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Extreme makeover: NewsBlur iOS app edition | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-10-26T14:37:00-04:00","datePublished":"2012-10-26T14:37:00-04:00","description":"Now that NewsBlur has joined the wonderful world of Android, we’re turning our attention back to the iOS app, with a full-scale feature parity push for the new iPhone 5 and iOS 6. It’s perfect for catching up on your reading when you realize that Apple Maps has sent you to the wrong address. Again.","headline":"Extreme makeover: NewsBlur iOS app edition","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/10/26/ios-update-1-6/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/10/26/ios-update-1-6/"} diff --git a/blog/_site/2012/10/29/free-newsblur-swag-time/index.html b/blog/_site/2012/10/29/free-newsblur-swag-time/index.html index 4961b4d18..36a29f1f3 100644 --- a/blog/_site/2012/10/29/free-newsblur-swag-time/index.html +++ b/blog/_site/2012/10/29/free-newsblur-swag-time/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Time for some free NewsBlur swag! | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-10-29T15:38:00-04:00","datePublished":"2012-10-29T15:38:00-04:00","description":"That’s right, t-shirts, stickers, buttons, and magnets. I’ve got a whole lot of good stuff to send out, so give me some critical info and I’ll get you hooked up with the latest in startup love.","headline":"Time for some free NewsBlur swag!","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/10/29/free-newsblur-swag-time/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/10/29/free-newsblur-swag-time/"} diff --git a/blog/_site/2012/12/17/sharing-bookmarklet/index.html b/blog/_site/2012/12/17/sharing-bookmarklet/index.html index c88af3b98..471acd488 100644 --- a/blog/_site/2012/12/17/sharing-bookmarklet/index.html +++ b/blog/_site/2012/12/17/sharing-bookmarklet/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The sharing bookmarklet: bringing your online explorations to NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2012-12-17T12:04:00-05:00","datePublished":"2012-12-17T12:04:00-05:00","description":"There are lots of reasons not to post a cool article you’ve seen to your blurblog. Maybe you already follow too many blogs, and don’t have room to add any more to your feed (in which case, may we humbly recommend a Premium account?) Maybe you don’t want everyone to know just how crazy you’ve gotten about jai-alai or aerotrekking or My Little Pony: Friendship Is Magic. Or maybe you found a cool article on Facebook or Twitter or through an e-mail from a friend, and don’t want to go through the hassle of adding the site’s whole feed to your NewsBlur dashboard just to post one piece.","headline":"The sharing bookmarklet: bringing your online explorations to NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2012/12/17/sharing-bookmarklet/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2012/12/17/sharing-bookmarklet/"} diff --git a/blog/_site/2013/01/03/privacy-controls/index.html b/blog/_site/2013/01/03/privacy-controls/index.html index c2bbe1064..849055520 100644 --- a/blog/_site/2013/01/03/privacy-controls/index.html +++ b/blog/_site/2013/01/03/privacy-controls/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A blurblog of one’s own: new privacy controls | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-01-03T00:00:00-05:00","datePublished":"2013-01-03T00:00:00-05:00","description":"Here at NewsBlur HQ, we love greeting each new day by seeing what everyone posts on their blurblogs, but we understand that not everyone might want to have their reading preferences broadcast to the public (or have the public broadcast its opinions on said preferences). So we’re introducing a special new service for premium account holders that allows you to protect your posts from prying eyes.","headline":"A blurblog of one’s own: new privacy controls","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/01/03/privacy-controls/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/01/03/privacy-controls/"} diff --git a/blog/_site/2013/03/17/three-months-to-scale-newsblur/index.html b/blog/_site/2013/03/17/three-months-to-scale-newsblur/index.html index 0420c1b46..94e0c38c7 100644 --- a/blog/_site/2013/03/17/three-months-to-scale-newsblur/index.html +++ b/blog/_site/2013/03/17/three-months-to-scale-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Three Months to Scale NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-03-17T17:24:00-04:00","datePublished":"2013-03-17T17:24:00-04:00","description":"At 4:16pm last Wednesday I got a short and to-the-point email from Nilay Patel at The Verge with only a link that started with the host “googlereader.blogspot.com”. The sudden spike in NewsBlur’s visitors immediately confirmed — Google was shutting down Reader.","headline":"Three Months to Scale NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/03/17/three-months-to-scale-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/03/17/three-months-to-scale-newsblur/"} diff --git a/blog/_site/2013/05/20/the-newsblur-redesign/index.html b/blog/_site/2013/05/20/the-newsblur-redesign/index.html index 43d670eda..4031df98a 100644 --- a/blog/_site/2013/05/20/the-newsblur-redesign/index.html +++ b/blog/_site/2013/05/20/the-newsblur-redesign/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The NewsBlur Redesign | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-05-20T22:47:00-04:00","datePublished":"2013-05-20T22:47:00-04:00","description":"Not to say that NewsBlur was ugly before today, but it certainly didn’t have the loving embrace of a talented designer. So without waiting another moment (or month) I proudly present the NewsBlur redesign.","headline":"The NewsBlur Redesign","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/05/20/the-newsblur-redesign/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/05/20/the-newsblur-redesign/"} diff --git a/blog/_site/2013/05/23/keyboard-shortcuts-manager/index.html b/blog/_site/2013/05/23/keyboard-shortcuts-manager/index.html index fb4f1d0b9..1efb25735 100644 --- a/blog/_site/2013/05/23/keyboard-shortcuts-manager/index.html +++ b/blog/_site/2013/05/23/keyboard-shortcuts-manager/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Keyboard Shortcuts Manager | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-05-23T09:01:00-04:00","datePublished":"2013-05-23T09:01:00-04:00","description":"Hot on the heels of the redesign launch, I’m already putting out new features. There are a number of post-redesign priorities on my list, but one of the most requested features is to customize the keyboard shortcuts.","headline":"Keyboard Shortcuts Manager","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/05/23/keyboard-shortcuts-manager/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/05/23/keyboard-shortcuts-manager/"} diff --git a/blog/_site/2013/05/30/read-newsblur-on-your-mac-with-the-new-readkit/index.html b/blog/_site/2013/05/30/read-newsblur-on-your-mac-with-the-new-readkit/index.html index 129d66566..65a98f1af 100644 --- a/blog/_site/2013/05/30/read-newsblur-on-your-mac-with-the-new-readkit/index.html +++ b/blog/_site/2013/05/30/read-newsblur-on-your-mac-with-the-new-readkit/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Read NewsBlur on your Mac with the new ReadKit | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-05-30T12:12:16-04:00","datePublished":"2013-05-30T12:12:16-04:00","description":"ReadKit, a native Mac app for reading Instapaper, Pocket, and NewsBlur on your desktop, completes the RSS reading trifecta. NewsBlur has a web app, native iOS app, and now a native Mac app.","headline":"Read NewsBlur on your Mac with the new ReadKit","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/05/30/read-newsblur-on-your-mac-with-the-new-readkit/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/05/30/read-newsblur-on-your-mac-with-the-new-readkit/"} diff --git a/blog/_site/2013/06/04/text-view-comes-to-the-newsblur-ios-app/index.html b/blog/_site/2013/06/04/text-view-comes-to-the-newsblur-ios-app/index.html index 59cd7bdd6..98f2d20ce 100644 --- a/blog/_site/2013/06/04/text-view-comes-to-the-newsblur-ios-app/index.html +++ b/blog/_site/2013/06/04/text-view-comes-to-the-newsblur-ios-app/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Text view comes to the NewsBlur iOS app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-06-04T08:31:18-04:00","datePublished":"2013-06-04T08:31:18-04:00","description":"The iOS apps are finding themselves host to a whole slew of additions and enhancements. Today I get to tell you about the iOS app’s newest feature: the Text view.","headline":"Text view comes to the NewsBlur iOS app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/06/04/text-view-comes-to-the-newsblur-ios-app/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/06/04/text-view-comes-to-the-newsblur-ios-app/"} diff --git a/blog/_site/2013/07/24/newsblur-puzzle-t-shirt-2013/index.html b/blog/_site/2013/07/24/newsblur-puzzle-t-shirt-2013/index.html index 3d4b8be8b..eee0c73c1 100644 --- a/blog/_site/2013/07/24/newsblur-puzzle-t-shirt-2013/index.html +++ b/blog/_site/2013/07/24/newsblur-puzzle-t-shirt-2013/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur Puzzle T-shirt 2013 | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-07-24T15:49:00-04:00","datePublished":"2013-07-24T15:49:00-04:00","description":"Last year I was proud to be able to send a free t-shirt and handwritten note to every single user who requested one. It took a few days of writing, stuffing, and mailing to send out a couple hundred t-shirts.","headline":"NewsBlur Puzzle T-shirt 2013","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/07/24/newsblur-puzzle-t-shirt-2013/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/07/24/newsblur-puzzle-t-shirt-2013/"} diff --git a/blog/_site/2013/07/30/simple-search-for-feeds-saved-stories-and-blurblogs/index.html b/blog/_site/2013/07/30/simple-search-for-feeds-saved-stories-and-blurblogs/index.html index 1b9e7c8b1..a974bb689 100644 --- a/blog/_site/2013/07/30/simple-search-for-feeds-saved-stories-and-blurblogs/index.html +++ b/blog/_site/2013/07/30/simple-search-for-feeds-saved-stories-and-blurblogs/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Simple Search for Feeds, Saved Stories, and Blurblogs | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-07-30T12:38:23-04:00","datePublished":"2013-07-30T12:38:23-04:00","description":"Search, which can easily be considered one of the most important features of a world-class news reader, is also one of the most difficult features to build.","headline":"Simple Search for Feeds, Saved Stories, and Blurblogs","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/07/30/simple-search-for-feeds-saved-stories-and-blurblogs/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/07/30/simple-search-for-feeds-saved-stories-and-blurblogs/"} diff --git a/blog/_site/2013/09/13/mark-as-read-by-number-of-days-and-other/index.html b/blog/_site/2013/09/13/mark-as-read-by-number-of-days-and-other/index.html index d96f860f6..9b795a6fd 100644 --- a/blog/_site/2013/09/13/mark-as-read-by-number-of-days-and-other/index.html +++ b/blog/_site/2013/09/13/mark-as-read-by-number-of-days-and-other/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Mark as read by number of days and other improvements | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-09-13T17:05:55-04:00","datePublished":"2013-09-13T17:05:55-04:00","description":"Here’s a few big improvements for the NewsBlur website.","headline":"Mark as read by number of days and other improvements","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/09/13/mark-as-read-by-number-of-days-and-other/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/09/13/mark-as-read-by-number-of-days-and-other/"} diff --git a/blog/_site/2013/09/16/upping-unread-stories-to-30-days-for-premium/index.html b/blog/_site/2013/09/16/upping-unread-stories-to-30-days-for-premium/index.html index 5f036ad57..f1b13b65e 100644 --- a/blog/_site/2013/09/16/upping-unread-stories-to-30-days-for-premium/index.html +++ b/blog/_site/2013/09/16/upping-unread-stories-to-30-days-for-premium/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Upping unread stories to 30 days for premium accounts | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-09-16T17:09:14-04:00","datePublished":"2013-09-16T17:09:14-04:00","description":"While I love shipping new features and fixing bugs, the single largest user request was neither a feature nor a bug. NewsBlur allows for two weeks of unread stories. Once a story is more than 14 days old, it would no longer show up as unread. The justification for this was simple: you have a week to read a story, and have a second week as a grace period.","headline":"Upping unread stories to 30 days for premium accounts","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/09/16/upping-unread-stories-to-30-days-for-premium/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/09/16/upping-unread-stories-to-30-days-for-premium/"} diff --git a/blog/_site/2013/09/17/offline-reading-with-the-newsblur-ios-app/index.html b/blog/_site/2013/09/17/offline-reading-with-the-newsblur-ios-app/index.html index d24dc2a06..d7e3ae72f 100644 --- a/blog/_site/2013/09/17/offline-reading-with-the-newsblur-ios-app/index.html +++ b/blog/_site/2013/09/17/offline-reading-with-the-newsblur-ios-app/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Offline reading with the NewsBlur iOS app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-09-17T12:46:00-04:00","datePublished":"2013-09-17T12:46:00-04:00","description":"Today I’m launching version 3.0 of the iPhone and iPad app for NewsBlur. This major update brings loads of big features that combine to make the world’s best iOS news reader with the fastest sync in town.","headline":"Offline reading with the NewsBlur iOS app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/09/17/offline-reading-with-the-newsblur-ios-app/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/09/17/offline-reading-with-the-newsblur-ios-app/"} diff --git a/blog/_site/2013/10/28/the-newsblur-iphone-and-ipad-app-meets-ios-7/index.html b/blog/_site/2013/10/28/the-newsblur-iphone-and-ipad-app-meets-ios-7/index.html index c10dcaf4f..6cb8aeb90 100644 --- a/blog/_site/2013/10/28/the-newsblur-iphone-and-ipad-app-meets-ios-7/index.html +++ b/blog/_site/2013/10/28/the-newsblur-iphone-and-ipad-app-meets-ios-7/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The NewsBlur iPhone and iPad app meets iOS 7 | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-10-28T09:53:00-04:00","datePublished":"2013-10-28T09:53:00-04:00","description":"Apple’s latest operating system for iOS is a departure from their old aesthetic. So I’ve decided to give the NewsBlur iOS app a slightly new look. But even more than how the app looks is how the app works. Tons of new features made it into this mega-release.","headline":"The NewsBlur iPhone and iPad app meets iOS 7","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/10/28/the-newsblur-iphone-and-ipad-app-meets-ios-7/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/10/28/the-newsblur-iphone-and-ipad-app-meets-ios-7/"} diff --git a/blog/_site/2013/11/18/version-3-0-of-the-newsblur-android-app/index.html b/blog/_site/2013/11/18/version-3-0-of-the-newsblur-android-app/index.html index 65109ce72..8cca1fba7 100644 --- a/blog/_site/2013/11/18/version-3-0-of-the-newsblur-android-app/index.html +++ b/blog/_site/2013/11/18/version-3-0-of-the-newsblur-android-app/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Version 3.0 of the NewsBlur Android App | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-11-18T16:51:00-05:00","datePublished":"2013-11-18T16:51:00-05:00","description":"Hot on the heels of version 3.0 of the NewsBlur iOS app comes the next version of the Android app. A bunch of new features have made it into this release, including the new story navigation pane and the text view.","headline":"Version 3.0 of the NewsBlur Android App","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/11/18/version-3-0-of-the-newsblur-android-app/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/11/18/version-3-0-of-the-newsblur-android-app/"} diff --git a/blog/_site/2013/12/19/background-updates-and-dynamic-font-sizing-on-the/index.html b/blog/_site/2013/12/19/background-updates-and-dynamic-font-sizing-on-the/index.html index bb8385c62..9a3f981b7 100644 --- a/blog/_site/2013/12/19/background-updates-and-dynamic-font-sizing-on-the/index.html +++ b/blog/_site/2013/12/19/background-updates-and-dynamic-font-sizing-on-the/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Background updates and dynamic font sizing on the NewsBlur iOS app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2013-12-19T10:38:00-05:00","datePublished":"2013-12-19T10:38:00-05:00","description":"This week brings us a minor, but major, update for the NewsBlur iOS app. Several new features, some due to new APIs in iOS 7, have made it into the app.","headline":"Background updates and dynamic font sizing on the NewsBlur iOS app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2013/12/19/background-updates-and-dynamic-font-sizing-on-the/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2013/12/19/background-updates-and-dynamic-font-sizing-on-the/"} diff --git a/blog/_site/2014/01/03/faster-parallel-network-requests-for-version-35/index.html b/blog/_site/2014/01/03/faster-parallel-network-requests-for-version-35/index.html index dddb87830..656a2bb32 100644 --- a/blog/_site/2014/01/03/faster-parallel-network-requests-for-version-35/index.html +++ b/blog/_site/2014/01/03/faster-parallel-network-requests-for-version-35/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Faster parallel network requests for version 3.5 of the NewsBlur Android app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-01-03T11:35:00-05:00","datePublished":"2014-01-03T11:35:00-05:00","description":"The single biggest criticism I’ve heard of the Android app is that it can be slow when loading feeds and then loading stories. That changes today with the release of version 3.5 of the NewsBlur Android app.","headline":"Faster parallel network requests for version 3.5 of the NewsBlur Android app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/01/03/faster-parallel-network-requests-for-version-35/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/01/03/faster-parallel-network-requests-for-version-35/"} diff --git a/blog/_site/2014/01/06/three-new-features-for-the-web-syntax/index.html b/blog/_site/2014/01/06/three-new-features-for-the-web-syntax/index.html index 5a70191b4..27d5c8402 100644 --- a/blog/_site/2014/01/06/three-new-features-for-the-web-syntax/index.html +++ b/blog/_site/2014/01/06/three-new-features-for-the-web-syntax/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-01-06T12:46:00-05:00","datePublished":"2014-01-06T12:46:00-05:00","description":"A few small new features to get your first full week of the new year started off right.","headline":"Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/01/06/three-new-features-for-the-web-syntax/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/01/06/three-new-features-for-the-web-syntax/"} diff --git a/blog/_site/2014/01/14/saved-story-tagging/index.html b/blog/_site/2014/01/14/saved-story-tagging/index.html index b3d2de576..7183c3e36 100644 --- a/blog/_site/2014/01/14/saved-story-tagging/index.html +++ b/blog/_site/2014/01/14/saved-story-tagging/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Saved story tagging | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-01-14T10:39:00-05:00","datePublished":"2014-01-14T10:39:00-05:00","description":"It’s one thing to follow a handful of sites and use NewsBlur’s training to only read the stories you want to read. But sometimes you want to come back to stories long after you’ve read them. You could save the story, but then you would have to either scroll down your saved story list to find the story, or use the new search feature to find it by title or author.","headline":"Saved story tagging","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/01/14/saved-story-tagging/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/01/14/saved-story-tagging/"} diff --git a/blog/_site/2014/02/20/connect-newsblur-to-dozens-of-web-services-with/index.html b/blog/_site/2014/02/20/connect-newsblur-to-dozens-of-web-services-with/index.html index fe954f433..69e9534f8 100644 --- a/blog/_site/2014/02/20/connect-newsblur-to-dozens-of-web-services-with/index.html +++ b/blog/_site/2014/02/20/connect-newsblur-to-dozens-of-web-services-with/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Connect NewsBlur to dozens of web services with IFTTT | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-02-20T09:11:28-05:00","datePublished":"2014-02-20T09:11:28-05:00","description":"Wouldn’t it be nice if there was a way to automatically copy your saved stories over to Evernote or Twitter or Pinboard? What about an automatic way to keep track of your unread focus (trained) stories in Buffer or Delicious or Dropbox?","headline":"Connect NewsBlur to dozens of web services with IFTTT","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/02/20/connect-newsblur-to-dozens-of-web-services-with/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/02/20/connect-newsblur-to-dozens-of-web-services-with/"} diff --git a/blog/_site/2014/03/10/newsblur-ios-40-features-a-new-dashboard/index.html b/blog/_site/2014/03/10/newsblur-ios-40-features-a-new-dashboard/index.html index 387e63ce2..343cb596b 100644 --- a/blog/_site/2014/03/10/newsblur-ios-40-features-a-new-dashboard/index.html +++ b/blog/_site/2014/03/10/newsblur-ios-40-features-a-new-dashboard/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur iOS 4.0 features a new dashboard, gestures and sharing controls | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-03-10T10:48:08-04:00","datePublished":"2014-03-10T10:48:08-04:00","description":"Today marks the release of version 4.0 of the NewsBlur iOS app. To illustrate the significance of this release I’d like to talk about where the app has been.","headline":"NewsBlur iOS 4.0 features a new dashboard, gestures and sharing controls","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/03/10/newsblur-ios-40-features-a-new-dashboard/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/03/10/newsblur-ios-40-features-a-new-dashboard/"} diff --git a/blog/_site/2014/03/13/google-reader-announced-its-shutdown-exactly-a-year-ago/index.html b/blog/_site/2014/03/13/google-reader-announced-its-shutdown-exactly-a-year-ago/index.html index 778dd1d19..052849e6d 100644 --- a/blog/_site/2014/03/13/google-reader-announced-its-shutdown-exactly-a-year-ago/index.html +++ b/blog/_site/2014/03/13/google-reader-announced-its-shutdown-exactly-a-year-ago/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Google Reader announced its shutdown exactly a year ago | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-03-13T14:27:00-04:00","datePublished":"2014-03-13T14:27:00-04:00","description":"In this industry, you gotta be tough.","headline":"Google Reader announced its shutdown exactly a year ago","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/03/13/google-reader-announced-its-shutdown-exactly-a-year-ago/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/03/13/google-reader-announced-its-shutdown-exactly-a-year-ago/"} diff --git a/blog/_site/2014/04/10/the-new-font-and-style-manager/index.html b/blog/_site/2014/04/10/the-new-font-and-style-manager/index.html index faf02701c..84bfeae71 100644 --- a/blog/_site/2014/04/10/the-new-font-and-style-manager/index.html +++ b/blog/_site/2014/04/10/the-new-font-and-style-manager/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The new font and style manager | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-04-10T11:53:11-04:00","datePublished":"2014-04-10T11:53:11-04:00","description":"This is not just any font and style manager. You now have control over font size, line spacing, story layout, and type faces directly in the reading view. This nifty popover gives you quick access to all of these customizable features.","headline":"The new font and style manager","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/04/10/the-new-font-and-style-manager/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/04/10/the-new-font-and-style-manager/"} diff --git a/blog/_site/2014/04/24/unread-is-a-new-ios-app-with-newsblur-support/index.html b/blog/_site/2014/04/24/unread-is-a-new-ios-app-with-newsblur-support/index.html index 42e74bbcf..4a2394ca9 100644 --- a/blog/_site/2014/04/24/unread-is-a-new-ios-app-with-newsblur-support/index.html +++ b/blog/_site/2014/04/24/unread-is-a-new-ios-app-with-newsblur-support/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Unread is a new iOS app with NewsBlur support | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-04-24T11:56:00-04:00","datePublished":"2014-04-24T11:56:00-04:00","description":"NewsBlur has a free and open API that all of the native mobile apps and website are built on. But the API is not just for official apps. Numerous third-party developers have built apps on the API and today I’m proud to announce a new native iOS app has launched with NewsBlur support.","headline":"Unread is a new iOS app with NewsBlur support","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/04/24/unread-is-a-new-ios-app-with-newsblur-support/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/04/24/unread-is-a-new-ios-app-with-newsblur-support/"} diff --git a/blog/_site/2014/04/29/full-text-search-across-all-of-your-subscriptions-and/index.html b/blog/_site/2014/04/29/full-text-search-across-all-of-your-subscriptions-and/index.html index c4a5fcf5e..acd0b8a8e 100644 --- a/blog/_site/2014/04/29/full-text-search-across-all-of-your-subscriptions-and/index.html +++ b/blog/_site/2014/04/29/full-text-search-across-all-of-your-subscriptions-and/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Full text search across all of your subscriptions and folders | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-04-29T04:45:28-04:00","datePublished":"2014-04-29T04:45:28-04:00","description":"Last Summer Simple Search was launched, giving you the ability to search a single feed at a time. Obviously not ideal, but it was far less effort than the big enchilada: full text search across every site you subscribe to. It took a few months to come back to attack the full problem, but that means I could also take the time to do it right.","headline":"Full text search across all of your subscriptions and folders","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/04/29/full-text-search-across-all-of-your-subscriptions-and/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/04/29/full-text-search-across-all-of-your-subscriptions-and/"} diff --git a/blog/_site/2014/06/03/use-the-new-saved-stories-view-to-find-saved/index.html b/blog/_site/2014/06/03/use-the-new-saved-stories-view-to-find-saved/index.html index 1ace46818..e34f7bc6a 100644 --- a/blog/_site/2014/06/03/use-the-new-saved-stories-view-to-find-saved/index.html +++ b/blog/_site/2014/06/03/use-the-new-saved-stories-view-to-find-saved/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Use the new Saved Stories view to find saved stories by site | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-06-03T15:40:00-04:00","datePublished":"2014-06-03T15:40:00-04:00","description":"After launching Saved Story Tagging earlier this year, I realized that there is an inherent categorization to every saved story: the site. But instead of just allowing you to search by site, I created a new view that you can now use to see stories saved by site.","headline":"Use the new Saved Stories view to find saved stories by site","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/06/03/use-the-new-saved-stories-view-to-find-saved/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/06/03/use-the-new-saved-stories-view-to-find-saved/"} diff --git a/blog/_site/2014/06/17/temporarily-mute-sites/index.html b/blog/_site/2014/06/17/temporarily-mute-sites/index.html index e7bf8afd1..439692540 100644 --- a/blog/_site/2014/06/17/temporarily-mute-sites/index.html +++ b/blog/_site/2014/06/17/temporarily-mute-sites/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Temporarily mute sites | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-06-17T12:09:59-04:00","datePublished":"2014-06-17T12:09:59-04:00","description":"You can now temporarily turn off sites by going to Manage > Mute Sites. This is for those feeds you want to keep but ignore for a while.","headline":"Temporarily mute sites","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/06/17/temporarily-mute-sites/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/06/17/temporarily-mute-sites/"} diff --git a/blog/_site/2014/06/27/read-what-youve-read-recently-with-the-new/index.html b/blog/_site/2014/06/27/read-what-youve-read-recently-with-the-new/index.html index d0048c5ad..145352c74 100644 --- a/blog/_site/2014/06/27/read-what-youve-read-recently-with-the-new/index.html +++ b/blog/_site/2014/06/27/read-what-youve-read-recently-with-the-new/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Read what you’ve read recently with the new recently read stories feed | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-06-27T07:00:36-04:00","datePublished":"2014-06-27T07:00:36-04:00","description":"Like it says on the tin, you can now go back and see what you’ve read with the Recently Read Stories feed. It’s on the bottom of your feed list, just above the saved stories.","headline":"Read what you’ve read recently with the new recently read stories feed","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/06/27/read-what-youve-read-recently-with-the-new/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/06/27/read-what-youve-read-recently-with-the-new/"} diff --git a/blog/_site/2014/07/22/adjust-the-font-size-of-feed-and-story-titles/index.html b/blog/_site/2014/07/22/adjust-the-font-size-of-feed-and-story-titles/index.html index 62c92872f..acd843f60 100644 --- a/blog/_site/2014/07/22/adjust-the-font-size-of-feed-and-story-titles/index.html +++ b/blog/_site/2014/07/22/adjust-the-font-size-of-feed-and-story-titles/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Adjust the font size of feed and story titles | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-07-22T06:30:26-04:00","datePublished":"2014-07-22T06:30:26-04:00","description":"It was only a few months ago back in April that I launched the new font and style manager. Today I’m coming back to finish the job.","headline":"Adjust the font size of feed and story titles","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/07/22/adjust-the-font-size-of-feed-and-story-titles/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/07/22/adjust-the-font-size-of-feed-and-story-titles/"} diff --git a/blog/_site/2014/07/23/reeder-and-newsblur-sitting-in-a-tree/index.html b/blog/_site/2014/07/23/reeder-and-newsblur-sitting-in-a-tree/index.html index df886d954..0a263d412 100644 --- a/blog/_site/2014/07/23/reeder-and-newsblur-sitting-in-a-tree/index.html +++ b/blog/_site/2014/07/23/reeder-and-newsblur-sitting-in-a-tree/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Reeder and NewsBlur, sitting in a tree… | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-07-23T12:45:57-04:00","datePublished":"2014-07-23T12:45:57-04:00","description":"…S-Y-N-C-I-N-G.","headline":"Reeder and NewsBlur, sitting in a tree…","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/07/23/reeder-and-newsblur-sitting-in-a-tree/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/07/23/reeder-and-newsblur-sitting-in-a-tree/"} diff --git a/blog/_site/2014/08/21/a-downtime-irony/index.html b/blog/_site/2014/08/21/a-downtime-irony/index.html index 21e8ae638..fdba9071f 100644 --- a/blog/_site/2014/08/21/a-downtime-irony/index.html +++ b/blog/_site/2014/08/21/a-downtime-irony/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A Downtime Irony | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-08-21T21:08:24-04:00","datePublished":"2014-08-21T21:08:24-04:00","description":"So many things can go wrong and often do, but I spend a good third of my time working on infrastructure, monitoring, and analytics so that they don’t.","headline":"A Downtime Irony","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/08/21/a-downtime-irony/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/08/21/a-downtime-irony/"} diff --git a/blog/_site/2014/09/22/newsblurs-2014-t-shirt-on-sale-for-this-week-only/index.html b/blog/_site/2014/09/22/newsblurs-2014-t-shirt-on-sale-for-this-week-only/index.html index 5835084ee..c789ae346 100644 --- a/blog/_site/2014/09/22/newsblurs-2014-t-shirt-on-sale-for-this-week-only/index.html +++ b/blog/_site/2014/09/22/newsblurs-2014-t-shirt-on-sale-for-this-week-only/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur’s 2014 t-shirt on sale for this week only | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-09-22T12:20:20-04:00","datePublished":"2014-09-22T12:20:20-04:00","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"NewsBlur’s 2014 t-shirt on sale for this week only","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/09/22/newsblurs-2014-t-shirt-on-sale-for-this-week-only/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/09/22/newsblurs-2014-t-shirt-on-sale-for-this-week-only/"} diff --git a/blog/_site/2014/10/15/newsblur-ios-v45-iphone-6-and-ios-8-full-bleed/index.html b/blog/_site/2014/10/15/newsblur-ios-v45-iphone-6-and-ios-8-full-bleed/index.html index 7fdbd7422..cf0db1c2c 100644 --- a/blog/_site/2014/10/15/newsblur-ios-v45-iphone-6-and-ios-8-full-bleed/index.html +++ b/blog/_site/2014/10/15/newsblur-ios-v45-iphone-6-and-ios-8-full-bleed/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur iOS v4.5: iPhone 6 and iOS 8, full bleed images, alt text, and more | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-10-15T15:25:12-04:00","datePublished":"2014-10-15T15:25:12-04:00","description":"This week’s update to the official NewsBlur iOS app brings a whole lot of oft-requested features and improvements. Here’s what’s new this month:","headline":"NewsBlur iOS v4.5: iPhone 6 and iOS 8, full bleed images, alt text, and more","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/10/15/newsblur-ios-v45-iphone-6-and-ios-8-full-bleed/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/10/15/newsblur-ios-v45-iphone-6-and-ios-8-full-bleed/"} diff --git a/blog/_site/2014/10/31/a-new-way-to-use-the-story-view-while-on-https/index.html b/blog/_site/2014/10/31/a-new-way-to-use-the-story-view-while-on-https/index.html index 0a98fe07c..b63569201 100644 --- a/blog/_site/2014/10/31/a-new-way-to-use-the-story-view-while-on-https/index.html +++ b/blog/_site/2014/10/31/a-new-way-to-use-the-story-view-while-on-https/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A new way to use the Story view while on https (SSL) | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-10-31T07:00:36-04:00","datePublished":"2014-10-31T07:00:36-04:00","description":"Modern browsers are taking your privacy and security seriously with new restrictions for sites that use https. You can choose to use NewsBlur over https, which will encrypt your communications with NewsBlur and prevent eavesdroppers—hackers, the government, other people on the same wireless network as you—from seeing what you see. While that’s not necessary for everybody, SSL/https is a priority for some and NewsBlur supports this beautifully.","headline":"A new way to use the Story view while on https (SSL)","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/10/31/a-new-way-to-use-the-story-view-while-on-https/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/10/31/a-new-way-to-use-the-story-view-while-on-https/"} diff --git a/blog/_site/2014/11/18/offline-reading-and-a-dark-theme-on-the-android/index.html b/blog/_site/2014/11/18/offline-reading-and-a-dark-theme-on-the-android/index.html index 2b4f7ce00..b598ff99e 100644 --- a/blog/_site/2014/11/18/offline-reading-and-a-dark-theme-on-the-android/index.html +++ b/blog/_site/2014/11/18/offline-reading-and-a-dark-theme-on-the-android/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Offline reading and a dark theme on the Android app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-11-18T05:00:50-05:00","datePublished":"2014-11-18T05:00:50-05:00","description":"This is a huge release for the NewsBlur Android app. So much has happened in the last six months. We’ve had a big backend rewrite that makes the app feel like new. It’s faster, which is necessary to make the new offline reading feature really shine. Now you can read on your Android phone or tablet while on the train, underground, or just in airplane mode to save battery.","headline":"Offline reading and a dark theme on the Android app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/11/18/offline-reading-and-a-dark-theme-on-the-android/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/11/18/offline-reading-and-a-dark-theme-on-the-android/"} diff --git a/blog/_site/2014/12/15/the-ios-app-gets-search-and-saved-story-tagging/index.html b/blog/_site/2014/12/15/the-ios-app-gets-search-and-saved-story-tagging/index.html index fe17c4a51..dad3ec745 100644 --- a/blog/_site/2014/12/15/the-ios-app-gets-search-and-saved-story-tagging/index.html +++ b/blog/_site/2014/12/15/the-ios-app-gets-search-and-saved-story-tagging/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The iOS app gets search and saved story tagging | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2014-12-15T12:01:23-05:00","datePublished":"2014-12-15T12:01:23-05:00","description":"This month’s new iOS features are big, big features. Search made it on the web only a few months ago and is now available on the iOS app. You can also now easily add tags to saved stories, making it easier to organize and save stories you read for re-reading later.","headline":"The iOS app gets search and saved story tagging","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2014/12/15/the-ios-app-gets-search-and-saved-story-tagging/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2014/12/15/the-ios-app-gets-search-and-saved-story-tagging/"} diff --git a/blog/_site/2015/01/07/organize-your-subscriptions-with-the-new-organizer/index.html b/blog/_site/2015/01/07/organize-your-subscriptions-with-the-new-organizer/index.html index 6219fe39c..3fe0dfe05 100644 --- a/blog/_site/2015/01/07/organize-your-subscriptions-with-the-new-organizer/index.html +++ b/blog/_site/2015/01/07/organize-your-subscriptions-with-the-new-organizer/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Organize your subscriptions with the new Organizer | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-01-07T06:00:33-05:00","datePublished":"2015-01-07T06:00:33-05:00","description":"The beauty of NewsBlur is that you can start off with only a handful of subscriptions and naturally work your way up. This is actually the reason that free accounts cut off at 64 sites. When I started building NewsBlur in 2009 I only subscribed to 42 sites. Nowadays it’s closer to 200 sites.","headline":"Organize your subscriptions with the new Organizer","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/01/07/organize-your-subscriptions-with-the-new-organizer/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/01/07/organize-your-subscriptions-with-the-new-organizer/"} diff --git a/blog/_site/2015/03/13/bigger-story-previews-with-the-new-grid-view/index.html b/blog/_site/2015/03/13/bigger-story-previews-with-the-new-grid-view/index.html index c98282f92..e35061649 100644 --- a/blog/_site/2015/03/13/bigger-story-previews-with-the-new-grid-view/index.html +++ b/blog/_site/2015/03/13/bigger-story-previews-with-the-new-grid-view/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Bigger story previews with the new Grid view | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-03-13T11:03:38-04:00","datePublished":"2015-03-13T11:03:38-04:00","description":"There are currently three ways to read stories on NewsBlur:","headline":"Bigger story previews with the new Grid view","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/03/13/bigger-story-previews-with-the-new-grid-view/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/03/13/bigger-story-previews-with-the-new-grid-view/"} diff --git a/blog/_site/2015/04/30/a-real-solution-to-the-deprecated-youtube-api/index.html b/blog/_site/2015/04/30/a-real-solution-to-the-deprecated-youtube-api/index.html index fe852c837..12d3571fd 100644 --- a/blog/_site/2015/04/30/a-real-solution-to-the-deprecated-youtube-api/index.html +++ b/blog/_site/2015/04/30/a-real-solution-to-the-deprecated-youtube-api/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A real solution to the deprecated YouTube API | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-04-30T05:30:48-04:00","datePublished":"2015-04-30T05:30:48-04:00","description":"YouTube, owned by Google, deprecated their v2 APIs on April 20th, 2015, which means that RSS news readers can no longer watch for new videos. What a bummer!","headline":"A real solution to the deprecated YouTube API","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/04/30/a-real-solution-to-the-deprecated-youtube-api/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/04/30/a-real-solution-to-the-deprecated-youtube-api/"} diff --git a/blog/_site/2015/06/02/reply-to-shared-stories-that-have-no-comment/index.html b/blog/_site/2015/06/02/reply-to-shared-stories-that-have-no-comment/index.html index 26beca539..555c7a2eb 100644 --- a/blog/_site/2015/06/02/reply-to-shared-stories-that-have-no-comment/index.html +++ b/blog/_site/2015/06/02/reply-to-shared-stories-that-have-no-comment/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Reply to shared stories that have no comment | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-06-02T05:30:28-04:00","datePublished":"2015-06-02T05:30:28-04:00","description":"Used to be that a friend shares a story without commenting on it and you’d be out of luck in trying to reply or thank them for sharing it.","headline":"Reply to shared stories that have no comment","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/06/02/reply-to-shared-stories-that-have-no-comment/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/06/02/reply-to-shared-stories-that-have-no-comment/"} diff --git a/blog/_site/2015/06/23/read-stories-feed-and-a-rewritten-networking-stack/index.html b/blog/_site/2015/06/23/read-stories-feed-and-a-rewritten-networking-stack/index.html index 62ee9aae7..c68a303c8 100644 --- a/blog/_site/2015/06/23/read-stories-feed-and-a-rewritten-networking-stack/index.html +++ b/blog/_site/2015/06/23/read-stories-feed-and-a-rewritten-networking-stack/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Read Stories feed and a rewritten networking stack on v4.3.0 of the NewsBlur Android App | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-06-23T06:00:29-04:00","datePublished":"2015-06-23T06:00:29-04:00","description":"Today I’d like to announce the release of version 4.3.0 of the official NewsBlur Android app. Lots of goodies, bug fixes, speed ups, and more.","headline":"Read Stories feed and a rewritten networking stack on v4.3.0 of the NewsBlur Android App","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/06/23/read-stories-feed-and-a-rewritten-networking-stack/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/06/23/read-stories-feed-and-a-rewritten-networking-stack/"} diff --git a/blog/_site/2015/08/25/even-the-folders-have-rss-feeds/index.html b/blog/_site/2015/08/25/even-the-folders-have-rss-feeds/index.html index 55e356a0e..ad65248a6 100644 --- a/blog/_site/2015/08/25/even-the-folders-have-rss-feeds/index.html +++ b/blog/_site/2015/08/25/even-the-folders-have-rss-feeds/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Even the folders have RSS feeds | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-08-25T07:00:14-04:00","datePublished":"2015-08-25T07:00:14-04:00","description":"What would an RSS news reader be without its own RSS feeds? It’s be a pretty lonely reader is what.","headline":"Even the folders have RSS feeds","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/08/25/even-the-folders-have-rss-feeds/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/08/25/even-the-folders-have-rss-feeds/"} diff --git a/blog/_site/2015/10/01/lets-all-upgrade-to-version-450-of-the-newsblur/index.html b/blog/_site/2015/10/01/lets-all-upgrade-to-version-450-of-the-newsblur/index.html index 3449ab862..477c58795 100644 --- a/blog/_site/2015/10/01/lets-all-upgrade-to-version-450-of-the-newsblur/index.html +++ b/blog/_site/2015/10/01/lets-all-upgrade-to-version-450-of-the-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Let’s all upgrade to version 4.5.0 of the NewsBlur Android app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-10-01T18:54:51-04:00","datePublished":"2015-10-01T18:54:51-04:00","description":"Here we are today with version 4.5.0 of the NewsBlur Android App. This is a great release because we took our time to update and improve a number of things about the app.","headline":"Let’s all upgrade to version 4.5.0 of the NewsBlur Android app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/10/01/lets-all-upgrade-to-version-450-of-the-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/10/01/lets-all-upgrade-to-version-450-of-the-newsblur/"} diff --git a/blog/_site/2015/10/07/join-the-newsblur-ios-beta/index.html b/blog/_site/2015/10/07/join-the-newsblur-ios-beta/index.html index 4b415c9f5..8c985917f 100644 --- a/blog/_site/2015/10/07/join-the-newsblur-ios-beta/index.html +++ b/blog/_site/2015/10/07/join-the-newsblur-ios-beta/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Join the NewsBlur iOS beta | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-10-07T12:52:34-04:00","datePublished":"2015-10-07T12:52:34-04:00","description":"If you like living on the bleeding edge, you should join the NewsBlur iOS beta program. You’ll get access to the latest releases a few weeks before they go out publicly.","headline":"Join the NewsBlur iOS beta","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/10/07/join-the-newsblur-ios-beta/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/10/07/join-the-newsblur-ios-beta/"} diff --git a/blog/_site/2015/11/18/premium-fonts-comment-less-shares-in-app-safari/index.html b/blog/_site/2015/11/18/premium-fonts-comment-less-shares-in-app-safari/index.html index 891968ccf..09ab7077e 100644 --- a/blog/_site/2015/11/18/premium-fonts-comment-less-shares-in-app-safari/index.html +++ b/blog/_site/2015/11/18/premium-fonts-comment-less-shares-in-app-safari/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Premium fonts, comment-less shares, in-app Safari, and way, way more in version 5.0 of the NewsBlur iOS app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-11-18T12:21:44-05:00","datePublished":"2015-11-18T12:21:44-05:00","description":"Holy geez, this is a whopper of a release. Version 5.0 of the NewsBlur iOS app has lots and lots of new features, fixes for some long standing issues, and major performance improvements for reading stories.","headline":"Premium fonts, comment-less shares, in-app Safari, and way, way more in version 5.0 of the NewsBlur iOS app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/11/18/premium-fonts-comment-less-shares-in-app-safari/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/11/18/premium-fonts-comment-less-shares-in-app-safari/"} diff --git a/blog/_site/2015/12/10/better-embeds-for-twitter-instagram-and-imgur/index.html b/blog/_site/2015/12/10/better-embeds-for-twitter-instagram-and-imgur/index.html index 7d208f47b..6d4d4ed79 100644 --- a/blog/_site/2015/12/10/better-embeds-for-twitter-instagram-and-imgur/index.html +++ b/blog/_site/2015/12/10/better-embeds-for-twitter-instagram-and-imgur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Better embeds for Twitter, Instagram, and Imgur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2015-12-10T12:38:56-05:00","datePublished":"2015-12-10T12:38:56-05:00","description":"Every NewsBlur client, from the three official clients (web, iOS, and Android) to all third-party clients, should now be showing better embeds for Twitter, Instagram, and Imgur. Just take a look at these screenshots.","headline":"Better embeds for Twitter, Instagram, and Imgur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2015/12/10/better-embeds-for-twitter-instagram-and-imgur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2015/12/10/better-embeds-for-twitter-instagram-and-imgur/"} diff --git a/blog/_site/2016/01/15/improved-statistics/index.html b/blog/_site/2016/01/15/improved-statistics/index.html index 84377ca90..3348bdc61 100644 --- a/blog/_site/2016/01/15/improved-statistics/index.html +++ b/blog/_site/2016/01/15/improved-statistics/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Power users need powerful statistics | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-01-15T06:00:33-05:00","datePublished":"2016-01-15T06:00:33-05:00","description":"That’s why I’m pleased to introduce more advanced statistics for every single feed. The Statistics dialog now shows a heat graph of the times of day that stories are published as well as the days of the weeks.","headline":"Power users need powerful statistics","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/01/15/improved-statistics/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/01/15/improved-statistics/"} diff --git a/blog/_site/2016/01/28/search-for-pizza-with-your-android-device/index.html b/blog/_site/2016/01/28/search-for-pizza-with-your-android-device/index.html index 63ed66fd1..7527a95f1 100644 --- a/blog/_site/2016/01/28/search-for-pizza-with-your-android-device/index.html +++ b/blog/_site/2016/01/28/search-for-pizza-with-your-android-device/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Search for pizza with your Android device | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-01-28T14:26:36-05:00","datePublished":"2016-01-28T14:26:36-05:00","description":"I’m not sure what else you would search for, honestly. If not vanilla pizza, then perhaps a sicilian, or montanara, a deep-dish, slices of neapolitan, whole-wheat thin-crust, or stuffed crust?","headline":"Search for pizza with your Android device","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/01/28/search-for-pizza-with-your-android-device/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/01/28/search-for-pizza-with-your-android-device/"} diff --git a/blog/_site/2016/02/03/two-new-third-party-newsblur-apps-for-ios-and/index.html b/blog/_site/2016/02/03/two-new-third-party-newsblur-apps-for-ios-and/index.html index 3dc2d0e7c..794b386ce 100644 --- a/blog/_site/2016/02/03/two-new-third-party-newsblur-apps-for-ios-and/index.html +++ b/blog/_site/2016/02/03/two-new-third-party-newsblur-apps-for-ios-and/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Two new third-party NewsBlur apps for iOS and Windows | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-02-03T13:51:32-05:00","datePublished":"2016-02-03T13:51:32-05:00","description":"NewsBlur has an amazingly active third-party app community, thanks to the well documented NewsBlur API. Today I’d like to introduce you to two new apps built by developers on the NewsBlur API.","headline":"Two new third-party NewsBlur apps for iOS and Windows","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/02/03/two-new-third-party-newsblur-apps-for-ios-and/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/02/03/two-new-third-party-newsblur-apps-for-ios-and/"} diff --git a/blog/_site/2016/02/19/story-thumbnails-for-story-titles/index.html b/blog/_site/2016/02/19/story-thumbnails-for-story-titles/index.html index 5955ea67e..21cebecb7 100644 --- a/blog/_site/2016/02/19/story-thumbnails-for-story-titles/index.html +++ b/blog/_site/2016/02/19/story-thumbnails-for-story-titles/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Story thumbnails for story titles | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-02-19T06:30:10-05:00","datePublished":"2016-02-19T06:30:10-05:00","description":"The iOS app has enjoyed a feature that gives you a tiny preview of a story’s main image right in the story title. Today this feature launches on the web.","headline":"Story thumbnails for story titles","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/02/19/story-thumbnails-for-story-titles/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/02/19/story-thumbnails-for-story-titles/"} diff --git a/blog/_site/2016/03/03/tracking-story-changes-with-newsblur/index.html b/blog/_site/2016/03/03/tracking-story-changes-with-newsblur/index.html index 5f6f7390d..0a80183ef 100644 --- a/blog/_site/2016/03/03/tracking-story-changes-with-newsblur/index.html +++ b/blog/_site/2016/03/03/tracking-story-changes-with-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Tracking story changes with NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-03-03T12:55:11-05:00","datePublished":"2016-03-03T12:55:11-05:00","description":"NewsBlur has been tracking story changes for a long, long time now (first mentioned on the blog five years ago in April 2011). But I felt it was time for an upgrade and today I’m pleased to launch some changes to the story tracker.","headline":"Tracking story changes with NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/03/03/tracking-story-changes-with-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/03/03/tracking-story-changes-with-newsblur/"} diff --git a/blog/_site/2016/04/09/a-heavier-lifting-android-app/index.html b/blog/_site/2016/04/09/a-heavier-lifting-android-app/index.html index 446bad2d8..ec1f666d2 100644 --- a/blog/_site/2016/04/09/a-heavier-lifting-android-app/index.html +++ b/blog/_site/2016/04/09/a-heavier-lifting-android-app/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A heavier lifting Android app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-04-09T12:56:12-04:00","datePublished":"2016-04-09T12:56:12-04:00","description":"As performance updates go, this month’s upgrade to v4.8.0 of the NewsBlur Android app is a doozy. This one’s specifically made for those users with a heavier load of feeds.","headline":"A heavier lifting Android app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/04/09/a-heavier-lifting-android-app/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/04/09/a-heavier-lifting-android-app/"} diff --git a/blog/_site/2016/04/12/newsblur-goes-dark-on-ios/index.html b/blog/_site/2016/04/12/newsblur-goes-dark-on-ios/index.html index bd383ae3c..ecf45700c 100644 --- a/blog/_site/2016/04/12/newsblur-goes-dark-on-ios/index.html +++ b/blog/_site/2016/04/12/newsblur-goes-dark-on-ios/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur goes dark … on iOS | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-04-12T06:00:18-04:00","datePublished":"2016-04-12T06:00:18-04:00","description":"It’s like a whole new app. There’s so much to tell you about in the latest release of the NewsBlur iOS app. This is the release of all releases.","headline":"NewsBlur goes dark … on iOS","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/04/12/newsblur-goes-dark-on-ios/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/04/12/newsblur-goes-dark-on-ios/"} diff --git a/blog/_site/2016/06/01/twitters-back-baby/index.html b/blog/_site/2016/06/01/twitters-back-baby/index.html index 76663c0af..4ec9ab97a 100644 --- a/blog/_site/2016/06/01/twitters-back-baby/index.html +++ b/blog/_site/2016/06/01/twitters-back-baby/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Twitter’s back, baby | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-06-01T07:00:30-04:00","datePublished":"2016-06-01T07:00:30-04:00","description":"It’s been too long. Twitter unceremoniously knee-capped their API a few years ago and a number of solutions popped up to fix the loss. However, those stopgaps also closed and left us with no good ways to read Twitter while in NewsBlur. Until now, that is.","headline":"Twitter’s back, baby","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/06/01/twitters-back-baby/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/06/01/twitters-back-baby/"} diff --git a/blog/_site/2016/07/01/newsletters-in-your-newsblur/index.html b/blog/_site/2016/07/01/newsletters-in-your-newsblur/index.html index 8a1057218..d617dff9b 100644 --- a/blog/_site/2016/07/01/newsletters-in-your-newsblur/index.html +++ b/blog/_site/2016/07/01/newsletters-in-your-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Newsletters in your NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-07-01T07:00:16-04:00","datePublished":"2016-07-01T07:00:16-04:00","description":"It’s been three years to the day that Google Reader shut down. And here’s a feature they could never build. Introducing email newsletters in your RSS reader.","headline":"Newsletters in your NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/07/01/newsletters-in-your-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/07/01/newsletters-in-your-newsblur/"} diff --git a/blog/_site/2016/07/14/newsreel-is-a-newsblur-app-for-tv/index.html b/blog/_site/2016/07/14/newsreel-is-a-newsblur-app-for-tv/index.html index d635a4865..4f8b128f1 100644 --- a/blog/_site/2016/07/14/newsreel-is-a-newsblur-app-for-tv/index.html +++ b/blog/_site/2016/07/14/newsreel-is-a-newsblur-app-for-tv/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Newsreel is a NewsBlur app for tv | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2016-07-14T07:00:39-04:00","datePublished":"2016-07-14T07:00:39-04:00","description":"Check it out, David Berlin built Newsreel, a NewsBlur client for Apple TV. And from my first impression, it rocks. Just take a look at these screenshots.","headline":"Newsreel is a NewsBlur app for tv","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2016/07/14/newsreel-is-a-newsblur-app-for-tv/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2016/07/14/newsreel-is-a-newsblur-app-for-tv/"} diff --git a/blog/_site/2017/01/11/the-dashboard-river-will-keep-you-up-to-date-in/index.html b/blog/_site/2017/01/11/the-dashboard-river-will-keep-you-up-to-date-in/index.html index 47e552ac1..ae7cf62fa 100644 --- a/blog/_site/2017/01/11/the-dashboard-river-will-keep-you-up-to-date-in/index.html +++ b/blog/_site/2017/01/11/the-dashboard-river-will-keep-you-up-to-date-in/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The dashboard river will keep you up-to-date in real-time | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-01-11T06:00:21-05:00","datePublished":"2017-01-11T06:00:21-05:00","description":"This is a seriously cool feature and I’m glad it’s ready to launch. The dashboard river, the real-time stream of the top five stories of All Site Stories, is now on the dashboard of the web app.","headline":"The dashboard river will keep you up-to-date in real-time","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/01/11/the-dashboard-river-will-keep-you-up-to-date-in/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/01/11/the-dashboard-river-will-keep-you-up-to-date-in/"} diff --git a/blog/_site/2017/01/25/a-new-newsblur-android-release-for-the-new-year/index.html b/blog/_site/2017/01/25/a-new-newsblur-android-release-for-the-new-year/index.html index f96ac44d6..80a4ef9fb 100644 --- a/blog/_site/2017/01/25/a-new-newsblur-android-release-for-the-new-year/index.html +++ b/blog/_site/2017/01/25/a-new-newsblur-android-release-for-the-new-year/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> A new NewsBlur Android release for the new year | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-01-25T14:01:15-05:00","datePublished":"2017-01-25T14:01:15-05:00","description":"Version 5.0 has a bunch of new features. It’s got new gestures, better looking icons and thumbnail previews, and little UI design details to better match the rest of NewsBlur.","headline":"A new NewsBlur Android release for the new year","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/01/25/a-new-newsblur-android-release-for-the-new-year/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/01/25/a-new-newsblur-android-release-for-the-new-year/"} diff --git a/blog/_site/2017/02/02/preview-newsblurs-upcoming-hardware-device-turn/index.html b/blog/_site/2017/02/02/preview-newsblurs-upcoming-hardware-device-turn/index.html index a41a5e135..87aeef215 100644 --- a/blog/_site/2017/02/02/preview-newsblurs-upcoming-hardware-device-turn/index.html +++ b/blog/_site/2017/02/02/preview-newsblurs-upcoming-hardware-device-turn/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Preview NewsBlur’s upcoming hardware device, Turn Touch | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-02-02T05:00:24-05:00","datePublished":"2017-02-02T05:00:24-05:00","description":"I have something very exciting to share with you today. I’ve been working on a secret project called Turn Touch and I’m just about ready to show it to you. Signup on turntouch.com to find out.","headline":"Preview NewsBlur’s upcoming hardware device, Turn Touch","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/02/02/preview-newsblurs-upcoming-hardware-device-turn/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/02/02/preview-newsblurs-upcoming-hardware-device-turn/"} diff --git a/blog/_site/2017/02/07/introducing-turn-touch-a-beautiful-wooden-remote/index.html b/blog/_site/2017/02/07/introducing-turn-touch-a-beautiful-wooden-remote/index.html index 71b8aaea9..c194c6349 100644 --- a/blog/_site/2017/02/07/introducing-turn-touch-a-beautiful-wooden-remote/index.html +++ b/blog/_site/2017/02/07/introducing-turn-touch-a-beautiful-wooden-remote/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Introducing Turn Touch, a beautiful wooden remote for lights, devices, apps, and NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-02-07T09:32:32-05:00","datePublished":"2017-02-07T09:32:32-05:00","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"Introducing Turn Touch, a beautiful wooden remote for lights, devices, apps, and NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/02/07/introducing-turn-touch-a-beautiful-wooden-remote/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/02/07/introducing-turn-touch-a-beautiful-wooden-remote/"} diff --git a/blog/_site/2017/03/09/last-day-to-back-turn-touch-newsblurs-beautiful/index.html b/blog/_site/2017/03/09/last-day-to-back-turn-touch-newsblurs-beautiful/index.html index 193223d3d..fa5af1cb4 100644 --- a/blog/_site/2017/03/09/last-day-to-back-turn-touch-newsblurs-beautiful/index.html +++ b/blog/_site/2017/03/09/last-day-to-back-turn-touch-newsblurs-beautiful/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Last day to back Turn Touch: NewsBlur’s beautiful remote | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-03-09T05:00:33-05:00","datePublished":"2017-03-09T05:00:33-05:00","description":"This is it, the final countdown!","headline":"Last day to back Turn Touch: NewsBlur’s beautiful remote","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/03/09/last-day-to-back-turn-touch-newsblurs-beautiful/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/03/09/last-day-to-back-turn-touch-newsblurs-beautiful/"} diff --git a/blog/_site/2017/03/28/saved-searches-make-it-easy-to-create-custom-feeds/index.html b/blog/_site/2017/03/28/saved-searches-make-it-easy-to-create-custom-feeds/index.html index 88150869c..93591f946 100644 --- a/blog/_site/2017/03/28/saved-searches-make-it-easy-to-create-custom-feeds/index.html +++ b/blog/_site/2017/03/28/saved-searches-make-it-easy-to-create-custom-feeds/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Saved searches make it easy to create custom feeds | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-03-28T05:00:28-04:00","datePublished":"2017-03-28T05:00:28-04:00","description":"You can now save a search as a saved search feed. This works for individual sites, folders, All Site Stories, saved stories, and blurblogs.","headline":"Saved searches make it easy to create custom feeds","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/03/28/saved-searches-make-it-easy-to-create-custom-feeds/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/03/28/saved-searches-make-it-easy-to-create-custom-feeds/"} diff --git a/blog/_site/2017/05/09/newsblurs-twitter-support-just-got-a-whole-lot/index.html b/blog/_site/2017/05/09/newsblurs-twitter-support-just-got-a-whole-lot/index.html index 3b98edc8d..675e49a60 100644 --- a/blog/_site/2017/05/09/newsblurs-twitter-support-just-got-a-whole-lot/index.html +++ b/blog/_site/2017/05/09/newsblurs-twitter-support-just-got-a-whole-lot/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur’s Twitter support just got a whole lot better | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-05-09T05:30:03-04:00","datePublished":"2017-05-09T05:30:03-04:00","description":"It was a little under a year ago that I declared Twitter back, baby on this blog. In that time, NewsBlur users have created over 80,000 Twitter feeds in NewsBlur. Since it’s such a popular feature, I decided to dive back into the code and make tweets look a whole lot better.","headline":"NewsBlur’s Twitter support just got a whole lot better","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/05/09/newsblurs-twitter-support-just-got-a-whole-lot/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/05/09/newsblurs-twitter-support-just-got-a-whole-lot/"} diff --git a/blog/_site/2017/05/22/add-your-own-custom-css-and-custom-javascript-to/index.html b/blog/_site/2017/05/22/add-your-own-custom-css-and-custom-javascript-to/index.html index 0284732b6..a8371e61f 100644 --- a/blog/_site/2017/05/22/add-your-own-custom-css-and-custom-javascript-to/index.html +++ b/blog/_site/2017/05/22/add-your-own-custom-css-and-custom-javascript-to/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Add your own Custom CSS and Custom JavaScript to NewsBlur on the web | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-05-22T05:00:41-04:00","datePublished":"2017-05-22T05:00:41-04:00","description":"Ever wanted to customize NewsBlur on the web but didn’t want to install custom browser extensions so you could shoe-horn in monkey-patched code? And if you did use a browser extension, didn’t you just hate having to keep it synchronized between your computers? Just for you, NewsBlur now has two new fields: Custom CSS and Custom Javascript.","headline":"Add your own Custom CSS and Custom JavaScript to NewsBlur on the web","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/05/22/add-your-own-custom-css-and-custom-javascript-to/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/05/22/add-your-own-custom-css-and-custom-javascript-to/"} diff --git a/blog/_site/2017/05/23/newsblur-now-supports-the-new-json-feed-spec/index.html b/blog/_site/2017/05/23/newsblur-now-supports-the-new-json-feed-spec/index.html index 3a20db008..90fd44a4a 100644 --- a/blog/_site/2017/05/23/newsblur-now-supports-the-new-json-feed-spec/index.html +++ b/blog/_site/2017/05/23/newsblur-now-supports-the-new-json-feed-spec/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur now supports the new JSON Feed spec | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-05-23T05:00:11-04:00","datePublished":"2017-05-23T05:00:11-04:00","description":"Introduced and announced only last week by open web pioneers Manton Reece and Brent Simmons, JSON Feed is a new RSS-like spec that lets websites publish their stories in a much easier and human readable format.","headline":"NewsBlur now supports the new JSON Feed spec","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/05/23/newsblur-now-supports-the-new-json-feed-spec/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/05/23/newsblur-now-supports-the-new-json-feed-spec/"} diff --git a/blog/_site/2017/06/14/launching-real-time-filterable-push-notifications/index.html b/blog/_site/2017/06/14/launching-real-time-filterable-push-notifications/index.html index 397fc8d5e..960ddd1aa 100644 --- a/blog/_site/2017/06/14/launching-real-time-filterable-push-notifications/index.html +++ b/blog/_site/2017/06/14/launching-real-time-filterable-push-notifications/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Launching real-time filterable push notifications for iOS, Android, web, and email | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-06-14T05:00:17-04:00","datePublished":"2017-06-14T05:00:17-04:00","description":"For some sites, you want to know when they publish as soon as they publish. Maybe you want to immediately be notified of everything a site publishes, like a monthly meetup that posts an event only once a month. Or perhaps you want to be immediately notified of everything the NYTimes publishes about the companies in your stock portfolio. Or you just really enjoy reading your daily comics and want them emailed to you so you never miss a beat.","headline":"Launching real-time filterable push notifications for iOS, Android, web, and email","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/06/14/launching-real-time-filterable-push-notifications/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/06/14/launching-real-time-filterable-push-notifications/"} diff --git a/blog/_site/2017/10/24/improved-text-view-story-extraction/index.html b/blog/_site/2017/10/24/improved-text-view-story-extraction/index.html index 01c5b570b..7040206df 100644 --- a/blog/_site/2017/10/24/improved-text-view-story-extraction/index.html +++ b/blog/_site/2017/10/24/improved-text-view-story-extraction/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Improved Text view story extraction | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-10-24T16:17:25-04:00","datePublished":"2017-10-24T16:17:25-04:00","description":"The Text view is one of the most popular NewsBlur features. It’s available on all three platforms and gives you the full text of the original story, even in truncated RSS feeds. Up until today, NewsBlur’s implementation of the Text view used Readability’s open source text extractor.","headline":"Improved Text view story extraction","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/10/24/improved-text-view-story-extraction/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/10/24/improved-text-view-story-extraction/"} diff --git a/blog/_site/2017/12/11/infrequent-site-stories-is-the-blog-reader-we-need/index.html b/blog/_site/2017/12/11/infrequent-site-stories-is-the-blog-reader-we-need/index.html index bfa1ad469..06cabc89b 100644 --- a/blog/_site/2017/12/11/infrequent-site-stories-is-the-blog-reader-we-need/index.html +++ b/blog/_site/2017/12/11/infrequent-site-stories-is-the-blog-reader-we-need/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Infrequent Site Stories is the blog reader we need | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-12-11T06:00:15-05:00","datePublished":"2017-12-11T06:00:15-05:00","description":"Launching today on all three platforms—web, iOS, and Android—is the new Infrequent Site Stories view. This configurable river of news offers a view of stories only from the blogs that publish less often than 1 story per day.","headline":"Infrequent Site Stories is the blog reader we need","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/12/11/infrequent-site-stories-is-the-blog-reader-we-need/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/12/11/infrequent-site-stories-is-the-blog-reader-we-need/"} diff --git a/blog/_site/2017/12/11/intelligence-training-comes-to-newsblurs-android/index.html b/blog/_site/2017/12/11/intelligence-training-comes-to-newsblurs-android/index.html index eded8afb0..6a0f80690 100644 --- a/blog/_site/2017/12/11/intelligence-training-comes-to-newsblurs-android/index.html +++ b/blog/_site/2017/12/11/intelligence-training-comes-to-newsblurs-android/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Intelligence training comes to NewsBlur’s Android app | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-12-11T08:00:13-05:00","datePublished":"2017-12-11T08:00:13-05:00","description":"This is a big deal for Android users. The NewsBlur Android app now fully supports intelligence training and filtering, letting you filter out the stories you don’t want to read while highlighting the stories you do want by letting you filter titles, authors, tags, and the publisher.","headline":"Intelligence training comes to NewsBlur’s Android app","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/12/11/intelligence-training-comes-to-newsblurs-android/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/12/11/intelligence-training-comes-to-newsblurs-android/"} diff --git a/blog/_site/2017/12/11/newsblur-for-iphone-x/index.html b/blog/_site/2017/12/11/newsblur-for-iphone-x/index.html index f80731413..943c3b473 100644 --- a/blog/_site/2017/12/11/newsblur-for-iphone-x/index.html +++ b/blog/_site/2017/12/11/newsblur-for-iphone-x/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur for iPhone X | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2017-12-11T07:00:14-05:00","datePublished":"2017-12-11T07:00:14-05:00","description":"I’m proud to announce the launch of version 7.0 of the NewsBlur iOS app, complete with iPhone X support. There’s a lot that’s new and improved in this release.","headline":"NewsBlur for iPhone X","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2017/12/11/newsblur-for-iphone-x/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2017/12/11/newsblur-for-iphone-x/"} diff --git a/blog/_site/2018/04/17/moving-to-a-better-support-forum-at/index.html b/blog/_site/2018/04/17/moving-to-a-better-support-forum-at/index.html index 4bb589414..e30bebe26 100644 --- a/blog/_site/2018/04/17/moving-to-a-better-support-forum-at/index.html +++ b/blog/_site/2018/04/17/moving-to-a-better-support-forum-at/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Moving to a better support forum at forum.newsblur.com | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2018-04-17T17:22:11-04:00","datePublished":"2018-04-17T17:22:11-04:00","description":"It’s about time NewsBlur had more control of its own support forums. For the past 7 years (to the week!), NewsBlur has been using Get Satisfaction for support, ideas, questions, and praise.","headline":"Moving to a better support forum at forum.newsblur.com","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2018/04/17/moving-to-a-better-support-forum-at/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2018/04/17/moving-to-a-better-support-forum-at/"} diff --git a/blog/_site/2018/07/20/the-newsblur-android-app-hits-version-80-with-a/index.html b/blog/_site/2018/07/20/the-newsblur-android-app-hits-version-80-with-a/index.html index 2f622b04b..42f8f7eeb 100644 --- a/blog/_site/2018/07/20/the-newsblur-android-app-hits-version-80-with-a/index.html +++ b/blog/_site/2018/07/20/the-newsblur-android-app-hits-version-80-with-a/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The NewsBlur Android app hits version 8.0 with a new Grid view | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2018-07-20T06:14:29-04:00","datePublished":"2018-07-20T06:14:29-04:00","description":"Long popular on the NewsBlur web app, the Grid view has now come to the Android app. Have a look for yourself…","headline":"The NewsBlur Android app hits version 8.0 with a new Grid view","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2018/07/20/the-newsblur-android-app-hits-version-80-with-a/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2018/07/20/the-newsblur-android-app-hits-version-80-with-a/"} diff --git a/blog/_site/2018/10/31/the-newsblur-ios-app-also-hits-version-80/index.html b/blog/_site/2018/10/31/the-newsblur-ios-app-also-hits-version-80/index.html index 38dbd3330..a628bf05e 100644 --- a/blog/_site/2018/10/31/the-newsblur-ios-app-also-hits-version-80/index.html +++ b/blog/_site/2018/10/31/the-newsblur-ios-app-also-hits-version-80/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The NewsBlur iOS app also hits version 8.0 | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2018-10-31T09:16:24-04:00","datePublished":"2018-10-31T09:16:24-04:00","description":"Fresh off the heels of the Android app hitting version 8.0, today I’d like to announce the latest update to the iOS app. This is a huge release and it’s got a lot of new features packed in it. I also want to welcome David Sinclair back to the team. He’s the builder behind all the incredible features in this release. Really wonderful having you back, David, and thanks for making v8.0 of the best news reader on a phone.","headline":"The NewsBlur iOS app also hits version 8.0","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2018/10/31/the-newsblur-ios-app-also-hits-version-80/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2018/10/31/the-newsblur-ios-app-also-hits-version-80/"} diff --git a/blog/_site/2019/06/01/updates-to-the-android-app-and-a-new-addition-to/index.html b/blog/_site/2019/06/01/updates-to-the-android-app-and-a-new-addition-to/index.html index 16588030d..64988f660 100644 --- a/blog/_site/2019/06/01/updates-to-the-android-app-and-a-new-addition-to/index.html +++ b/blog/_site/2019/06/01/updates-to-the-android-app-and-a-new-addition-to/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Updates to the Android app and a new addition to the team | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2019-06-01T08:51:21-04:00","datePublished":"2019-06-01T08:51:21-04:00","description":"Today we have a nice update, version 9.0, of the Android app that includes a rewrite of the story management backend as well as fixes for some critical display issues.","headline":"Updates to the Android app and a new addition to the team","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2019/06/01/updates-to-the-android-app-and-a-new-addition-to/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2019/06/01/updates-to-the-android-app-and-a-new-addition-to/"} diff --git a/blog/_site/2019/07/01/newsblur-ios-v9-full-screen-autoscroll/index.html b/blog/_site/2019/07/01/newsblur-ios-v9-full-screen-autoscroll/index.html index 996e29b2a..cbb756b05 100644 --- a/blog/_site/2019/07/01/newsblur-ios-v9-full-screen-autoscroll/index.html +++ b/blog/_site/2019/07/01/newsblur-ios-v9-full-screen-autoscroll/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur iOS v9: full screen, autoscroll, customizable story titles, story change highlighter, and return to last read story | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2019-07-01T09:29:07-04:00","datePublished":"2019-07-01T09:29:07-04:00","description":"A whopper of a release with many, many new features!","headline":"NewsBlur iOS v9: full screen, autoscroll, customizable story titles, story change highlighter, and return to last read story","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2019/07/01/newsblur-ios-v9-full-screen-autoscroll/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2019/07/01/newsblur-ios-v9-full-screen-autoscroll/"} diff --git a/blog/_site/2019/08/15/secure-images-for-everybody/index.html b/blog/_site/2019/08/15/secure-images-for-everybody/index.html index b34a05786..9bac7d4ad 100644 --- a/blog/_site/2019/08/15/secure-images-for-everybody/index.html +++ b/blog/_site/2019/08/15/secure-images-for-everybody/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Secure images for everybody | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2019-08-15T10:59:11-04:00","datePublished":"2019-08-15T10:59:11-04:00","description":"There are two ways to connect to the NewsBlur website. The first is http://www.newsblur.com. The second is https://www.newsblur.com. The first is plain text and the second is encrypted. You get to choose which one you want to use.","headline":"Secure images for everybody","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2019/08/15/secure-images-for-everybody/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2019/08/15/secure-images-for-everybody/"} diff --git a/blog/_site/2020/02/26/catch-the-news-in-a-glimpse-with-the-new-newsblur/index.html b/blog/_site/2020/02/26/catch-the-news-in-a-glimpse-with-the-new-newsblur/index.html index 785b267b2..cb8da5961 100644 --- a/blog/_site/2020/02/26/catch-the-news-in-a-glimpse-with-the-new-newsblur/index.html +++ b/blog/_site/2020/02/26/catch-the-news-in-a-glimpse-with-the-new-newsblur/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Catch the news in a glimpse with the new NewsBlur Today View widget on iOS | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2020-02-26T08:53:22-05:00","datePublished":"2020-02-26T08:53:22-05:00","description":"Most of the time when we release a new feature, it finds immediate use. But every so often a new feature comes along that changes how NewsBlur gets used. I consider offline stories part of this exclusive club. Same with the Text view, which shows you the full text of a story. And push notifications are right up there.","headline":"Catch the news in a glimpse with the new NewsBlur Today View widget on iOS","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2020/02/26/catch-the-news-in-a-glimpse-with-the-new-newsblur/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2020/02/26/catch-the-news-in-a-glimpse-with-the-new-newsblur/"} diff --git a/blog/_site/2020/06/18/see-the-news-on-your-android-dashboard-with-the/index.html b/blog/_site/2020/06/18/see-the-news-on-your-android-dashboard-with-the/index.html index b98218007..2c67145a7 100644 --- a/blog/_site/2020/06/18/see-the-news-on-your-android-dashboard-with-the/index.html +++ b/blog/_site/2020/06/18/see-the-news-on-your-android-dashboard-with-the/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> See the news on your Android dashboard with the new home screen widget | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2020-06-18T16:06:04-04:00","datePublished":"2020-06-18T16:06:04-04:00","description":"Hot on the heels of the iOS widget release a few months ago, the Android widget is now ready to go!","headline":"See the news on your Android dashboard with the new home screen widget","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2020/06/18/see-the-news-on-your-android-dashboard-with-the/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2020/06/18/see-the-news-on-your-android-dashboard-with-the/"} diff --git a/blog/_site/2020/06/24/turn-the-lights-down-dark-mode-has-come-to/index.html b/blog/_site/2020/06/24/turn-the-lights-down-dark-mode-has-come-to/index.html index a79cb8714..161c1b5f0 100644 --- a/blog/_site/2020/06/24/turn-the-lights-down-dark-mode-has-come-to/index.html +++ b/blog/_site/2020/06/24/turn-the-lights-down-dark-mode-has-come-to/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Turn the lights down, dark mode has come to NewsBlur | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2020-06-24T11:29:59-04:00","datePublished":"2020-06-24T11:29:59-04:00","description":"We’ve had dark mode on iOS and Android for years but I’m now pleased to announce a worthy dark theme has come to the NewsBlur web app.","headline":"Turn the lights down, dark mode has come to NewsBlur","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2020/06/24/turn-the-lights-down-dark-mode-has-come-to/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2020/06/24/turn-the-lights-down-dark-mode-has-come-to/"} diff --git a/blog/_site/2020/07/17/highlight-passages-and-add-private-notes-on-saved/index.html b/blog/_site/2020/07/17/highlight-passages-and-add-private-notes-on-saved/index.html index d6f34f22a..ce0d35832 100644 --- a/blog/_site/2020/07/17/highlight-passages-and-add-private-notes-on-saved/index.html +++ b/blog/_site/2020/07/17/highlight-passages-and-add-private-notes-on-saved/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Highlight passages and add private notes to saved stories | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2020-07-17T08:30:05-04:00","datePublished":"2020-07-17T08:30:05-04:00","description":"When you’re reading a story and want to save a portion of it for personal use, you now have a couple new options. Highlighting is now available for all stories. Simply select the text you want to highlight and NewsBlur helpfully shows a tooltip that allows you to select a part of the text and save it.","headline":"Highlight passages and add private notes to saved stories","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2020/07/17/highlight-passages-and-add-private-notes-on-saved/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2020/07/17/highlight-passages-and-add-private-notes-on-saved/"} diff --git a/blog/_site/2020/10/28/customizable-grid-view-story-layout/index.html b/blog/_site/2020/10/28/customizable-grid-view-story-layout/index.html index 555fdae99..592df887f 100644 --- a/blog/_site/2020/10/28/customizable-grid-view-story-layout/index.html +++ b/blog/_site/2020/10/28/customizable-grid-view-story-layout/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Customizable grid view story layout | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2020-10-28T09:01:38-04:00","datePublished":"2020-10-28T09:01:38-04:00","description":"The grid view has quickly become one of my go-to story title views. It provides generous, clickable boxes with enlarged images and plenty of preview text. But until now, they were limited to a preset height.","headline":"Customizable grid view story layout","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2020/10/28/customizable-grid-view-story-layout/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2020/10/28/customizable-grid-view-story-layout/"} diff --git a/blog/_site/2020/11/03/android-app-update-premium-subscriptions-saved/index.html b/blog/_site/2020/11/03/android-app-update-premium-subscriptions-saved/index.html index c2db1e82a..3b63c3e83 100644 --- a/blog/_site/2020/11/03/android-app-update-premium-subscriptions-saved/index.html +++ b/blog/_site/2020/11/03/android-app-update-premium-subscriptions-saved/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Android app update: premium subscriptions, saved searches, in-app browser, auto-dark mode | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2020-11-03T07:41:03-05:00","datePublished":"2020-11-03T07:41:03-05:00","description":"For a point release this one sure is big. The Android app has been upgraded to include a bunch of features found on the web.","headline":"Android app update: premium subscriptions, saved searches, in-app browser, auto-dark mode","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2020/11/03/android-app-update-premium-subscriptions-saved/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2020/11/03/android-app-update-premium-subscriptions-saved/"} diff --git a/blog/_site/2021/06/28/story-of-a-hacking/index.html b/blog/_site/2021/06/28/story-of-a-hacking/index.html index be5590d3d..871822bba 100644 --- a/blog/_site/2021/06/28/story-of-a-hacking/index.html +++ b/blog/_site/2021/06/28/story-of-a-hacking/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> How a Docker footgun led to a vandal deleting NewsBlur’s MongoDB database | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2021-06-28T00:00:00-04:00","datePublished":"2021-06-28T00:00:00-04:00","description":"tl;dr: A vandal deleted NewsBlur’s MongoDB database during a migration. No data was stolen or lost.","headline":"How a Docker footgun led to a vandal deleting NewsBlur’s MongoDB database","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2021/06/28/story-of-a-hacking/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2021/06/28/story-of-a-hacking/"} diff --git a/blog/_site/2021/07/01/refreshing-newsblur-design/index.html b/blog/_site/2021/07/01/refreshing-newsblur-design/index.html index a08cb8ee9..5147dd278 100644 --- a/blog/_site/2021/07/01/refreshing-newsblur-design/index.html +++ b/blog/_site/2021/07/01/refreshing-newsblur-design/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Redesigning NewsBlur on the web, iOS, and Android | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2021-07-01T00:00:00-04:00","datePublished":"2021-07-01T00:00:00-04:00","description":"This past year we’ve focused on maintenance and improving quality behind the scenes. It just so happens that the urge to clean is so strong that this work extended to the front-end. After months of work, today we’re launching a redesigned NewsBlur for all three platforms: on the web, on iOS, and on Android. There’s a lot that’s new. And what better day to launch a redesign than on the ninth anniversary of the sunset of Google Reader.","headline":"Redesigning NewsBlur on the web, iOS, and Android","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2021/07/01/refreshing-newsblur-design/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2021/07/01/refreshing-newsblur-design/"} diff --git a/blog/_site/2022/03/10/magazine-view/index.html b/blog/_site/2022/03/10/magazine-view/index.html index cd8fc0f70..02e1b301b 100644 --- a/blog/_site/2022/03/10/magazine-view/index.html +++ b/blog/_site/2022/03/10/magazine-view/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Magazine view offers a new perspective | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-03-10T00:00:00-05:00","datePublished":"2022-03-10T00:00:00-05:00","description":"Here’s a nice feature that brings a new perspective to your stories. It’s called the Magazine view and features larger images, longer story content previews, and improved legibility of text.","headline":"Magazine view offers a new perspective","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2022/03/10/magazine-view/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2022/03/10/magazine-view/"} diff --git a/blog/_site/2022/03/28/redesigned-ios-layout/index.html b/blog/_site/2022/03/28/redesigned-ios-layout/index.html index 07c9b5aeb..fbce28407 100644 --- a/blog/_site/2022/03/28/redesigned-ios-layout/index.html +++ b/blog/_site/2022/03/28/redesigned-ios-layout/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> New gesture-based layout for the NewsBlur iPad App | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-03-28T00:00:00-04:00","datePublished":"2022-03-28T00:00:00-04:00","description":"We have a big update for you on iOS, complete with a redesigned layout engine. You’ll see this mostly on iPad, where you can now interactively swipe between panes, customize how many panes you see, and even customize where the story titles are on the screen relative to the story content.","headline":"New gesture-based layout for the NewsBlur iPad App","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2022/03/28/redesigned-ios-layout/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2022/03/28/redesigned-ios-layout/"} diff --git a/blog/_site/2022/07/01/dashboard-redesign-2022/index.html b/blog/_site/2022/07/01/dashboard-redesign-2022/index.html index 77b6eb115..ef0597766 100644 --- a/blog/_site/2022/07/01/dashboard-redesign-2022/index.html +++ b/blog/_site/2022/07/01/dashboard-redesign-2022/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> 2022 redesign: new dashboard layout, refreshed stories and story titles, and entirely redrawn icons | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-07-01T00:00:00-04:00","datePublished":"2022-07-01T00:00:00-04:00","description":"The launch of the new Premium Archive subscription tier also includes the 2022 redesign. You’ll see a third dashboard layout which stretches out your dashboard rivers across the width of the screen.","headline":"2022 redesign: new dashboard layout, refreshed stories and story titles, and entirely redrawn icons","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2022/07/01/dashboard-redesign-2022/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2022/07/01/dashboard-redesign-2022/"} diff --git a/blog/_site/2022/07/01/premium-archive-subscription/index.html b/blog/_site/2022/07/01/premium-archive-subscription/index.html index e5e2fd585..f09d7b36b 100644 --- a/blog/_site/2022/07/01/premium-archive-subscription/index.html +++ b/blog/_site/2022/07/01/premium-archive-subscription/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> NewsBlur Premium Archive subscription keeps all of your stories searchable, shareable, and unread forever | The NewsBlur Blog - + @@ -23,7 +23,7 @@ +{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2022-07-01T00:00:00-04:00","datePublished":"2022-07-01T00:00:00-04:00","description":"For $99/year every story from every site you subscribe to will stay in NewsBlur’s archive. This new premium tier also allows you to mark any story as unread as well as choose when stories are automatically marked as read. You can now have full control of your story archive, letting you search, share, and read stories forever without having to worry about them being deleted.","headline":"NewsBlur Premium Archive subscription keeps all of your stories searchable, shareable, and unread forever","mainEntityOfPage":{"@type":"WebPage","@id":"https://blog.newsblur.com/2022/07/01/premium-archive-subscription/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/2022/07/01/premium-archive-subscription/"} diff --git a/blog/_site/2023/12/06/ios-grid-view/index.html b/blog/_site/2023/12/06/ios-grid-view/index.html new file mode 100644 index 000000000..f7ee9dd27 --- /dev/null +++ b/blog/_site/2023/12/06/ios-grid-view/index.html @@ -0,0 +1,120 @@ + + + + + + + + + +Introducing the Grid view on iOS | The NewsBlur Blog + + + + + + + + + + + + + + + + + + + + +
+
+
+ +
+

Introducing the Grid view on iOS

+ +
+ +
+

The Grid view is now on iOS. Read stories with large thumbnails in a magazine-like format, where you can see a customizable number of story previews at once. Works beautifully for both iPhone and iPad. +

+ +

Just like on the web, you can customize how many stories you see and how large each story is, giving you the freedom to read stories with large thumbnails or small image previews.

+ +

+ +

It even works on iPhone!

+ +

+ +

If you have any other ideas you’d like to see on iPad and iPhone, feel free to post an idea on the NewsBlur Forum.

+ +

This is a huge release and has been a year in the making. Coming up soon: a new Mac app and intelligent feed discovery.

+ +
+
+ +
+
+ + + diff --git a/blog/_site/404.html b/blog/_site/404.html index d944e991c..4638aef8e 100644 --- a/blog/_site/404.html +++ b/blog/_site/404.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The NewsBlur Blog | A new sound of an old instrument - + @@ -18,10 +18,11 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/404.html"} diff --git a/blog/_site/assets/ipad-grid-1.png b/blog/_site/assets/ipad-grid-1.png new file mode 100644 index 000000000..0d0876f89 Binary files /dev/null and b/blog/_site/assets/ipad-grid-1.png differ diff --git a/blog/_site/assets/ipad-grid-2.png b/blog/_site/assets/ipad-grid-2.png new file mode 100644 index 000000000..d37958c26 Binary files /dev/null and b/blog/_site/assets/ipad-grid-2.png differ diff --git a/blog/_site/assets/iphone-grid.png b/blog/_site/assets/iphone-grid.png new file mode 100644 index 000000000..3117e52e1 Binary files /dev/null and b/blog/_site/assets/iphone-grid.png differ diff --git a/blog/_site/assets/main.css b/blog/_site/assets/main.css index ecfdef44b..66a936a10 100644 --- a/blog/_site/assets/main.css +++ b/blog/_site/assets/main.css @@ -5,7 +5,7 @@ body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { m body { font: 400 16px/1.5 "Whitney A", "Whitney B", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #111; background-color: #FDFCF3; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; } /** Set `margin-bottom` to maintain vertical rhythm */ -h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: 15px; } +h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: calc($spacing-unit / 2); } /** `main` element */ main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ } @@ -40,7 +40,7 @@ a:hover { color: #111; text-decoration: underline; } .social-media-list a:hover .username { text-decoration: underline; } /** Blockquotes */ -blockquote { color: #7a8878; border-left: 4px solid #e5e8e4; padding-left: 15px; font-size: 18px; letter-spacing: -1px; font-style: italic; } +blockquote { color: #7a8878; border-left: 4px solid #e5e8e4; padding-left: calc($spacing-unit / 2); font-size: 18px; letter-spacing: -1px; font-style: italic; } blockquote > :last-child { margin-bottom: 0; } @@ -56,7 +56,7 @@ pre > code { border: 0; padding-right: 0; padding-left: 0; } /** Wrapper */ .wrapper { max-width: -webkit-calc(800px - (30px * 2)); max-width: calc(800px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; } -@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: 15px; padding-left: 15px; } } +@media screen and (max-width: 800px) { .wrapper { max-width: -webkit-calc(800px - (30px)); max-width: calc(800px - (30px)); padding-right: calc($spacing-unit / 2); padding-left: calc($spacing-unit / 2); } } /** Clearfix */ .footer-col-wrapper:after, .wrapper:after { content: ""; display: table; clear: both; } @@ -71,7 +71,7 @@ table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; bord table tr:nth-child(even) { background-color: #f5f6f5; } -table th, table td { padding: 10px 15px; } +table th, table td { padding: calc(($spacing-unit / 3)) calc($spacing-unit / 2); } table th { background-color: #edefed; border: 1px solid #dadeda; border-bottom-color: #c5cbc4; } @@ -114,18 +114,18 @@ table td { border: 1px solid #e5e8e4; } .site-nav .page-link:not(:last-child) { margin-right: 20px; } -@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 15px; right: 15px; background-color: #FDFCF3; border: 1px solid #e5e8e4; border-radius: 5px; text-align: right; } .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } .site-nav .menu-icon > svg { fill: #3d443c; } .site-nav input ~ .trigger { clear: both; display: none; } .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } .site-nav .page-link:not(:last-child) { margin-right: 0; } } +@media screen and (max-width: 600px) { .site-nav { position: absolute; top: calc($spacing-unit / 2); right: calc($spacing-unit / 2); background-color: #FDFCF3; border: 1px solid #e5e8e4; border-radius: 5px; text-align: right; } .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } .site-nav .menu-icon > svg { fill: #3d443c; } .site-nav input ~ .trigger { clear: both; display: none; } .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } .site-nav .page-link:not(:last-child) { margin-right: 0; } } /** Site footer */ .site-footer { border-top: 1px solid #e5e8e4; padding: 30px 0; } -.footer-heading { font-size: 18px; margin-bottom: 15px; } +.footer-heading { font-size: 18px; margin-bottom: calc($spacing-unit / 2); } .contact-list, .social-media-list { list-style: none; margin-left: 0; } -.footer-col-wrapper { font-size: 15px; color: #7a8878; margin-left: -15px; } +.footer-col-wrapper { font-size: 15px; color: #7a8878; margin-left: calc($spacing-unit / -2); } -.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; } +.footer-col { float: left; margin-bottom: calc($spacing-unit / 2); padding-left: calc($spacing-unit / 2); } .footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); } diff --git a/blog/_site/assets/main.css.map b/blog/_site/assets/main.css.map index 7b3f6f182..5398b8927 100644 --- a/blog/_site/assets/main.css.map +++ b/blog/_site/assets/main.css.map @@ -11,10 +11,10 @@ "sourcesContent": [ "@import \"minima\";\n", "@charset \"utf-8\";\n\n// Define defaults for each variable.\n\n$base-font-family: \"Whitney A\", \"Whitney B\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\" !default;\n$base-font-size: 16px !default;\n$base-font-weight: 400 !default;\n$small-font-size: $base-font-size * 0.875 !default;\n$base-line-height: 1.5 !default;\n\n$spacing-unit: 30px !default;\n\n$text-color: #111 !default;\n$background-color: #FDFCF3 !default;\n$brand-color: #C66426 !default;\n$title-color: #1b3e63 !default;\n\n$grey-color: #7a8878 !default;\n$grey-color-light: lighten($grey-color, 40%) !default;\n$grey-color-dark: darken($grey-color, 25%) !default;\n\n$table-text-align: left !default;\n\n// Width of the content area\n$content-width: 800px !default;\n\n$on-palm: 600px !default;\n$on-laptop: 800px !default;\n\n// Use media queries like this:\n// @include media-query($on-palm) {\n// .wrapper {\n// padding-right: $spacing-unit / 2;\n// padding-left: $spacing-unit / 2;\n// }\n// }\n@mixin media-query($device) {\n @media screen and (max-width: $device) {\n @content;\n }\n}\n\n@mixin relative-font-size($ratio) {\n font-size: $base-font-size * $ratio;\n}\n\n// Import partials.\n@import\n \"minima/base\",\n \"minima/layout\",\n \"minima/syntax-highlighting\"\n;\n", - "/**\n * Reset some basic elements\n */\nbody, h1, h2, h3, h4, h5, h6,\np, blockquote, pre, hr,\ndl, dd, ol, ul, figure {\n margin: 0;\n padding: 0;\n}\n\n\n\n/**\n * Basic styling\n */\nbody {\n font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;\n color: $text-color;\n background-color: $background-color;\n -webkit-text-size-adjust: 100%;\n -webkit-font-feature-settings: \"kern\" 1;\n -moz-font-feature-settings: \"kern\" 1;\n -o-font-feature-settings: \"kern\" 1;\n font-feature-settings: \"kern\" 1;\n font-kerning: normal;\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n}\n\n\n\n/**\n * Set `margin-bottom` to maintain vertical rhythm\n */\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\nul, ol, dl, figure,\n%vertical-rhythm {\n margin-bottom: $spacing-unit / 2;\n}\n\n\n\n/**\n * `main` element\n */\nmain {\n display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */\n}\n\n\n\n/**\n * Images\n */\nimg {\n max-width: 100%;\n vertical-align: middle;\n}\n.post {\n img, video {\n max-width: 650px;\n vertical-align: middle;\n display: block;\n margin: 24px auto;\n }\n}\n\n\n/**\n * Figures\n */\nfigure > img {\n display: block;\n}\n\nfigcaption {\n font-size: $small-font-size;\n}\n\n\n\n/**\n * Lists\n */\nul, ol {\n margin-left: $spacing-unit;\n}\n\nli {\n > ul,\n > ol {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Headings\n */\nh1, h2, h3, h4, h5, h6 {\n font-weight: $base-font-weight;\n}\n\n\n\n/**\n * Links\n */\na {\n color: $brand-color;\n text-decoration: none;\n\n &:visited {\n color: darken($brand-color, 15%);\n }\n\n &:hover {\n color: $text-color;\n text-decoration: underline;\n }\n\n .social-media-list &:hover {\n text-decoration: none;\n\n .username {\n text-decoration: underline;\n }\n }\n}\n\n\n/**\n * Blockquotes\n */\nblockquote {\n color: $grey-color;\n border-left: 4px solid $grey-color-light;\n padding-left: $spacing-unit / 2;\n @include relative-font-size(1.125);\n letter-spacing: -1px;\n font-style: italic;\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Code formatting\n */\npre,\ncode {\n @include relative-font-size(0.9375);\n border: 1px solid $grey-color-light;\n border-radius: 3px;\n background-color: #eef;\n}\n\ncode {\n padding: 1px 5px;\n}\n\npre {\n padding: 8px 12px;\n overflow-x: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n\n > code {\n border: 0;\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n\n/**\n * Wrapper\n */\n.wrapper {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));\n max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));\n margin-right: auto;\n margin-left: auto;\n padding-right: $spacing-unit;\n padding-left: $spacing-unit;\n @extend %clearfix;\n\n @include media-query($on-laptop) {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));\n max-width: calc(#{$content-width} - (#{$spacing-unit}));\n padding-right: $spacing-unit / 2;\n padding-left: $spacing-unit / 2;\n }\n}\n\n\n\n/**\n * Clearfix\n */\n%clearfix:after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n\n\n/**\n * Icons\n */\n\n.svg-icon {\n width: 16px;\n height: 16px;\n display: inline-block;\n fill: #{$grey-color};\n padding-right: 5px;\n vertical-align: text-top;\n}\n\n.social-media-list {\n li + li {\n padding-top: 5px;\n }\n}\n\n\n\n/**\n * Tables\n */\ntable {\n margin-bottom: $spacing-unit;\n width: 100%;\n text-align: $table-text-align;\n color: lighten($text-color, 18%);\n border-collapse: collapse;\n border: 1px solid $grey-color-light;\n tr {\n &:nth-child(even) {\n background-color: lighten($grey-color-light, 6%);\n }\n }\n th, td {\n padding: ($spacing-unit / 3) ($spacing-unit / 2);\n }\n th {\n background-color: lighten($grey-color-light, 3%);\n border: 1px solid darken($grey-color-light, 4%);\n border-bottom-color: darken($grey-color-light, 12%);\n }\n td {\n border: 1px solid $grey-color-light;\n }\n}\n", - "/**\n * Site header\n */\n.site-header {\n border-top: 5px solid $title-color;\n border-bottom: 1px solid $grey-color-light;\n min-height: $spacing-unit * 1.865;\n position: sticky;\n top: 0;\n background-color: $background-color;\n\n .wrapper {\n display: flex;\n align-items: center;\n }\n}\n\n.site-subheader {\n padding: 12px 0;\n border-bottom: 1px solid $grey-color-light;\n background-color: rgb(245, 243, 220);\n .top {\n color: #574621;\n }\n .bottom {\n color: #887541;\n }\n}\n\n.site-title {\n @include relative-font-size(2.125);\n font-weight: 600;\n line-height: $base-line-height * $base-font-size * 2.25;\n letter-spacing: -1px;\n margin-bottom: 0;\n float: left;\n display: flex;\n align-items: center;\n\n &,\n &:visited {\n color: $title-color;\n }\n\n @include media-query($on-palm) {\n @include relative-font-size(1.625);\n }\n\n .site-title-image {\n float: left;\n margin: 8px 18px 8px 0;\n\n @include media-query($on-palm) {\n margin-top: 4px;\n }\n\n img {\n width: 72px;\n height: 72px;\n\n @include media-query($on-palm) {\n width: 54px;\n height: 54px;\n }\n }\n\n }\n .site-title-text {\n white-space: nowrap;\n }\n}\n\n.site-nav {\n margin-left: auto;\n line-height: $base-line-height * $base-font-size * 2.25;\n\n .nav-trigger {\n display: none;\n }\n\n .menu-icon {\n display: none;\n }\n\n .page-link {\n color: $title-color;\n line-height: $base-line-height;\n\n // Gaps between nav items, but not on the last one\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n\n @include media-query($on-palm) {\n position: absolute;\n top: $spacing-unit / 2;\n right: $spacing-unit / 2;\n background-color: $background-color;\n border: 1px solid $grey-color-light;\n border-radius: 5px;\n text-align: right;\n\n label[for=\"nav-trigger\"] {\n display: block;\n float: right;\n width: 36px;\n height: 36px;\n z-index: 2;\n cursor: pointer;\n }\n\n .menu-icon {\n display: block;\n float: right;\n width: 36px;\n height: 26px;\n line-height: 0;\n padding-top: 10px;\n text-align: center;\n\n > svg {\n fill: $grey-color-dark;\n }\n }\n\n input ~ .trigger {\n clear: both;\n display: none;\n }\n\n input:checked ~ .trigger {\n display: block;\n padding-bottom: 5px;\n }\n\n .page-link {\n display: block;\n padding: 5px 10px;\n\n &:not(:last-child) {\n margin-right: 0;\n }\n margin-left: 20px;\n }\n }\n}\n\n\n\n/**\n * Site footer\n */\n.site-footer {\n border-top: 1px solid $grey-color-light;\n padding: $spacing-unit 0;\n}\n\n.footer-heading {\n @include relative-font-size(1.125);\n margin-bottom: $spacing-unit / 2;\n}\n\n.contact-list,\n.social-media-list {\n list-style: none;\n margin-left: 0;\n}\n\n.footer-col-wrapper {\n @include relative-font-size(0.9375);\n color: $grey-color;\n margin-left: -$spacing-unit / 2;\n @extend %clearfix;\n}\n\n.footer-col {\n float: left;\n margin-bottom: $spacing-unit / 2;\n padding-left: $spacing-unit / 2;\n}\n\n.footer-col-1 {\n width: -webkit-calc(35% - (#{$spacing-unit} / 2));\n width: calc(35% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-2 {\n width: -webkit-calc(20% - (#{$spacing-unit} / 2));\n width: calc(20% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-3 {\n width: -webkit-calc(45% - (#{$spacing-unit} / 2));\n width: calc(45% - (#{$spacing-unit} / 2));\n}\n\n@include media-query($on-laptop) {\n .footer-col-1,\n .footer-col-2 {\n width: -webkit-calc(50% - (#{$spacing-unit} / 2));\n width: calc(50% - (#{$spacing-unit} / 2));\n }\n\n .footer-col-3 {\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n@include media-query($on-palm) {\n .footer-col {\n float: none;\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n\n\n/**\n * Page content\n */\n.page-content {\n padding: $spacing-unit 0;\n flex: 1;\n}\n\n.page-heading {\n @include relative-font-size(2);\n}\n\n.post-list-heading {\n @include relative-font-size(1.75);\n}\n\n.post-list {\n margin-left: 0;\n list-style: none;\n\n > li {\n margin-bottom: $spacing-unit;\n }\n}\n\n.post-meta {\n font-size: $small-font-size;\n color: $grey-color;\n}\n\n.post-link {\n display: block;\n @include relative-font-size(2.0);\n}\n\n\n\n/**\n * Posts\n */\n.post-header {\n margin-bottom: $spacing-unit;\n}\n\n.post-title {\n @include relative-font-size(2.625);\n letter-spacing: -1px;\n line-height: 1;\n\n @include media-query($on-laptop) {\n @include relative-font-size(2.25);\n }\n}\n\n.post-content {\n margin-bottom: $spacing-unit;\n\n h2 {\n @include relative-font-size(2);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.75);\n }\n }\n\n h3 {\n @include relative-font-size(1.625);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.375);\n }\n }\n\n h4 {\n @include relative-font-size(1.25);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.125);\n }\n }\n}\n", + "/**\n * Reset some basic elements\n */\nbody, h1, h2, h3, h4, h5, h6,\np, blockquote, pre, hr,\ndl, dd, ol, ul, figure {\n margin: 0;\n padding: 0;\n}\n\n\n\n/**\n * Basic styling\n */\nbody {\n font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family;\n color: $text-color;\n background-color: $background-color;\n -webkit-text-size-adjust: 100%;\n -webkit-font-feature-settings: \"kern\" 1;\n -moz-font-feature-settings: \"kern\" 1;\n -o-font-feature-settings: \"kern\" 1;\n font-feature-settings: \"kern\" 1;\n font-kerning: normal;\n display: flex;\n min-height: 100vh;\n flex-direction: column;\n}\n\n\n\n/**\n * Set `margin-bottom` to maintain vertical rhythm\n */\nh1, h2, h3, h4, h5, h6,\np, blockquote, pre,\nul, ol, dl, figure,\n%vertical-rhythm {\n margin-bottom: calc($spacing-unit / 2);\n}\n\n\n\n/**\n * `main` element\n */\nmain {\n display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */\n}\n\n\n\n/**\n * Images\n */\nimg {\n max-width: 100%;\n vertical-align: middle;\n}\n.post {\n img, video {\n max-width: 650px;\n vertical-align: middle;\n display: block;\n margin: 24px auto;\n }\n}\n\n\n/**\n * Figures\n */\nfigure > img {\n display: block;\n}\n\nfigcaption {\n font-size: $small-font-size;\n}\n\n\n\n/**\n * Lists\n */\nul, ol {\n margin-left: $spacing-unit;\n}\n\nli {\n > ul,\n > ol {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Headings\n */\nh1, h2, h3, h4, h5, h6 {\n font-weight: $base-font-weight;\n}\n\n\n\n/**\n * Links\n */\na {\n color: $brand-color;\n text-decoration: none;\n\n &:visited {\n color: darken($brand-color, 15%);\n }\n\n &:hover {\n color: $text-color;\n text-decoration: underline;\n }\n\n .social-media-list &:hover {\n text-decoration: none;\n\n .username {\n text-decoration: underline;\n }\n }\n}\n\n\n/**\n * Blockquotes\n */\nblockquote {\n color: $grey-color;\n border-left: 4px solid $grey-color-light;\n padding-left: calc($spacing-unit / 2);\n @include relative-font-size(1.125);\n letter-spacing: -1px;\n font-style: italic;\n\n > :last-child {\n margin-bottom: 0;\n }\n}\n\n\n\n/**\n * Code formatting\n */\npre,\ncode {\n @include relative-font-size(0.9375);\n border: 1px solid $grey-color-light;\n border-radius: 3px;\n background-color: #eef;\n}\n\ncode {\n padding: 1px 5px;\n}\n\npre {\n padding: 8px 12px;\n overflow-x: auto;\n white-space: pre-wrap;\n word-wrap: break-word;\n\n > code {\n border: 0;\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n\n\n/**\n * Wrapper\n */\n.wrapper {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));\n max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));\n margin-right: auto;\n margin-left: auto;\n padding-right: $spacing-unit;\n padding-left: $spacing-unit;\n @extend %clearfix;\n\n @include media-query($on-laptop) {\n max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));\n max-width: calc(#{$content-width} - (#{$spacing-unit}));\n padding-right: calc($spacing-unit / 2);\n padding-left: calc($spacing-unit / 2);\n }\n}\n\n\n\n/**\n * Clearfix\n */\n%clearfix:after {\n content: \"\";\n display: table;\n clear: both;\n}\n\n\n\n/**\n * Icons\n */\n\n.svg-icon {\n width: 16px;\n height: 16px;\n display: inline-block;\n fill: #{$grey-color};\n padding-right: 5px;\n vertical-align: text-top;\n}\n\n.social-media-list {\n li + li {\n padding-top: 5px;\n }\n}\n\n\n\n/**\n * Tables\n */\ntable {\n margin-bottom: $spacing-unit;\n width: 100%;\n text-align: $table-text-align;\n color: lighten($text-color, 18%);\n border-collapse: collapse;\n border: 1px solid $grey-color-light;\n tr {\n &:nth-child(even) {\n background-color: lighten($grey-color-light, 6%);\n }\n }\n th, td {\n padding: calc(($spacing-unit / 3)) calc($spacing-unit / 2);\n }\n th {\n background-color: lighten($grey-color-light, 3%);\n border: 1px solid darken($grey-color-light, 4%);\n border-bottom-color: darken($grey-color-light, 12%);\n }\n td {\n border: 1px solid $grey-color-light;\n }\n}\n", + "/**\n * Site header\n */\n.site-header {\n border-top: 5px solid $title-color;\n border-bottom: 1px solid $grey-color-light;\n min-height: $spacing-unit * 1.865;\n position: sticky;\n top: 0;\n background-color: $background-color;\n\n .wrapper {\n display: flex;\n align-items: center;\n }\n}\n\n.site-subheader {\n padding: 12px 0;\n border-bottom: 1px solid $grey-color-light;\n background-color: rgb(245, 243, 220);\n .top {\n color: #574621;\n }\n .bottom {\n color: #887541;\n }\n}\n\n.site-title {\n @include relative-font-size(2.125);\n font-weight: 600;\n line-height: $base-line-height * $base-font-size * 2.25;\n letter-spacing: -1px;\n margin-bottom: 0;\n float: left;\n display: flex;\n align-items: center;\n\n &,\n &:visited {\n color: $title-color;\n }\n\n @include media-query($on-palm) {\n @include relative-font-size(1.625);\n }\n\n .site-title-image {\n float: left;\n margin: 8px 18px 8px 0;\n\n @include media-query($on-palm) {\n margin-top: 4px;\n }\n\n img {\n width: 72px;\n height: 72px;\n\n @include media-query($on-palm) {\n width: 54px;\n height: 54px;\n }\n }\n\n }\n .site-title-text {\n white-space: nowrap;\n }\n}\n\n.site-nav {\n margin-left: auto;\n line-height: $base-line-height * $base-font-size * 2.25;\n\n .nav-trigger {\n display: none;\n }\n\n .menu-icon {\n display: none;\n }\n\n .page-link {\n color: $title-color;\n line-height: $base-line-height;\n\n // Gaps between nav items, but not on the last one\n &:not(:last-child) {\n margin-right: 20px;\n }\n }\n\n @include media-query($on-palm) {\n position: absolute;\n top: calc($spacing-unit / 2);\n right: calc($spacing-unit / 2);\n background-color: $background-color;\n border: 1px solid $grey-color-light;\n border-radius: 5px;\n text-align: right;\n\n label[for=\"nav-trigger\"] {\n display: block;\n float: right;\n width: 36px;\n height: 36px;\n z-index: 2;\n cursor: pointer;\n }\n\n .menu-icon {\n display: block;\n float: right;\n width: 36px;\n height: 26px;\n line-height: 0;\n padding-top: 10px;\n text-align: center;\n\n > svg {\n fill: $grey-color-dark;\n }\n }\n\n input ~ .trigger {\n clear: both;\n display: none;\n }\n\n input:checked ~ .trigger {\n display: block;\n padding-bottom: 5px;\n }\n\n .page-link {\n display: block;\n padding: 5px 10px;\n\n &:not(:last-child) {\n margin-right: 0;\n }\n margin-left: 20px;\n }\n }\n}\n\n\n\n/**\n * Site footer\n */\n.site-footer {\n border-top: 1px solid $grey-color-light;\n padding: $spacing-unit 0;\n}\n\n.footer-heading {\n @include relative-font-size(1.125);\n margin-bottom: calc($spacing-unit / 2);\n}\n\n.contact-list,\n.social-media-list {\n list-style: none;\n margin-left: 0;\n}\n\n.footer-col-wrapper {\n @include relative-font-size(0.9375);\n color: $grey-color;\n margin-left: calc($spacing-unit / -2);\n @extend %clearfix;\n}\n\n.footer-col {\n float: left;\n margin-bottom: calc($spacing-unit / 2);\n padding-left: calc($spacing-unit / 2);\n}\n\n.footer-col-1 {\n width: -webkit-calc(35% - (#{$spacing-unit} / 2));\n width: calc(35% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-2 {\n width: -webkit-calc(20% - (#{$spacing-unit} / 2));\n width: calc(20% - (#{$spacing-unit} / 2));\n}\n\n.footer-col-3 {\n width: -webkit-calc(45% - (#{$spacing-unit} / 2));\n width: calc(45% - (#{$spacing-unit} / 2));\n}\n\n@include media-query($on-laptop) {\n .footer-col-1,\n .footer-col-2 {\n width: -webkit-calc(50% - (#{$spacing-unit} / 2));\n width: calc(50% - (#{$spacing-unit} / 2));\n }\n\n .footer-col-3 {\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n@include media-query($on-palm) {\n .footer-col {\n float: none;\n width: -webkit-calc(100% - (#{$spacing-unit} / 2));\n width: calc(100% - (#{$spacing-unit} / 2));\n }\n}\n\n\n\n/**\n * Page content\n */\n.page-content {\n padding: $spacing-unit 0;\n flex: 1;\n}\n\n.page-heading {\n @include relative-font-size(2);\n}\n\n.post-list-heading {\n @include relative-font-size(1.75);\n}\n\n.post-list {\n margin-left: 0;\n list-style: none;\n\n > li {\n margin-bottom: $spacing-unit;\n }\n}\n\n.post-meta {\n font-size: $small-font-size;\n color: $grey-color;\n}\n\n.post-link {\n display: block;\n @include relative-font-size(2.0);\n}\n\n\n\n/**\n * Posts\n */\n.post-header {\n margin-bottom: $spacing-unit;\n}\n\n.post-title {\n @include relative-font-size(2.625);\n letter-spacing: -1px;\n line-height: 1;\n\n @include media-query($on-laptop) {\n @include relative-font-size(2.25);\n }\n}\n\n.post-content {\n margin-bottom: $spacing-unit;\n\n h2 {\n @include relative-font-size(2);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.75);\n }\n }\n\n h3 {\n @include relative-font-size(1.625);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.375);\n }\n }\n\n h4 {\n @include relative-font-size(1.25);\n\n @include media-query($on-laptop) {\n @include relative-font-size(1.125);\n }\n }\n}\n", "/**\n * Syntax highlighting styles\n */\n.highlight {\n background: #fff;\n @extend %vertical-rhythm;\n\n .highlighter-rouge & {\n background: #eef;\n }\n\n .c { color: #998; font-style: italic } // Comment\n .err { color: #a61717; background-color: #e3d2d2 } // Error\n .k { font-weight: bold } // Keyword\n .o { font-weight: bold } // Operator\n .cm { color: #998; font-style: italic } // Comment.Multiline\n .cp { color: #999; font-weight: bold } // Comment.Preproc\n .c1 { color: #998; font-style: italic } // Comment.Single\n .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special\n .gd { color: #000; background-color: #fdd } // Generic.Deleted\n .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific\n .ge { font-style: italic } // Generic.Emph\n .gr { color: #a00 } // Generic.Error\n .gh { color: #999 } // Generic.Heading\n .gi { color: #000; background-color: #dfd } // Generic.Inserted\n .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific\n .go { color: #888 } // Generic.Output\n .gp { color: #555 } // Generic.Prompt\n .gs { font-weight: bold } // Generic.Strong\n .gu { color: #aaa } // Generic.Subheading\n .gt { color: #a00 } // Generic.Traceback\n .kc { font-weight: bold } // Keyword.Constant\n .kd { font-weight: bold } // Keyword.Declaration\n .kp { font-weight: bold } // Keyword.Pseudo\n .kr { font-weight: bold } // Keyword.Reserved\n .kt { color: #458; font-weight: bold } // Keyword.Type\n .m { color: #099 } // Literal.Number\n .s { color: #d14 } // Literal.String\n .na { color: #008080 } // Name.Attribute\n .nb { color: #0086B3 } // Name.Builtin\n .nc { color: #458; font-weight: bold } // Name.Class\n .no { color: #008080 } // Name.Constant\n .ni { color: #800080 } // Name.Entity\n .ne { color: #900; font-weight: bold } // Name.Exception\n .nf { color: #900; font-weight: bold } // Name.Function\n .nn { color: #555 } // Name.Namespace\n .nt { color: #000080 } // Name.Tag\n .nv { color: #008080 } // Name.Variable\n .ow { font-weight: bold } // Operator.Word\n .w { color: #bbb } // Text.Whitespace\n .mf { color: #099 } // Literal.Number.Float\n .mh { color: #099 } // Literal.Number.Hex\n .mi { color: #099 } // Literal.Number.Integer\n .mo { color: #099 } // Literal.Number.Oct\n .sb { color: #d14 } // Literal.String.Backtick\n .sc { color: #d14 } // Literal.String.Char\n .sd { color: #d14 } // Literal.String.Doc\n .s2 { color: #d14 } // Literal.String.Double\n .se { color: #d14 } // Literal.String.Escape\n .sh { color: #d14 } // Literal.String.Heredoc\n .si { color: #d14 } // Literal.String.Interpol\n .sx { color: #d14 } // Literal.String.Other\n .sr { color: #009926 } // Literal.String.Regex\n .s1 { color: #d14 } // Literal.String.Single\n .ss { color: #990073 } // Literal.String.Symbol\n .bp { color: #999 } // Name.Builtin.Pseudo\n .vc { color: #008080 } // Name.Variable.Class\n .vg { color: #008080 } // Name.Variable.Global\n .vi { color: #008080 } // Name.Variable.Instance\n .il { color: #099 } // Literal.Number.Integer.Long\n}\n" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/blog/_site/feed.xml b/blog/_site/feed.xml index 1959256a6..0cf2ba7b1 100644 --- a/blog/_site/feed.xml +++ b/blog/_site/feed.xml @@ -1,255 +1,268 @@ -Jekyll2022-11-22T14:45:02-05:00https://blog.newsblur.com/feed.xmlThe NewsBlur BlogNewsBlur is a personal news reader that brings people together to talk about the world. +Jekyll2023-12-06T09:28:27-05:00https://blog.newsblur.com/feed.xmlThe NewsBlur BlogNewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument. -NewsBlur Premium Archive subscription keeps all of your stories searchable, shareable, and unread forever2022-07-01T00:00:00-04:002022-07-01T00:00:00-04:00https://blog.newsblur.com/2022/07/01/premium-archive-subscription<p>For $99/year every story from every site you subscribe to will stay in NewsBlur’s archive. This new premium tier also allows you to mark any story as unread as well as choose when stories are automatically marked as read. You can now have full control of your story archive, letting you search, share, and read stories forever without having to worry about them being deleted.</p> +Introducing the Grid view on iOS2023-12-06T00:00:00-05:002023-12-06T00:00:00-05:00https://blog.newsblur.com/2023/12/06/ios-grid-viewThe Grid view is now on iOS. Read stories with large thumbnails in a magazine-like format, where you can see a customizable number of story previews at once. Works beautifully for both iPhone and iPad. +

-<p>The NewsBlur Premium Archive subscription offers you the following:</p> +

Just like on the web, you can customize how many stories you see and how large each story is, giving you the freedom to read stories with large thumbnails or small image previews.

-<ul> - <li><img src="/assets/icons8/icons8-bursts-100.png" style="width: 16px;margin: 0 6px 0 0;display: inline-block;" /> Everything in the premium subscription, of course</li> - <li><img src="/assets/icons8/icons8-relax-with-book-100.png" style="width: 16px;margin: 0 6px 0 0;display: inline-block;" /> Choose when stories are automatically marked as read</li> - <li><img src="/assets/icons8/icons8-filing-cabinet-100.png" style="width: 16px;margin: 0 6px 0 0;display: inline-block;" /> Every story from every site is archived and searchable forever</li> - <li><img src="/assets/icons8/icons8-quadcopter-100.png" style="width: 16px;margin: 0 6px 0 0;display: inline-block;" /> Feeds that support paging are back-filled in for a complete archive</li> - <li><img src="/assets/icons8/icons8-rss-100.png" style="width: 16px;margin: 0 6px 0 0;display: inline-block;" /> Export trained stories from folders as RSS feeds</li> - <li><img src="/assets/icons8/icons8-calendar-100.png" style="width: 16px;margin: 0 6px 0 0;display: inline-block;" /> Stories can stay unread forever</li> -</ul> +

-<p>You can now enjoy a new preference for exactly when stories are marked as read:</p> +

It even works on iPhone!

-<p><img src="/assets/premium-archive-mark-read-date.png" style="width: 100%;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

-<p>A technical note about the backfilling of your archive:</p> +

If you have any other ideas you’d like to see on iPad and iPhone, feel free to post an idea on the NewsBlur Forum.

-<blockquote> -<p>NewsBlur uses two techniques to retrieve older stories that are no longer in the RSS feed. The first strategy is to append `?page=2` and `?paged=2` to the RSS feed and seeing if we're about to blindly iterate through the blog's archive. For WordPress and a few other CMSs, this works great and gives us a full archive. </p> +

This is a huge release and has been a year in the making. Coming up soon: a new Mac app and intelligent feed discovery.

]]>
2022 redesign: new dashboard layout, refreshed stories and story titles, and entirely redrawn icons2022-07-01T00:00:00-04:002022-07-01T00:00:00-04:00https://blog.newsblur.com/2022/07/01/dashboard-redesign-2022The launch of the new Premium Archive subscription tier also includes the 2022 redesign. You’ll see a third dashboard layout which stretches out your dashboard rivers across the width of the screen.

-<p>A second technique is to use <a href="https://datatracker.ietf.org/doc/html/rfc5005">RFC 5005</a>, which supports links embedded inside the RSS feed to denote next and previous pages of an archive.</p> -</blockquote> +

-<p>NewsBlur attempts all of these techniques on every single feed you’ve subscribed to, and when it’s done backfilling stories, you’ll receive an email showing you how big your archive grew during this backfill process.</p> +

The latest redesign style has more accomodations for spacing and padding around each story title element. The result is a cleaner story title with easier to read headlines. The author has been moved and restyled to be next to the story date. Favicons and unread status indicators have been swapped, and font sizes, colors, and weights have been adjusted.

-<p>The launch of the new Premium Archive subscription tier also contains the <a href="/2022/07/01/dashboard-redesign-2022/">2022 redesign</a>, which includes a new dashboard layout, a refreshed design for story titles and feed title, and all new icons.</p> +

-<p>Here’s a screenshot that’s only possible with the new premium archive, complete with backfilled blog post from the year 2000, ready to be marked as unread.</p> +

If you find the interface to be too airy, there is a setting in the main Manage menu allowing you to switch between Comfortable and Compact. The compact interface is denser than before, giving power users a highly detailed view.

-<p><img src="/assets/premium-archive-unread.png" style="width: 100%;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

Transitions have also been added to help you feel the difference. And there are new animations during many of the transitions that accompany changing settings.

-<p>How’s that for an archive?</p>
For $99/year every story from every site you subscribe to will stay in NewsBlur’s archive. This new premium tier also allows you to mark any story as unread as well as choose when stories are automatically marked as read. You can now have full control of your story archive, letting you search, share, and read stories forever without having to worry about them being deleted.
2022 redesign: new dashboard layout, refreshed stories and story titles, and entirely redrawn icons2022-07-01T00:00:00-04:002022-07-01T00:00:00-04:00https://blog.newsblur.com/2022/07/01/dashboard-redesign-2022<p>The launch of the new <a href="/2022/07/01/premium-archive-subscription/">Premium Archive subscription tier</a> also includes the 2022 redesign. You’ll see a third dashboard layout which stretches out your dashboard rivers across the width of the screen.</p> +

+ +

-<p><img src="/assets/premium-archive-dashboard-comfortable.png" style="width: calc(140%);margin: 12px 0 12px calc(-20%);max-width: none;border: none" /></p> +

And lastly, this redesign comes with a suite of all new icons. The goal with this icon redesign is to bring a consistent weight to each icon as well as vectorize them with SVG so they look good at all resolutions.

-<p>The latest redesign style has more accomodations for spacing and padding around each story title element. The result is a cleaner story title with easier to read headlines. The author has been moved and restyled to be next to the story date. Favicons and unread status indicators have been swapped, and font sizes, colors, and weights have been adjusted.</p> +

-<p><img src="/assets/premium-archive-dashboard-compact.png" style="width: calc(140%);margin: 12px 0 12px calc(-20%);max-width: none;border: none" /></p> +

A notable icon change is the unread indicator, which now has different size icons for both unread stories and focus stories, giving focus stories more depth.

-<p>If you find the interface to be too airy, there is a setting in the main Manage menu allowing you to switch between Comfortable and Compact. The compact interface is denser than before, giving power users a highly detailed view.</p> +

-<p>Transitions have also been added to help you feel the difference. And there are new animations during many of the transitions that accompany changing settings.</p> +

Here’s a screenshot that’s only possible with the new premium archive, complete with backfilled blog post from the year 2000, ready to be marked as unread.

-<p> - <video autoplay="" loop="" playsinline="" muted="" width="500" style="width: 500px;border: 2px solid rgba(0,0,0,0.1)"> - <source src="/assets/premium-archive-grid.mp4" type="video/mp4" /> - </video> -</p> +

-<p>And lastly, this redesign comes with a suite of all new icons. The goal with this icon redesign is to bring a consistent weight to each icon as well as vectorize them with SVG so they look good at all resolutions.</p> +

I tried to find every icon, so if you spot a dialog or menu that you’d like to see given some more love, reach out on the support forum.

]]>
NewsBlur Premium Archive subscription keeps all of your stories searchable, shareable, and unread forever2022-07-01T00:00:00-04:002022-07-01T00:00:00-04:00https://blog.newsblur.com/2022/07/01/premium-archive-subscriptionFor $99/year every story from every site you subscribe to will stay in NewsBlur’s archive. This new premium tier also allows you to mark any story as unread as well as choose when stories are automatically marked as read. You can now have full control of your story archive, letting you search, share, and read stories forever without having to worry about them being deleted.

-<p><img src="/assets/premium-archive-manage-menu.png" style="width: 275px;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

The NewsBlur Premium Archive subscription offers you the following:

-<p>A notable icon change is the unread indicator, which now has different size icons for both unread stories and focus stories, giving focus stories more depth.</p> +
    +
  • Everything in the premium subscription, of course
  • +
  • Choose when stories are automatically marked as read
  • +
  • Every story from every site is archived and searchable forever
  • +
  • Feeds that support paging are back-filled in for a complete archive
  • +
  • Export trained stories from folders as RSS feeds
  • +
  • Stories can stay unread forever
  • +
-<p><img src="/assets/premium-archive-unread-dark.png" style="width: 375px;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

You can now enjoy a new preference for exactly when stories are marked as read:

-<p>Here’s a screenshot that’s only possible with the new premium archive, complete with backfilled blog post from the year 2000, ready to be marked as unread.</p> +

-<p><img src="/assets/premium-archive-unread.png" style="width: 100%;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

A technical note about the backfilling of your archive:

-<p>I tried to find every icon, so if you spot a dialog or menu that you’d like to see given some more love, reach out on the support forum.</p>
The launch of the new Premium Archive subscription tier also includes the 2022 redesign. You’ll see a third dashboard layout which stretches out your dashboard rivers across the width of the screen.
New gesture-based layout for the NewsBlur iPad App2022-03-28T00:00:00-04:002022-03-28T00:00:00-04:00https://blog.newsblur.com/2022/03/28/redesigned-ios-layout<p>We have a big update for you on iOS, complete with a redesigned layout engine. You’ll see this mostly on iPad, where you can now interactively swipe between panes, customize how many panes you see, and even customize where the story titles are on the screen relative to the story content.</p> +
+

NewsBlur uses two techniques to retrieve older stories that are no longer in the RSS feed. The first strategy is to append `?page=2` and `?paged=2` to the RSS feed and seeing if we're about to blindly iterate through the blog's archive. For WordPress and a few other CMSs, this works great and gives us a full archive.

-<p>Let’s take a look at all of the new features, starting with the improved gesture-based layout engine for navigating between stories and feeds.</p> +

A second technique is to use RFC 5005, which supports links embedded inside the RSS feed to denote next and previous pages of an archive.

+
-<p> - <video autoplay="autoplay" loop="true" muted="" playsinline="" width="650" style="width: 650px;border: 2px solid rgba(0,0,0,0.1);margin: 0 auto;display: block;"> - <source src="/assets/ipad-redesigned-layout-2.mp4" type="video/mp4" /> - </video> -</p> +

NewsBlur attempts all of these techniques on every single feed you’ve subscribed to, and when it’s done backfilling stories, you’ll receive an email showing you how big your archive grew during this backfill process.

-<p>A whole bunch of new controls and customizations have been added to the settings menu in the story titles menu, which is where you can find these new options for 2-column/3-column/full screen view panes.</p> +

The launch of the new Premium Archive subscription tier also contains the 2022 redesign, which includes a new dashboard layout, a refreshed design for story titles and feed title, and all new icons.

-<p><img src="/assets/ipad-story-title-customizations.png" /></p> +

Here’s a screenshot that’s only possible with the new premium archive, complete with backfilled blog post from the year 2000, ready to be marked as unread.

-<p>There’s also a new homescreen widget for showing 3-6 stories on your dashboard.</p> +

-<p><img src="/assets/ipad-widget.png" /></p> +

How’s that for an archive?

]]>
New gesture-based layout for the NewsBlur iPad App2022-03-28T00:00:00-04:002022-03-28T00:00:00-04:00https://blog.newsblur.com/2022/03/28/redesigned-ios-layoutWe have a big update for you on iOS, complete with a redesigned layout engine. You’ll see this mostly on iPad, where you can now interactively swipe between panes, customize how many panes you see, and even customize where the story titles are on the screen relative to the story content.

-<p>You can also expect to find feature parity with Android and the web when it comes to the new image preview and content preview options for story titles.</p> +

Let’s take a look at all of the new features, starting with the improved gesture-based layout engine for navigating between stories and feeds.

-<p><img src="/assets/ipad-image-preview.png" /></p> +

+ +

-<p>You can now save stories and subscribe to feeds from other apps using the NewsBlur Share extension. This includes your saved story tags and associated counts.</p> +

A whole bunch of new controls and customizations have been added to the settings menu in the story titles menu, which is where you can find these new options for 2-column/3-column/full screen view panes.

-<p><img src="/assets/iphone-share-extension.png" style="margin: 0 auto; display: block; width: 450px;" /></p> +

-<p>This release also contains numerous improvements, subtle refinements, and assorted fixed bugs.</p> +

There’s also a new homescreen widget for showing 3-6 stories on your dashboard.

-<p>If you have any ideas for how you would like to see the iPad and iPhone app improved, please post ideas to the <a href="https://forum.newsblur.com">NewsBlur Forum</a>. I’m all ears and would love to prioritize improvements or changes that create a better mobile reading experience.</p>
We have a big update for you on iOS, complete with a redesigned layout engine. You’ll see this mostly on iPad, where you can now interactively swipe between panes, customize how many panes you see, and even customize where the story titles are on the screen relative to the story content.
Magazine view offers a new perspective2022-03-10T00:00:00-05:002022-03-10T00:00:00-05:00https://blog.newsblur.com/2022/03/10/magazine-view<p>Here’s a nice feature that brings a new perspective to your stories. It’s called the Magazine view and features larger images, longer story content previews, and improved legibility of text.</p> +

-<p>Take a look and see how the Magazine view shwocases stories in a new way:</p> +

You can also expect to find feature parity with Android and the web when it comes to the new image preview and content preview options for story titles.

-<p><img src="/assets/magazine-light.png" style="width: 750px;border: 1px solid #A0A0A0;margin: 12px auto;" /></p> +

-<p>The Magazine view is also customizable. By default, fonts are a bit larger in the Magazine view. You can still change font sizes as well as customize the position and size of the image preview. There is also a control for how long the story content previews are, all found inside the Style popover.</p> +

You can now save stories and subscribe to feeds from other apps using the NewsBlur Share extension. This includes your saved story tags and associated counts.

-<p><img src="/assets/style-popover-bottom.png" style="width: 375px;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

-<p>And in dark mode, these customizations show how tailored you can make NewsBlur look.</p> +

This release also contains numerous improvements, subtle refinements, and assorted fixed bugs.

-<p><img src="/assets/magazine-dark.png" style="width: 750px;border: 1px solid #A0A0A0;margin: 12px auto;" /></p> +

If you have any ideas for how you would like to see the iPad and iPhone app improved, please post ideas to the NewsBlur Forum. I’m all ears and would love to prioritize improvements or changes that create a better mobile reading experience.

]]>
Magazine view offers a new perspective2022-03-10T00:00:00-05:002022-03-10T00:00:00-05:00https://blog.newsblur.com/2022/03/10/magazine-viewHere’s a nice feature that brings a new perspective to your stories. It’s called the Magazine view and features larger images, longer story content previews, and improved legibility of text.

-<p>You can access the new Magazine view next to the other story title view layouts.</p> +

Take a look and see how the Magazine view shwocases stories in a new way:

-<p><img src="/assets/magazine-views.png" style="width: 450px;border: 1px solid #A0A0A0;margin: 24px auto;display: block;" /></p> +

-<p>The Grid view also features improvements to the story content preview. New lines are now preserved in both Magazine and Grid views, so you can capture a bit of longer form stories without opening them up.</p> +

The Magazine view is also customizable. By default, fonts are a bit larger in the Magazine view. You can still change font sizes as well as customize the position and size of the image preview. There is also a control for how long the story content previews are, all found inside the Style popover.

-<p><img src="/assets/grid-dark.png" style="width: 750px;border: 1px solid #A0A0A0;margin: 12px auto;" /></p> +

-<p>Also included are some backend changes to how YouTube videos thumbnail are found, so you should see even more image previews in your feeds.</p>
Here’s a nice feature that brings a new perspective to your stories. It’s called the Magazine view and features larger images, longer story content previews, and improved legibility of text.
Redesigning NewsBlur on the web, iOS, and Android2021-07-01T00:00:00-04:002021-07-01T00:00:00-04:00https://blog.newsblur.com/2021/07/01/refreshing-newsblur-design<p>This past year we’ve focused on maintenance and improving quality behind the scenes. It just so happens that the urge to clean is so strong that this work extended to the front-end. After months of work, today we’re launching a redesigned NewsBlur for all three platforms: on the web, on iOS, and on Android. There’s a lot that’s new. And what better day to launch a redesign than on <a href="/2013/03/17/three-months-to-scale-newsblur/">the ninth anniversary of the sunset of Google Reader</a>.</p> +

And in dark mode, these customizations show how tailored you can make NewsBlur look.

-<p>To start, let’s take a look below at the redesigned NewsBlur.</p> +

-<p><img src="/assets/redesign-web.png" style="width: 750px;" /></p> +

You can access the new Magazine view next to the other story title view layouts.

-<p>Loads of new features:</p> +

-<ul> - <li>The dashboard now has multiple, customizable rivers of news</li> - <li>Image previews are now customizable by size and layout</li> - <li>Story previews are also customizable by length</li> - <li>Images are now full bleed on the web (edge-to-edge)</li> - <li>Controls have been re-styled and made more accessible</li> - <li>Sizes, spaces, and text have all been tweaked for a more legible read</li> - <li>Upgraded backend: Python 2 to Python 3, latest Django and libraries, containerized infrastructure</li> - <li>Both Android and iOS apps have been updated with the new design</li> -</ul> +

The Grid view also features improvements to the story content preview. New lines are now preserved in both Magazine and Grid views, so you can capture a bit of longer form stories without opening them up.

-<p>Those multiple rivers come in handy when you want to follow different interests at a glance. You can of course change which individual feeds or folders is loaded, letting you focus on saved searches, infrequent stories, a single feed, or everything you’re subscribed to.</p> +

-<p>Below you can see the design in action. Notice how easy it is to change where the image preview is located as well as adjust the number of lines of story text to show.</p> +

Also included are some backend changes to how YouTube videos thumbnail are found, so you should see even more image previews in your feeds.

]]>
Redesigning NewsBlur on the web, iOS, and Android2021-07-01T00:00:00-04:002021-07-01T00:00:00-04:00https://blog.newsblur.com/2021/07/01/refreshing-newsblur-designThis past year we’ve focused on maintenance and improving quality behind the scenes. It just so happens that the urge to clean is so strong that this work extended to the front-end. After months of work, today we’re launching a redesigned NewsBlur for all three platforms: on the web, on iOS, and on Android. There’s a lot that’s new. And what better day to launch a redesign than on the ninth anniversary of the sunset of Google Reader.

-<p> - <video autoplay="" loop="" playsinline="" width="500" style="width: 500px;border: 2px solid rgba(0,0,0,0.1)"> - <source src="/assets/redesign-content-preview.mp4" type="video/mp4" /> - </video> -</p> +

To start, let’s take a look below at the redesigned NewsBlur.

-<p>The reading experience itself has also seen improvement. Full bleed images have been ported over from iOS to both Android and the web. This means that images will now run edge-to-edge. And the controls at the top and bottom of the web app have been restyled to be easier to understand at a quick glance.</p> +

-<p><img src="/assets/redesign-full-bleed.jpg" style="border: 2px solid rgba(0,0,0,0.1);" /></p> +

Loads of new features:

-<p>There’s many ways to adjust story titles to fit. Pack them in dense or offer titles room to breathe.</p> +
    +
  • The dashboard now has multiple, customizable rivers of news
  • +
  • Image previews are now customizable by size and layout
  • +
  • Story previews are also customizable by length
  • +
  • Images are now full bleed on the web (edge-to-edge)
  • +
  • Controls have been re-styled and made more accessible
  • +
  • Sizes, spaces, and text have all been tweaked for a more legible read
  • +
  • Upgraded backend: Python 2 to Python 3, latest Django and libraries, containerized infrastructure
  • +
  • Both Android and iOS apps have been updated with the new design
  • +
-<p><img src="/assets/redesign-bottom.jpg" style="border: 2px solid rgba(0,0,0,0.1);" /></p> +

Those multiple rivers come in handy when you want to follow different interests at a glance. You can of course change which individual feeds or folders is loaded, letting you focus on saved searches, infrequent stories, a single feed, or everything you’re subscribed to.

-<p>The redesign has also come to both of the official Android and iOS apps. Right now both are in beta testing, but you can join the <a href="https://testflight.apple.com/join/hYk9WU3f">iOS TestFlight</a> or the <a href="https://play.google.com/store/apps/details?id=com.newsblur&amp;hl=en_US&amp;gl=US">Android beta</a>.</p> +

Below you can see the design in action. Notice how easy it is to change where the image preview is located as well as adjust the number of lines of story text to show.

-<p><img src="/assets/redesign-ios-android.png" style="" /></p> +

+ +

-<p>This whole redesign weighs in at a whopping 1,316 commits, which <a href="https://github.com/samuelclay/NewsBlur/compare/python2...master">you can view on GitHub</a>. Much of the work that took place here involves upgrading from Python 2 to Python 3 and containerizing everything with Docker. In a few weeks, we’ll post a technical writeup of what those backend changes are and how you can now run a local version of NewsBlur on your own computer with a single line of code. For those that want to run their own private instance of NewsBlur, that line of code is <code class="language-plaintext highlighter-rouge">make nb</code> and <a href="https://github.com/samuelclay/NewsBlur">instructions are found on the repo</a>.</p> +

The reading experience itself has also seen improvement. Full bleed images have been ported over from iOS to both Android and the web. This means that images will now run edge-to-edge. And the controls at the top and bottom of the web app have been restyled to be easier to understand at a quick glance.

-<p>If you’ve enjoyed using NewsBlur and are a fan of this grand redesign, please take a moment to share on social media that you read your news with the help of NewsBlur.</p>
This past year we’ve focused on maintenance and improving quality behind the scenes. It just so happens that the urge to clean is so strong that this work extended to the front-end. After months of work, today we’re launching a redesigned NewsBlur for all three platforms: on the web, on iOS, and on Android. There’s a lot that’s new. And what better day to launch a redesign than on the ninth anniversary of the sunset of Google Reader.
How a Docker footgun led to a vandal deleting NewsBlur’s MongoDB database2021-06-28T00:00:00-04:002021-06-28T00:00:00-04:00https://blog.newsblur.com/2021/06/28/story-of-a-hacking<p><em>tl;dr: A vandal deleted NewsBlur’s MongoDB database during a migration. No data was stolen or lost.</em></p> +

-<p>I’m in the process of moving everything on NewsBlur over to Docker containers in prep for a <a href="https://beta.newsblur.com">big redesign launching next week</a>. It’s been a great year of maintenance and I’ve enjoyed the fruits of Ansible + Docker for NewsBlur’s 5 database servers (PostgreSQL, MongoDB, Redis, Elasticsearch, and soon ML models). The day was wrapping up and I settled into <a href="https://en.wikipedia.org/wiki/Human_Compatible">a new book on how to tame the machines once they’re smarter than us</a> when I received a strange NewsBlur error on my phone.</p> +

There’s many ways to adjust story titles to fit. Pack them in dense or offer titles room to breathe.

-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>"query killed during yield: renamed collection 'newsblur.feed_icons' to 'newsblur.system.drop.1624498448i220t-1.feed_icons'" -</code></pre></div></div> +

-<p>There is honestly no set of words in that error message that I ever want to see again. What is <code class="language-plaintext highlighter-rouge">drop</code> doing in that error message? Better go find out.</p> +

The redesign has also come to both of the official Android and iOS apps. Right now both are in beta testing, but you can join the iOS TestFlight or the Android beta.

-<p>Logging into the MongoDB machine to check out what state the DB is in and I come across the following…</p> +

-<figure class="highlight"><pre><code class="language-javascript" data-lang="javascript"><span class="nx">nbset</span><span class="p">:</span><span class="nx">PRIMARY</span><span class="o">&gt;</span> <span class="nx">show</span> <span class="nx">dbs</span> -<span class="nx">READ__ME_TO_RECOVER_YOUR_DATA</span> <span class="mf">0.000</span><span class="nx">GB</span> -<span class="nx">newsblur</span> <span class="mf">0.718</span><span class="nx">GB</span> +

This whole redesign weighs in at a whopping 1,316 commits, which you can view on GitHub. Much of the work that took place here involves upgrading from Python 2 to Python 3 and containerizing everything with Docker. In a few weeks, we’ll post a technical writeup of what those backend changes are and how you can now run a local version of NewsBlur on your own computer with a single line of code. For those that want to run their own private instance of NewsBlur, that line of code is make nb and instructions are found on the repo.

-<span class="nx">nbset</span><span class="p">:</span><span class="nx">PRIMARY</span><span class="o">&gt;</span> <span class="nx">use</span> <span class="nx">READ__ME_TO_RECOVER_YOUR_DATA</span> -<span class="nx">switched</span> <span class="nx">to</span> <span class="nx">db</span> <span class="nx">READ__ME_TO_RECOVER_YOUR_DATA</span> +

If you’ve enjoyed using NewsBlur and are a fan of this grand redesign, please take a moment to share on social media that you read your news with the help of NewsBlur.

]]>
How a Docker footgun led to a vandal deleting NewsBlur’s MongoDB database2021-06-28T00:00:00-04:002021-06-28T00:00:00-04:00https://blog.newsblur.com/2021/06/28/story-of-a-hackingtl;dr: A vandal deleted NewsBlur’s MongoDB database during a migration. No data was stolen or lost.

+ +

I’m in the process of moving everything on NewsBlur over to Docker containers in prep for a big redesign launching next week. It’s been a great year of maintenance and I’ve enjoyed the fruits of Ansible + Docker for NewsBlur’s 5 database servers (PostgreSQL, MongoDB, Redis, Elasticsearch, and soon ML models). The day was wrapping up and I settled into a new book on how to tame the machines once they’re smarter than us when I received a strange NewsBlur error on my phone.

+ +
"query killed during yield: renamed collection 'newsblur.feed_icons' to 'newsblur.system.drop.1624498448i220t-1.feed_icons'"
+
+ +

There is honestly no set of words in that error message that I ever want to see again. What is drop doing in that error message? Better go find out.

+ +

Logging into the MongoDB machine to check out what state the DB is in and I come across the following…

+ +
nbset:PRIMARY> show dbs
+READ__ME_TO_RECOVER_YOUR_DATA   0.000GB
+newsblur                        0.718GB
+
+nbset:PRIMARY> use READ__ME_TO_RECOVER_YOUR_DATA
+switched to db READ__ME_TO_RECOVER_YOUR_DATA
     
-<span class="nx">nbset</span><span class="p">:</span><span class="nx">PRIMARY</span><span class="o">&gt;</span> <span class="nx">db</span><span class="p">.</span><span class="nx">README</span><span class="p">.</span><span class="nx">find</span><span class="p">()</span>
-<span class="p">{</span> 
-    <span class="dl">"</span><span class="s2">_id</span><span class="dl">"</span> <span class="p">:</span> <span class="nx">ObjectId</span><span class="p">(</span><span class="dl">"</span><span class="s2">60d3e112ac48d82047aab95d</span><span class="dl">"</span><span class="p">),</span> 
-    <span class="dl">"</span><span class="s2">content</span><span class="dl">"</span> <span class="p">:</span> <span class="dl">"</span><span class="s2">All your data is a backed up. You must pay 0.03 BTC to XXXXXXFTHISGUYXXXXXXX 48 hours for recover it. After 48 hours expiration we will leaked and exposed all your data. In case of refusal to pay, we will contact the General Data Protection Regulation, GDPR and notify them that you store user data in an open form and is not safe. Under the rules of the law, you face a heavy fine or arrest and your base dump will be dropped from our server! You can buy bitcoin here, does not take much time to buy https://localbitcoins.com or https://buy.moonpay.io/ After paying write to me in the mail with your DB IP: FTHISGUY@recoverme.one and you will receive a link to download your database dump.</span><span class="dl">"</span> 
-<span class="p">}</span></code></pre></figure>
+nbset:PRIMARY> db.README.find()
+{ 
+    "_id" : ObjectId("60d3e112ac48d82047aab95d"), 
+    "content" : "All your data is a backed up. You must pay 0.03 BTC to XXXXXXFTHISGUYXXXXXXX 48 hours for recover it. After 48 hours expiration we will leaked and exposed all your data. In case of refusal to pay, we will contact the General Data Protection Regulation, GDPR and notify them that you store user data in an open form and is not safe. Under the rules of the law, you face a heavy fine or arrest and your base dump will be dropped from our server! You can buy bitcoin here, does not take much time to buy https://localbitcoins.com or https://buy.moonpay.io/ After paying write to me in the mail with your DB IP: FTHISGUY@recoverme.one and you will receive a link to download your database dump." 
+}
-<p>Two thoughts immediately occured:</p> +

Two thoughts immediately occured:

-<ol> - <li>Thank goodness I have some recently checked backups on hand</li> - <li>No way they have that data without me noticing</li> -</ol> +
    +
  1. Thank goodness I have some recently checked backups on hand
  2. +
  3. No way they have that data without me noticing
  4. +
-<p>Three and a half hours before this happened, I switched the MongoDB cluster over to the new servers. When I did that, I shut down the original primary in order to delete it in a few days when all was well. And thank goodness I did that as it came in handy a few hours later. Knowing this, I realized that the hacker could not have taken all that data in so little time.</p> +

Three and a half hours before this happened, I switched the MongoDB cluster over to the new servers. When I did that, I shut down the original primary in order to delete it in a few days when all was well. And thank goodness I did that as it came in handy a few hours later. Knowing this, I realized that the hacker could not have taken all that data in so little time.

-<p>With that in mind, I’d like to answer a few questions about what happened here.</p> +

With that in mind, I’d like to answer a few questions about what happened here.

-<ol> - <li>Was any data leaked during the hack? How do you know?</li> - <li>How did NewsBlur’s MongoDB server get hacked?</li> - <li>What will happen to ensure this doesn’t happen again?</li> -</ol> +
    +
  1. Was any data leaked during the hack? How do you know?
  2. +
  3. How did NewsBlur’s MongoDB server get hacked?
  4. +
  5. What will happen to ensure this doesn’t happen again?
  6. +
-<p>Let’s start by talking about the most important question of all which is what happened to your data.</p> +

Let’s start by talking about the most important question of all which is what happened to your data.

-<h3 id="1-was-any-data-leaked-during-the-hack-how-do-you-know">1. Was any data leaked during the hack? How do you know?</h3> +

1. Was any data leaked during the hack? How do you know?

-<p>I can definitively write that no data was leaked during the hack. I know this because of two different sets of logs showing that the automated attacker only issued deletion commands and did not transfer any data off of the MongoDB server.</p> +

I can definitively write that no data was leaked during the hack. I know this because of two different sets of logs showing that the automated attacker only issued deletion commands and did not transfer any data off of the MongoDB server.

-<p>Below is a snapshot of the bandwidth of the db-mongo1 machine over 24 hours:</p> +

Below is a snapshot of the bandwidth of the db-mongo1 machine over 24 hours:

-<p><img src="/assets/hack-timeline.png" style="border: 1px solid rgba(0,0,0,0.1);" /></p> +

-<p>You can imagine the stress I experienced in the forty minutes between 9:35p, when the hack began, and 10:15p, when the fresh backup snapshot was identified and put into gear. Let’s breakdown each moment:</p> +

You can imagine the stress I experienced in the forty minutes between 9:35p, when the hack began, and 10:15p, when the fresh backup snapshot was identified and put into gear. Let’s breakdown each moment:

-<ol> - <li><strong>6:10p</strong>: The new db-mongo1 server was put into rotation as the MongoDB primary server. This machine was the first of the new, soon-to-be private cloud.</li> - <li><strong>9:35p</strong>: Three hours later an automated hacking attempt opened a connection to the db-mongo1 server and immediately dropped the database. Downtime ensued.</li> - <li><strong>10:15p</strong>: Before the former primary server could be placed into rotation, a snapshot of the server was made to ensure the backup would not delete itself upon reconnection. This cost a few hours of downtime, but saved nearly 18 hours of a day’s data by not forcing me to go into the daily backup archive.</li> - <li><strong>3:00a</strong>: Snapshot completes, replication from original primary server to new db-mongo1 begins. What you see in the next hour and a half is what the transfer of the DB looks like in terms of bandwidth.</li> - <li><strong>4:30a</strong>: Replication, which is inbound from the old primary server, completes, and now replication begins outbound on the new secondaries. NewsBlur is now back up.</li> -</ol> +
    +
  1. 6:10p: The new db-mongo1 server was put into rotation as the MongoDB primary server. This machine was the first of the new, soon-to-be private cloud.
  2. +
  3. 9:35p: Three hours later an automated hacking attempt opened a connection to the db-mongo1 server and immediately dropped the database. Downtime ensued.
  4. +
  5. 10:15p: Before the former primary server could be placed into rotation, a snapshot of the server was made to ensure the backup would not delete itself upon reconnection. This cost a few hours of downtime, but saved nearly 18 hours of a day’s data by not forcing me to go into the daily backup archive.
  6. +
  7. 3:00a: Snapshot completes, replication from original primary server to new db-mongo1 begins. What you see in the next hour and a half is what the transfer of the DB looks like in terms of bandwidth.
  8. +
  9. 4:30a: Replication, which is inbound from the old primary server, completes, and now replication begins outbound on the new secondaries. NewsBlur is now back up.
  10. +
-<p>The most important bit of information the above chart shows us is what a full database transfer looks like in terms of bandwidth. From 6p to 9:30p, the amount of data was the expected amount from a working primary server with multiple secondaries syncing to it. At 3a, you’ll see an enormous amount of data transfered.</p> +

The most important bit of information the above chart shows us is what a full database transfer looks like in terms of bandwidth. From 6p to 9:30p, the amount of data was the expected amount from a working primary server with multiple secondaries syncing to it. At 3a, you’ll see an enormous amount of data transfered.

-<p>This tells us that the hacker was an automated digital vandal rather than a concerted hacking attempt. And if we were to pay the ransom, it wouldn’t do anything because the vandals don’t have the data and have nothing to release.</p> +

This tells us that the hacker was an automated digital vandal rather than a concerted hacking attempt. And if we were to pay the ransom, it wouldn’t do anything because the vandals don’t have the data and have nothing to release.

-<p>We can also reason that the vandal was not able to access any files that were on the server outside of MongoDB due to using a recent version of MongoDB in a Docker container. Unless the attacker had access to a 0-day to both MongoDB and Docker, it is highly unlikely they were able to break out of the MongoDB server connection.</p> +

We can also reason that the vandal was not able to access any files that were on the server outside of MongoDB due to using a recent version of MongoDB in a Docker container. Unless the attacker had access to a 0-day to both MongoDB and Docker, it is highly unlikely they were able to break out of the MongoDB server connection.

-<p>While the server was being snapshot, I used that time to figure out how the hacker got in.</p> +

While the server was being snapshot, I used that time to figure out how the hacker got in.

-<h3 id="2-how-did-newsblurs-mongodb-server-get-hacked">2. How did NewsBlur’s MongoDB server get hacked?</h3> +

2. How did NewsBlur’s MongoDB server get hacked?

-<p>Turns out the ufw firewall I enabled and diligently kept on a strict allowlist with only my internal servers didn’t work on a new server because of Docker. When I containerized MongoDB, Docker helpfully inserted an allow rule into iptables, opening up MongoDB to the world. So while my firewall was “active”, doing a <code class="language-plaintext highlighter-rouge">sudo iptables -L | grep 27017</code> showed that MongoDB was open the world. This has been <a href="https://github.com/moby/moby/issues/4737">a Docker footgun since 2014</a>.</p> +

Turns out the ufw firewall I enabled and diligently kept on a strict allowlist with only my internal servers didn’t work on a new server because of Docker. When I containerized MongoDB, Docker helpfully inserted an allow rule into iptables, opening up MongoDB to the world. So while my firewall was “active”, doing a sudo iptables -L | grep 27017 showed that MongoDB was open the world. This has been a Docker footgun since 2014.

-<p>To be honest, I’m a bit surprised it took over 3 hours from when I flipped the switch to when a hacker/vandal dropped NewsBlur’s MongoDB collections and pretended to ransom about 250GB of data. This is the work of an automated hack and one that I was prepared for. NewsBlur was back online a few hours later once the backups were restored and the Docker-made hole was patched.</p> +

To be honest, I’m a bit surprised it took over 3 hours from when I flipped the switch to when a hacker/vandal dropped NewsBlur’s MongoDB collections and pretended to ransom about 250GB of data. This is the work of an automated hack and one that I was prepared for. NewsBlur was back online a few hours later once the backups were restored and the Docker-made hole was patched.

-<p>It would make for a much more dramatic read if I was hit through a vulnerability in Docker instead of a footgun. By having Docker silently override the firewall, Docker has made it easier for developers who want to open up ports on their containers at the expense of security. Better would be for Docker to issue a warning when it detects that the most popular firewall on Linux is active and filtering traffic to a port that Docker is about to open.</p> +

It would make for a much more dramatic read if I was hit through a vulnerability in Docker instead of a footgun. By having Docker silently override the firewall, Docker has made it easier for developers who want to open up ports on their containers at the expense of security. Better would be for Docker to issue a warning when it detects that the most popular firewall on Linux is active and filtering traffic to a port that Docker is about to open.

-<p><img src="/assets/ornament-pill.png" style="display: block; margin: 0 auto;width: 100px;" /></p> +

-<p>The second reason we know that no data was taken comes from looking through the MongoDB access logs. With these rich and verbose logging sources we can invoke a pretty neat command to find everybody who is not one of the 100 known NewsBlur machines that has accessed MongoDB.</p> +

The second reason we know that no data was taken comes from looking through the MongoDB access logs. With these rich and verbose logging sources we can invoke a pretty neat command to find everybody who is not one of the 100 known NewsBlur machines that has accessed MongoDB.

-<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight" style="max-height: 200px;"><code> -$ cat /var/log/mongodb/mongod.log | egrep -v "159.65.XX.XX|161.89.XX.XX|&lt;&lt; SNIP: A hundred more servers &gt;&gt;" +

+$ cat /var/log/mongodb/mongod.log | egrep -v "159.65.XX.XX|161.89.XX.XX|<< SNIP: A hundred more servers >>"
 
 2021-06-24T01:33:45.531+0000 I NETWORK  [listener] connection accepted from 171.25.193.78:26003 #63455699 (1189 connections now open)
-2021-06-24T01:33:45.635+0000 I NETWORK  [conn63455699] received client metadata from 171.25.193.78:26003 conn63455699: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
+2021-06-24T01:33:45.635+0000 I NETWORK  [conn63455699] received client metadata from 171.25.193.78:26003 conn63455699: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
 2021-06-24T01:33:46.010+0000 I NETWORK  [listener] connection accepted from 171.25.193.78:26557 #63455724 (1189 connections now open)
-2021-06-24T01:33:46.092+0000 I NETWORK  [conn63455724] received client metadata from 171.25.193.78:26557 conn63455724: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
+2021-06-24T01:33:46.092+0000 I NETWORK  [conn63455724] received client metadata from 171.25.193.78:26557 conn63455724: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
 2021-06-24T01:33:46.500+0000 I NETWORK  [conn63455724] end connection 171.25.193.78:26557 (1198 connections now open)
 2021-06-24T01:33:46.533+0000 I NETWORK  [conn63455699] end connection 171.25.193.78:26003 (1200 connections now open)
 2021-06-24T01:34:06.533+0000 I NETWORK  [listener] connection accepted from 185.220.101.6:10056 #63456621 (1266 connections now open)
-2021-06-24T01:34:06.627+0000 I NETWORK  [conn63456621] received client metadata from 185.220.101.6:10056 conn63456621: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
+2021-06-24T01:34:06.627+0000 I NETWORK  [conn63456621] received client metadata from 185.220.101.6:10056 conn63456621: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
 2021-06-24T01:34:06.890+0000 I NETWORK  [listener] connection accepted from 185.220.101.6:21642 #63456637 (1264 connections now open)
-2021-06-24T01:34:06.962+0000 I NETWORK  [conn63456637] received client metadata from 185.220.101.6:21642 conn63456637: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
+2021-06-24T01:34:06.962+0000 I NETWORK  [conn63456637] received client metadata from 185.220.101.6:21642 conn63456637: { driver: { name: "PyMongo", version: "3.11.4" }, os: { type: "Linux", name: "Linux", architecture: "x86_64", version: "5.4.0-74-generic" }, platform: "CPython 3.8.5.final.0" }
 2021-06-24T01:34:08.018+0000 I COMMAND  [conn63456637] dropDatabase config - starting
 2021-06-24T01:34:08.018+0000 I COMMAND  [conn63456637] dropDatabase config - dropping 1 collections
 2021-06-24T01:34:08.018+0000 I COMMAND  [conn63456637] dropDatabase config - dropping collection: config.transactions
@@ -262,118 +275,88 @@ $ cat /var/log/mongodb/mongod.log | egrep -v "159.65.XX.XX|161.89.XX.XX|&am
 2021-06-24T01:34:08.398+0000 I COMMAND  [conn63456637] dropDatabase newsblur - starting
 2021-06-24T01:34:08.398+0000 I COMMAND  [conn63456637] dropDatabase newsblur - dropping 37 collections
 
-&lt;&lt; SNIP: It goes on for a while... &gt;&gt;
+<< SNIP: It goes on for a while... >>
 
 2021-06-24T01:35:18.840+0000 I COMMAND  [conn63456637] dropDatabase newsblur - finished
-</code></pre></div></div>
+
-<p>The above is a lot, but the important bit of information to take from it is that by using a subtractive filter, capturing everything that doesn’t match a known IP, I was able to find the two connections that were made a few seconds apart. Both connections from these unknown IPs occured only moments before the database-wide deletion. By following the connection ID, it became easy to see the hacker come into the server only to delete it seconds later.</p> +

The above is a lot, but the important bit of information to take from it is that by using a subtractive filter, capturing everything that doesn’t match a known IP, I was able to find the two connections that were made a few seconds apart. Both connections from these unknown IPs occured only moments before the database-wide deletion. By following the connection ID, it became easy to see the hacker come into the server only to delete it seconds later.

-<p>Interestingly, when I visited the IP address of the <a href="http://185.220.101.6/">two</a> <a href="http://171.25.193.78/">connections</a> above, I found a Tor exit router:</p> +

Interestingly, when I visited the IP address of the two connections above, I found a Tor exit router:

-<p><img src="/assets/hack-tor.png" /></p> +

-<p>This means that it is virtually impossible to track down who is responsible due to the anonymity-preserving quality of Tor exit routers. <a href="https://blog.cloudflare.com/the-trouble-with-tor/">Tor exit nodes have poor reputations</a> due to the havoc they wreak. Site owners are split on whether to block Tor entirely, but some see the value of allowing anonymous traffic to hit their servers. In NewsBlur’s case, because NewsBlur is a home of free speech, allowing users in countries with censored news outlets to bypass restrictions and get access to the world at large, the continuing risk of supporting anonymous Internet traffic is worth the cost.</p> +

This means that it is virtually impossible to track down who is responsible due to the anonymity-preserving quality of Tor exit routers. Tor exit nodes have poor reputations due to the havoc they wreak. Site owners are split on whether to block Tor entirely, but some see the value of allowing anonymous traffic to hit their servers. In NewsBlur’s case, because NewsBlur is a home of free speech, allowing users in countries with censored news outlets to bypass restrictions and get access to the world at large, the continuing risk of supporting anonymous Internet traffic is worth the cost.

-<h3 id="3-what-will-happen-to-ensure-this-doesnt-happen-again">3. What will happen to ensure this doesn’t happen again?</h3> +

3. What will happen to ensure this doesn’t happen again?

-<p>Of course, being in support of free speech and providing enhanced ways to access speech comes at a cost. So for NewsBlur to continue serving traffic to all of its worldwide readers, several changes have to be made.</p> +

Of course, being in support of free speech and providing enhanced ways to access speech comes at a cost. So for NewsBlur to continue serving traffic to all of its worldwide readers, several changes have to be made.

-<p>The first change is the one that, ironically, we were in the process of moving to. A VPC, a virtual private cloud, keeps critical servers only accessible from others servers in a private network. But in moving to a private network, I need to migrate all of the data off of the publicly accessible machines. And this was the first step in that process.</p> +

The first change is the one that, ironically, we were in the process of moving to. A VPC, a virtual private cloud, keeps critical servers only accessible from others servers in a private network. But in moving to a private network, I need to migrate all of the data off of the publicly accessible machines. And this was the first step in that process.

-<p>The second change is to use database user authentication on all of the databases. We had been relying on the firewall to provide protection against threats, but when the firewall silently failed, we were left exposed. Now who’s to say that this would have been caught if the firewall failed but authentication was in place. I suspect the password needs to be long enough to not be brute-forced, because eventually, knowing that an open but password protected DB is there, it could very possibly end up on a list.</p> +

The second change is to use database user authentication on all of the databases. We had been relying on the firewall to provide protection against threats, but when the firewall silently failed, we were left exposed. Now who’s to say that this would have been caught if the firewall failed but authentication was in place. I suspect the password needs to be long enough to not be brute-forced, because eventually, knowing that an open but password protected DB is there, it could very possibly end up on a list.

-<p>Lastly, a change needs to be made as to which database users have permission to drop the database. Most database users only need read and write privileges. The ideal would be a localhost-only user being allowed to perform potentially destructive actions. If a rogue database user starts deleting stories, it would get noticed a whole lot faster than a database being dropped all at once.</p> +

Lastly, a change needs to be made as to which database users have permission to drop the database. Most database users only need read and write privileges. The ideal would be a localhost-only user being allowed to perform potentially destructive actions. If a rogue database user starts deleting stories, it would get noticed a whole lot faster than a database being dropped all at once.

-<p>But each of these is only one piece of a defense strategy. <a href="https://news.ycombinator.com/item?id=27613217">As this well-attended Hacker News thread from the day of the hack made clear</a>, a proper defense strategy can never rely on only one well-setup layer. And for NewsBlur that layer was a allowlist-only firewall that worked perfectly up until it didn’t.</p> +

But each of these is only one piece of a defense strategy. As this well-attended Hacker News thread from the day of the hack made clear, a proper defense strategy can never rely on only one well-setup layer. And for NewsBlur that layer was a allowlist-only firewall that worked perfectly up until it didn’t.

-<p>As usual the real heros are backups. Regular, well-tested backups are a necessary component to any web service. And with that, I’ll prepare to <a href="https://beta.newsblur.com">launch the big NewsBlur redesign later this week</a>.</p>
tl;dr: A vandal deleted NewsBlur’s MongoDB database during a migration. No data was stolen or lost.
Android app update: premium subscriptions, saved searches, in-app browser, auto-dark mode2020-11-03T07:41:03-05:002020-11-03T07:41:03-05:00https://blog.newsblur.com/2020/11/03/android-app-update-premium-subscriptions-saved<p>For a point release this one sure is big. The Android app has been upgraded to include a bunch of features found on the web.</p> +

As usual the real heros are backups. Regular, well-tested backups are a necessary component to any web service. And with that, I’ll prepare to launch the big NewsBlur redesign later this week.

]]>
Android app update: premium subscriptions, saved searches, in-app browser, auto-dark mode2020-11-03T07:41:03-05:002020-11-03T07:41:03-05:00https://blog.newsblur.com/2020/11/03/android-app-update-premium-subscriptions-savedFor a point release this one sure is big. The Android app has been upgraded to include a bunch of features found on the web.

-<p>For one, premium subscriptions can now be purchased in the Android app itself. Reading by folder, saved story tags, searching and saved searches are all premium features that you can unlock directly in the app.</p> +

For one, premium subscriptions can now be purchased in the Android app itself. Reading by folder, saved story tags, searching and saved searches are all premium features that you can unlock directly in the app.

-<p>Also, saved searches are now at the bottom of your feed list. Take a look:</p> +

Also, saved searches are now at the bottom of your feed list. Take a look:

-<figure class="tmblr-full" data-orig-height="960" data-orig-width="1081" data-orig-src="https://s3.amazonaws.com/static.newsblur.com/blog/android-saved-searches.png"><img width="650" style="width: 650px; height: auto;" data-orig-height="960" data-orig-width="1081" src="https://s3.amazonaws.com/static.newsblur.com/blog/android-saved-searches.png" /></figure> +
-<p>Heres’ the full list of version 10.1’s many new features:</p> +

Heres’ the full list of version 10.1’s many new features:

-<ul> - <li>Premium subscriptions are now available on Android! Read by folder, saved story tags, searching, and more is exclusive to premium subscribers.</li> - <li>Saved searches</li> - <li>In-app browser, so you don’t need to leave NewsBlur</li> - <li>Auto-theme option for dark mode so it can turn on automatically at night</li> - <li>You can now delete and rename folders and add a folder while adding a feed</li> - <li>Fixed issues around the intelligence trainer, HTML in comments, some images not loading</li> -</ul> +
    +
  • Premium subscriptions are now available on Android! Read by folder, saved story tags, searching, and more is exclusive to premium subscribers.
  • +
  • Saved searches
  • +
  • In-app browser, so you don’t need to leave NewsBlur
  • +
  • Auto-theme option for dark mode so it can turn on automatically at night
  • +
  • You can now delete and rename folders and add a folder while adding a feed
  • +
  • Fixed issues around the intelligence trainer, HTML in comments, some images not loading
  • +
-<p>If you would like to request a new feature on Android, please submit an idea on the <a href="https://forum.newsblur.com">NewsBlur Forum</a>. We’re prioritizing the next big release and would love to hear your input.</p>
For a point release this one sure is big. The Android app has been upgraded to include a bunch of features found on the web.
Customizable grid view story layout2020-10-28T09:01:38-04:002020-10-28T09:01:38-04:00https://blog.newsblur.com/2020/10/28/customizable-grid-view-story-layout<p>The grid view has quickly become one of my go-to story title views. It provides generous, clickable boxes with enlarged images and plenty of preview text. But until now, they were limited to a preset height.</p> +

If you would like to request a new feature on Android, please submit an idea on the NewsBlur Forum. We’re prioritizing the next big release and would love to hear your input.

]]>
Customizable grid view story layout2020-10-28T09:01:38-04:002020-10-28T09:01:38-04:00https://blog.newsblur.com/2020/10/28/customizable-grid-view-story-layoutThe grid view has quickly become one of my go-to story title views. It provides generous, clickable boxes with enlarged images and plenty of preview text. But until now, they were limited to a preset height.

-<p>Starting today, you can now change the height of stories in the grid view. You have five options to choose from: XS, Small, Medium, Large, and XL.</p> +

Starting today, you can now change the height of stories in the grid view. You have five options to choose from: XS, Small, Medium, Large, and XL.

-<figure class="tmblr-full" data-orig-height="761" data-orig-width="1000" data-orig-src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_style.png"><img width="600" style="width:600px;margin: 24px auto; border: 1px solid #606060" data-orig-height="761" data-orig-width="1000" src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_style.png" /></figure> +
-<p>Here are a few examples of how you can customize the grid view.</p> +

Here are a few examples of how you can customize the grid view.

-<p>With the single column layout:</p> +

With the single column layout:

-<figure class="tmblr-full" data-orig-height="966" data-orig-width="1000" data-orig-src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_1.png"><img width="600" style="width:600px;margin: 24px auto; border: 1px solid #606060" data-orig-height="966" data-orig-width="1000" src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_1.png" /></figure> +
-<p>With the 2 column layout:</p> +

With the 2 column layout:

-<figure class="tmblr-full" data-orig-height="938" data-orig-width="1000" data-orig-src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_2.png"><img width="600" style="width:600px;margin: 24px auto; border: 1px solid #606060" data-orig-height="938" data-orig-width="1000" src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_2.png" /></figure> +
-<p>With the 3 column layout:</p> +

With the 3 column layout:

-<figure class="tmblr-full" data-orig-height="715" data-orig-width="1000" data-orig-src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_3.png"><img width="600" style="width:600px;margin: 24px auto; border: 1px solid #606060" data-orig-height="715" data-orig-width="1000" src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_3.png" /></figure> +
-<p>With the 4 column layout:</p> +

With the 4 column layout:

-<figure class="tmblr-full" data-orig-height="957" data-orig-width="1000" data-orig-src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_4.png"><img width="600" style="width:600px;margin: 24px auto; border: 1px solid #606060" data-orig-height="957" data-orig-width="1000" src="https://s3.us-east-1.amazonaws.com/static.newsblur.com/blog/grid_height_4.png" /></figure> +
-<p>Don’t forget you can also adjust the font size and even turn off image previews.</p>
The grid view has quickly become one of my go-to story title views. It provides generous, clickable boxes with enlarged images and plenty of preview text. But until now, they were limited to a preset height.
Highlight passages and add private notes to saved stories2020-07-17T08:30:05-04:002020-07-17T08:30:05-04:00https://blog.newsblur.com/2020/07/17/highlight-passages-and-add-private-notes-on-saved<p>When you’re reading a story and want to save a portion of it for personal use, you now have a couple new options. Highlighting is now available for all stories. Simply select the text you want to highlight and NewsBlur helpfully shows a tooltip that allows you to select a part of the text and save it.</p> +

Don’t forget you can also adjust the font size and even turn off image previews.

]]>
Highlight passages and add private notes to saved stories2020-07-17T08:30:05-04:002020-07-17T08:30:05-04:00https://blog.newsblur.com/2020/07/17/highlight-passages-and-add-private-notes-on-savedWhen you’re reading a story and want to save a portion of it for personal use, you now have a couple new options. Highlighting is now available for all stories. Simply select the text you want to highlight and NewsBlur helpfully shows a tooltip that allows you to select a part of the text and save it.

-<figure class="tmblr-full" data-orig-height="1128" data-orig-width="1492" data-orig-src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight1.png"><img width="650" height="auto" data-orig-height="1128" data-orig-width="1492" src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight1.png" /></figure> +
-<p>You can enrich your reading experience with highlights and come back to passages you want to remember. All stories with highlights are tagged as “Highlights” in your Saved Story tags list. That way you can immediately come back to your highlights.</p> +

You can enrich your reading experience with highlights and come back to passages you want to remember. All stories with highlights are tagged as “Highlights” in your Saved Story tags list. That way you can immediately come back to your highlights.

-<figure class="tmblr-full" data-orig-height="398" data-orig-width="1958" data-orig-src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight2a.png"><img width="650" height="auto" data-orig-height="398" data-orig-width="1958" src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight2a.png" /></figure> +
-<p>Second, you can now also write private notes to yourself. If you’re doing research and want to remember why a particular story is being saved, the private notes text box can save your thoughts without having to share them with the world.</p> +

Second, you can now also write private notes to yourself. If you’re doing research and want to remember why a particular story is being saved, the private notes text box can save your thoughts without having to share them with the world.

-<figure class="tmblr-full" data-orig-height="1048" data-orig-width="1792" data-orig-src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight3.png"><img width="650" height="auto" data-orig-height="1048" data-orig-width="1792" src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight3.png" /></figure> +
-<p>A few other small changes have been added to this feature. You can also save stories and tag them from any website using the bookmarklet (which you can install under Manage &gt; Goodies &gt; Bookmarklet).</p> +

A few other small changes have been added to this feature. You can also save stories and tag them from any website using the bookmarklet (which you can install under Manage > Goodies > Bookmarklet).

-<figure class="tmblr-full" data-orig-height="985" data-orig-width="1300" data-orig-src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight4.jpg"><img width="650" height="auto" data-orig-height="985" data-orig-width="1300" src="https://s3.amazonaws.com/static.newsblur.com/blog/highlight4.jpg" /></figure> +
-<p>Lots to love in this release! Keep <a href="https://forum.newsblur.com">posting good ideas to the forum</a>.</p>
When you’re reading a story and want to save a portion of it for personal use, you now have a couple new options. Highlighting is now available for all stories. Simply select the text you want to highlight and NewsBlur helpfully shows a tooltip that allows you to select a part of the text and save it.
Turn the lights down, dark mode has come to NewsBlur2020-06-24T11:29:59-04:002020-06-24T11:29:59-04:00https://blog.newsblur.com/2020/06/24/turn-the-lights-down-dark-mode-has-come-to<p>We’ve had dark mode on iOS and Android for years but I’m now pleased to announce a worthy dark theme has come to the NewsBlur web app.</p> - -<figure class="tmblr-full" data-orig-height="1441" data-orig-width="1300" data-orig-src="https://s3.amazonaws.com/static.newsblur.com/blog/dark-mode.png"><img data-orig-height="1441" data-orig-width="1300" src="https://s3.amazonaws.com/static.newsblur.com/blog/dark-mode.png" /></figure> - -<p>The origins for this theme came from the community. Originally started by <a href="https://userstyles.org/styles/86275/newsblur-kemwer-black">Kemwer in 2013</a>, it has been maintained and updated by <a href="https://userstyles.org/styles/124890/newsblur-dark-theme-by-splike">Splike since 2014</a>. In fact, you can still use Splike’s theme as an alternate dark mode.</p> - -<p>That’s 7 years of NewsBlur having an unofficial dark mode, but users had to jump through hoops to use it: installing a browser extension (which had a <a href="https://news.ycombinator.com/item?id=17447816">malware scare in 2018</a>) or having to copy the Stylish CSS to NewsBlur’s Account settings where it would need to be manually updated. What NewsBlur needed was having it built in.</p> - -<p>Today NewsBlur is shipping first-class support. Building a dark theme requires more than inverting the existing color scheme, turning white to black and green to purple. Quite a bit of thought around UX and information hierarchy went into this dark theme design. I also used this as an opportunity to freshen up icons and small visual details on both light and dark themes.</p> - -<p>Now we have a consistent dark theme across all of the first-party apps. The <a href="https://blog.newsblur.com/2021/06/21/2014-11-18-offline-reading-and-a-dark-theme-on-the-android.html">Android app had dark mode first in 2014</a>. Then came the <a href="https://blog.newsblur.com/2021/06/21/2016-04-12-newsblur-goes-dark-on-ios.html">iOS app is 2016</a>. Now we’re firmly in 2020 and it’s made it to the web. Goes to show that NewsBlur is always getting better. </p> - -<p>If you like the new features we’ve been releasing recently, I would greatly appreciate if you could share a tweet or Facebook post about NewsBlur. <strong>If you enjoy staying connected with culture and news through NewsBlur and you think your friends and followers would too, let them know about your news reader of choice.</strong> I appreciate all the kind comments that have come in since releasing this new theme.</p> - -<blockquote> - <p>In love 🥰 with the new dark theme of <a href="https://twitter.com/NewsBlur?ref_src=twsrc%5Etfw">@NewsBlur</a> ! Kudos <a href="https://twitter.com/samuelclay?ref_src=twsrc%5Etfw">@samuelclay</a> 👍</p> - - <p>— Jean Traullé (@jtraulle) <a href="https://twitter.com/jtraulle/status/1275814360141701120?ref_src=twsrc%5Etfw">June 24, 2020</a></p> -</blockquote> - -<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> - -<blockquote> - <p>Ooooooooooooooo <a href="https://twitter.com/NewsBlur?ref_src=twsrc%5Etfw">@NewsBlur</a> <a href="https://t.co/eG3XSXzuAG">pic.twitter.com/eG3XSXzuAG</a></p> - - <p>— Billy O’Neal (@MalwareMinigun) <a href="https://twitter.com/MalwareMinigun/status/1275574477753954304?ref_src=twsrc%5Etfw">June 23, 2020</a></p> -</blockquote> - -<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> - -<p>And please keep the <a href="https://forum.newsblur.com">good ideas coming on the forum</a>.</p>We’ve had dark mode on iOS and Android for years but I’m now pleased to announce a worthy dark theme has come to the NewsBlur web app.
\ No newline at end of file +

Lots to love in this release! Keep posting good ideas to the forum.

]]> \ No newline at end of file diff --git a/blog/_site/index.html b/blog/_site/index.html index 0881071c7..11ad6ecb0 100644 --- a/blog/_site/index.html +++ b/blog/_site/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> The NewsBlur Blog | A new sound of an old instrument - + @@ -18,11 +18,12 @@ + +{"@context":"https://schema.org","@type":"WebSite","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","name":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/"} @@ -63,7 +64,30 @@
-
-
  • -

    - - Turn the lights down, dark mode has come to NewsBlur - -

    -
    -

    We’ve had dark mode on iOS and Android for years but I’m now pleased to announce a worthy dark theme has come to the NewsBlur web app.

    - -
    - -

    The origins for this theme came from the community. Originally started by Kemwer in 2013, it has been maintained and updated by Splike since 2014. In fact, you can still use Splike’s theme as an alternate dark mode.

    - -

    That’s 7 years of NewsBlur having an unofficial dark mode, but users had to jump through hoops to use it: installing a browser extension (which had a malware scare in 2018) or having to copy the Stylish CSS to NewsBlur’s Account settings where it would need to be manually updated. What NewsBlur needed was having it built in.

    - -

    Today NewsBlur is shipping first-class support. Building a dark theme requires more than inverting the existing color scheme, turning white to black and green to purple. Quite a bit of thought around UX and information hierarchy went into this dark theme design. I also used this as an opportunity to freshen up icons and small visual details on both light and dark themes.

    - -

    Now we have a consistent dark theme across all of the first-party apps. The Android app had dark mode first in 2014. Then came the iOS app is 2016. Now we’re firmly in 2020 and it’s made it to the web. Goes to show that NewsBlur is always getting better. 

    - -

    If you like the new features we’ve been releasing recently, I would greatly appreciate if you could share a tweet or Facebook post about NewsBlur. If you enjoy staying connected with culture and news through NewsBlur and you think your friends and followers would too, let them know about your news reader of choice. I appreciate all the kind comments that have come in since releasing this new theme.

    - -
    -

    In love 🥰 with the new dark theme of @NewsBlur ! Kudos @samuelclay 👍

    - -

    — Jean Traullé (@jtraulle) June 24, 2020

    -
    - - - -
    -

    Ooooooooooooooo @NewsBlur pic.twitter.com/eG3XSXzuAG

    - -

    — Billy O’Neal (@MalwareMinigun) June 23, 2020

    -
    - - - -

    And please keep the good ideas coming on the forum.

    - -
  • diff --git a/blog/_site/page10/index.html b/blog/_site/page10/index.html index 7395fd1e9..dc3d9ee7b 100644 --- a/blog/_site/page10/index.html +++ b/blog/_site/page10/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 10 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page10/"} @@ -64,7 +65,34 @@
    -
    -
  • -

    - - A Social Feed Reader - -

    -
    -

    NewsBlur was released exactly one year ago. You can read the initial reaction on Hacker News: http://news.ycombinator.com/item?id=1834305. Since then, so much has changed and all for the better. Usage is up—way, way up. Premium users are helping the site run. Load times are approaching the goal of less than 100 ms (0.10 sec) per page. In short, things couldn’t be better.

    - -

    Recently, my main competitor, Google Reader, announced plans to decommission the social features of the site and integrate them into Google+. While Google is busy refocusing on what’s important to them, many users feel left behind. My goal with NewsBlur is to make a better, complete experience for reading sites. This includes social features that make reading a social experience.

    - -

    Social is a major planned feature. It’s highly prioritized right after I build two other big ticket items: mobile and search. The mobile iPhone app is wrapping up and is already at version 1.1 on the App Store, although I have not publicly launched it because it still needs a few more features (specifically, training and the river of news) to be considered feature-complete.

    - -

    Once that’s out the door, I have to build search to be able to support social. Search won’t be impossible, since the UI design decisions are fairly straight-foward, and the backend is a no-brainer in terms of design. But it’ll take some time to get right, make fast, and get integrated into the massive database that is quickly accumulating.

    - -

    After that, I have so many social ideas swimming in my head that I’m ready to drown. I’ve had these social features planned since day one. But I never built them because I needed to make a proof-of-concept first, to be sure that social features would be even feasible.

    - -

    Also, you can’t discount the immense network effort that building social features would bring. I’m a solo indie developer working on this part-time. Having social features would crush my servers if used as much as I think they would. But know that I am planning some wonderful features to be released as soon as the pieces are in place. Look for the first inkling in the new year.

    - -

    Let me know on Twitter what your ideas of a good social experience are: @samuelclay.

    - -

    Sam Clay

    - -
  • diff --git a/blog/_site/page11/index.html b/blog/_site/page11/index.html index 66150d191..3eff4548f 100644 --- a/blog/_site/page11/index.html +++ b/blog/_site/page11/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 11 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,11 +18,12 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page11/"} @@ -63,7 +64,32 @@
    -
    • + diff --git a/blog/_site/page3/index.html b/blog/_site/page3/index.html index 664f9c169..ab61742cb 100644 --- a/blog/_site/page3/index.html +++ b/blog/_site/page3/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 3 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page3/"} @@ -65,6 +66,45 @@
      • +

        + + NewsBlur for iPhone X + +

        +
        +

        I’m proud to announce the launch of version 7.0 of the NewsBlur iOS app, complete with iPhone X support. There’s a lot that’s new and improved in this release.

        + +
        + +

        Also new to the release is that addition of in-app payments for a NewsBlur premium subscription. This was a long time coming. This upgrades the iOS app to match the experience on the web. And because in-app subscriptions are now live, the iOS app will now match the free account restrictions you’ll find on the web. As a reminder, NewsBlur is a paid service with free accounts that act as indefinite trials.

        + +
        + +

        Here’s a complete list of what’s new:

        + +
          +
        • Built for iOS 11 and iPhone X
        • +
        • In app purchases allow you to upgrade to a premium subscription from inside the app
        • +
        • Drag-and-drop on iPad to share stories and images from NewsBlur
        • +
        • New view: Infrequent Site Stories shows stories from feeds that update less than once a day (premium only)
        • +
        • Theme manager in every view for quick color changes
        • +
        • Adding San Francisco font choice
        • +
        • Adding feed list and story list font size controls so you can change size directly from each view
        • +
        • Adding in-app Safari with Reader mode option
        • +
        • Scroll position is now saved, so when you return to a story you maintain your place
        • +
        • New mark as read button on iPad when in landscape or with story titles on bottom
        • +
        • Fixing image sizing on all iPhones and iPads
        • +
        • Updated many layouts for better future compatibility
        • +
        • Fixing unread count badge for users without notifications turned on
        • +
        • Fixing duplicate title/URL in Messages sharing (thanks Nicholas R!)
        • +
        • Fixing compatibility with Firefox (thanks Joe G!)
        • +
        + +

        I hope you enjoy the updated iOS app. I have plans to build new features on top of the app next year, when some huge features will make their debut.

        + + +
        +
      • Infrequent Site Stories is the blog reader we need @@ -358,29 +398,6 @@

        I’ve been working on Turn Touch for years and I hope it shows.

        -

      -
    • -

      - - Preview NewsBlur's upcoming hardware device, Turn Touch - -

      -
      -

      I have something very exciting to share with you today. I’ve been working on a secret project called Turn Touch and I’m just about ready to show it to you. Signup on turntouch.com to find out.

      - -

      - -

      It’s a new kind of device and it’s machined out of solid wood. I built it to last, much like my other projects (for instance the news reader you’re likely reading this in). Turn Touch is built for NewsBlur, among many other things.

      - -

      Turn Touch will be launching on Kickstarter next week and I want to ask for your help. When I launch my campaign I’m going to need people like you to share it with people who look to you for recomendations on what’s good. You already use NewsBlur, so you’re already known for having good taste.

      - -

      Now, you probably want to know what Turn Touch is and actually looks like, yeah? Then signup on turntouch.com.

      - -

      You’ll get to preview the Kickstarter campaign and offer me any feedback you have. You’ll get to see Turn Touch and find out what it offers you.

      - -

      I’ve been working on this as a side project for that past few years. And by signing up you’ll have the first access to it.

      - -
    diff --git a/blog/_site/page4/index.html b/blog/_site/page4/index.html index 3c1aa726e..9a61ea71a 100644 --- a/blog/_site/page4/index.html +++ b/blog/_site/page4/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 4 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page4/"} @@ -64,7 +65,30 @@
    -
    • +
      • +

        + + Preview NewsBlur's upcoming hardware device, Turn Touch + +

        +
        +

        I have something very exciting to share with you today. I’ve been working on a secret project called Turn Touch and I’m just about ready to show it to you. Signup on turntouch.com to find out.

        + +

        + +

        It’s a new kind of device and it’s machined out of solid wood. I built it to last, much like my other projects (for instance the news reader you’re likely reading this in). Turn Touch is built for NewsBlur, among many other things.

        + +

        Turn Touch will be launching on Kickstarter next week and I want to ask for your help. When I launch my campaign I’m going to need people like you to share it with people who look to you for recomendations on what’s good. You already use NewsBlur, so you’re already known for having good taste.

        + +

        Now, you probably want to know what Turn Touch is and actually looks like, yeah? Then signup on turntouch.com.

        + +

        You’ll get to preview the Kickstarter campaign and offer me any feedback you have. You’ll get to see Turn Touch and find out what it offers you.

        + +

        I’ve been working on this as a side project for that past few years. And by signing up you’ll have the first access to it.

        + + +
        +
      • A new NewsBlur Android release for the new year @@ -319,41 +343,6 @@

        Of course you can turn them right off.

        -

    -
  • -

    - - Two new third-party NewsBlur apps for iOS and Windows - -

    -
    -

    NewsBlur has an amazingly active third-party app community, thanks to the well documented NewsBlur API. Today I’d like to introduce you to two new apps built by developers on the NewsBlur API.

    - -

    Hypersonic for Windows 10 & Windows Phone

    - -

    Hypersonic is clean, simple, beautiful, and designed to run across both mobile and desktop devices.

    - -

    - -

    - -

    - -

    - -

    Add My Feed for iOS

    - -

    Add My Feed is an extension allowing you to effortlessly add RSS feeds to your online reader of choice.

    - -

    When you encounter a site you would like to subscribe to, simply tap the Add My Feed extension and you’re done !

    - -

    Add My Feed works in Safari and in any app supporting the standard iOS share sheet.

    - -

    - -

    Both of these apps and many more are on the Goodies & Mobile Apps dialog. If you’ve developed an app for NewsBlur and would like to add it to Goodies (and have it blogged about here), let me know!

    - -
  • diff --git a/blog/_site/page5/index.html b/blog/_site/page5/index.html index 00ab518c7..48b536eb5 100644 --- a/blog/_site/page5/index.html +++ b/blog/_site/page5/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 5 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page5/"} @@ -64,7 +65,42 @@
    -
    -
  • -

    - - A real solution to the deprecated YouTube API - -

    -
    -

    YouTube, owned by Google, deprecated their v2 APIs on April 20th, 2015, which means that RSS news readers can no longer watch for new videos. What a bummer!

    - -

    Except it’s not at all a big deal because here at NewsBlur we’re making sure that your videos keep coming in. Previously enterprising users setup hacks and workarounds for the API, which was a somewhat tedious solution as you had to update each feed and prone to breaking in the future.

    - -

    But there’s good news today because NewsBlur now has a custom-built solution for YouTube videos. All of your existing YouTube RSS feeds are automatically ported over to the new YouTube video fetcher.

    - -

    - -

    And that’s not all. The improved YouTube video fetcher now displays a big embedded video so you can watch the video right in NewsBlur.

    - -

    - -

    To subscribe to new YouTube channels, just enter in the URL of the channel in the Add Site popover.

    - -

    - -

    When Google takes away your tools, NewsBlur builds them better than before.

    - -
  • diff --git a/blog/_site/page6/index.html b/blog/_site/page6/index.html index d6d322856..bedd0349b 100644 --- a/blog/_site/page6/index.html +++ b/blog/_site/page6/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 6 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page6/"} @@ -64,7 +65,34 @@
    -
    -
  • -

    - - Adjust the font size of feed and story titles - -

    -
    -

    It was only a few months ago back in April that I launched the new font and style manager. Today I’m coming back to finish the job.

    - -

    The style manager now has a new control for choosing the font size of feed titles and story titles.

    - -

    - -

    Choose from extra small to extra large. These new font sizes not only give you extra customization, but they allow you to have bigger touch sizes for folks using touch screen monitors.

    - -

    - -

    If you spot anywhere else that you’d like to see additional customization, please shout out to the @newsblur account on Twitter or post an idea on NewsBlur’s Get Satisfaction support site.

    - -

    And please continue to talk about how much you use NewsBlur. Every tweet that talks positively about NewsBlur makes all of this work worthwhile.

    - -
  • diff --git a/blog/_site/page7/index.html b/blog/_site/page7/index.html index f6be98a0c..7849a87ff 100644 --- a/blog/_site/page7/index.html +++ b/blog/_site/page7/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 7 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page7/"} @@ -64,7 +65,30 @@
    -
    -
  • -

    - - Saved story tagging - -

    -
    -

    It’s one thing to follow a handful of sites and use NewsBlur’s training to only read the stories you want to read. But sometimes you want to come back to stories long after you’ve read them. You could save the story, but then you would have to either scroll down your saved story list to find the story, or use the new search feature to find it by title or author.

    - -

    Today I would like to introduce a big new feature: saved story tagging. It works like this. When you save a story, it is automatically tagged with all of the folders that the site is part of.

    - -

    - -

    After the story is auto-tagged by folder, you can then add your own tags, which are autocompleted by previously used tags. You can also click a button to auto-tag the story with its own tags, easily clicking on the tags you want to remove.

    - -

    - -

    You can also search per-tag and soon you will be able to rename and delete tags. There are more plans to integrate tagging into both iOS and Android apps.

    - -

    Saved story tags also have RSS feeds. This is a big deal, since this allows you to save stories and have them automatically ingested by IFTTT for use elsewhere. You already could share stories over your blurblog, but now you have a private RSS feed that gives you far greater control.

    - -

    Stay tuned because there are even more big features coming soon. Telling your friends about NewsBlur, whether on Twitter and Facebook or when spying over their shoulder and noticing that they’re hitting the same dozen sites over and over again without letting the sites come to them with new stories, goes a long way towards getting new features built. More users means more premiums which means more features getting built. It’s a vicious cycle.

    - -
  • diff --git a/blog/_site/page8/index.html b/blog/_site/page8/index.html index 72f4e630c..4ac86dcd6 100644 --- a/blog/_site/page8/index.html +++ b/blog/_site/page8/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 8 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page8/"} @@ -64,7 +65,32 @@
    -
    • +
      • +

        + + Saved story tagging + +

        +
        +

        It’s one thing to follow a handful of sites and use NewsBlur’s training to only read the stories you want to read. But sometimes you want to come back to stories long after you’ve read them. You could save the story, but then you would have to either scroll down your saved story list to find the story, or use the new search feature to find it by title or author.

        + +

        Today I would like to introduce a big new feature: saved story tagging. It works like this. When you save a story, it is automatically tagged with all of the folders that the site is part of.

        + +

        + +

        After the story is auto-tagged by folder, you can then add your own tags, which are autocompleted by previously used tags. You can also click a button to auto-tag the story with its own tags, easily clicking on the tags you want to remove.

        + +

        + +

        You can also search per-tag and soon you will be able to rename and delete tags. There are more plans to integrate tagging into both iOS and Android apps.

        + +

        Saved story tags also have RSS feeds. This is a big deal, since this allows you to save stories and have them automatically ingested by IFTTT for use elsewhere. You already could share stories over your blurblog, but now you have a private RSS feed that gives you far greater control.

        + +

        Stay tuned because there are even more big features coming soon. Telling your friends about NewsBlur, whether on Twitter and Facebook or when spying over their shoulder and noticing that they’re hitting the same dozen sites over and over again without letting the sites come to them with new stories, goes a long way towards getting new features built. More users means more premiums which means more features getting built. It’s a vicious cycle.

        + + +
        +
      • Three new features for the web: syntax highlighting for source code, adjustable video widths, and footnotes @@ -303,25 +329,6 @@

        You can also search your saved stories and shared stories. This feature will soon find it’s way to both Android and iOS, and is available today to all premium users.

        -

    -
  • -

    - - NewsBlur Puzzle T-shirt 2013 - -

    -
    -

    Last year I was proud to be able to send a free t-shirt and handwritten note to every single user who requested one. It took a few days of writing, stuffing, and mailing to send out a couple hundred t-shirts.

    - -

    - -

    I’m pleased to announce that this year’s t-shirt is a puzzle with every single letter being part of a 4+ letter word. I’m using Teespring for fulfillment and order processing. While it’s not free, I am making absolutely zilch profit, so I can keep the t-shirt price to the absolute minimum.

    - -

    - -

    Impress your friends with your esoteric yet exquisite taste in t-shirts. But you’d better move quickly, you only have until July 31st, one week from now, to order the t-shirt. Order the 2013 NewsBlur t-shirt on Teespring.

    - -
  • diff --git a/blog/_site/page9/index.html b/blog/_site/page9/index.html index adc56f25b..7b9c81b26 100644 --- a/blog/_site/page9/index.html +++ b/blog/_site/page9/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Page 9 of 11 for The NewsBlur Blog | A new sound of an old instrument - + @@ -18,12 +18,13 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"The NewsBlur Blog","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/page9/"} @@ -64,7 +65,26 @@
    -
    -
  • -

    - - Do the robot: the official NewsBlur Android app is here - -

    -
    -

    You’ve been bugging us for two years about it, and now it’s finally here: NewsBlur’s expansion to mobile is complete, with our first-ever official Android app ready and waiting for your device. Thanks to the gifts of money and time from Y Combinator and the programming prowess of Papermill creator Ryan Bateman (otherwise known as @secretsquirrel), you can now join your iOS brethren on the couch with your daily dose of RSS goodness. Level of accompanying smugness is up to you.

    - -

    image image image image

    - -

    The Android app has all the features of the iOS app, including:

    - -
      -
    • All your sites, folders, and friends’ blurblogs
    • -
    • Speedy downloading of sites and general alacrity of use
    • -
    • The ability to share and comment on stories on your blurblog
    • -
    • Direct imports from Google Reader: download the app without ever having to hit the Web to set up an account
    • -
    • Follow new people, read their shares, and generally expand your knowledge, worldview, and personal magnetism
    • -
    - -

    Plus, it has that delicious Android flavor, with half the calories.

    - -

    Download the official NewsBlur Android app. Tell your friends! Tip your waitstaff. Try the veal. Floss twice a day. Call your mom, she misses you.

    - -
  • diff --git a/blog/_site/visit/index.html b/blog/_site/visit/index.html index 28b94fd16..faf679b96 100644 --- a/blog/_site/visit/index.html +++ b/blog/_site/visit/index.html @@ -8,9 +8,9 @@ + href="/feed.xml" /> Visit NewsBlur ➤ | The NewsBlur Blog - + @@ -18,10 +18,11 @@ + +{"@context":"https://schema.org","@type":"WebPage","description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","headline":"Visit NewsBlur ➤","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog.newsblur.com/visit/"} diff --git a/blog/assets/ipad-grid-1.png b/blog/assets/ipad-grid-1.png new file mode 100644 index 000000000..0d0876f89 Binary files /dev/null and b/blog/assets/ipad-grid-1.png differ diff --git a/blog/assets/ipad-grid-2.png b/blog/assets/ipad-grid-2.png new file mode 100644 index 000000000..d37958c26 Binary files /dev/null and b/blog/assets/ipad-grid-2.png differ diff --git a/blog/assets/iphone-grid.png b/blog/assets/iphone-grid.png new file mode 100644 index 000000000..3117e52e1 Binary files /dev/null and b/blog/assets/iphone-grid.png differ diff --git a/clients/ios/NewsBlur.xcodeproj/project.pbxproj b/clients/ios/NewsBlur.xcodeproj/project.pbxproj index 12eaf5da5..6ddff2abe 100755 --- a/clients/ios/NewsBlur.xcodeproj/project.pbxproj +++ b/clients/ios/NewsBlur.xcodeproj/project.pbxproj @@ -5503,6 +5503,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 152; DEVELOPMENT_TEAM = HR7P97SD72; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -5554,6 +5555,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 152; DEVELOPMENT_TEAM = HR7P97SD72; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -5696,6 +5698,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 152; DEVELOPMENT_TEAM = HR7P97SD72; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -5745,6 +5748,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 152; DEVELOPMENT_TEAM = HR7P97SD72; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)",