{"id":384844,"date":"2026-10-13T11:53:49","date_gmt":"2026-10-13T11:53:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/now-pages-by-threadi\/"},"modified":"2026-10-13T11:53:24","modified_gmt":"2026-10-13T11:53:24","slug":"threadi-now-pages","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/threadi-now-pages\/","author":13846806,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.1","stable_tag":"1.0.1","tested":"7.1.3","requires":"7.0","requires_php":"8.2","requires_plugins":null,"header_name":"threadi Now Pages","header_author":"Thomas Zwirner","header_description":"Show what you are actually doing on your website.","assets_banners_color":"15151b","last_updated":"2026-10-13 11:53:24","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/www.thomaszwirner.de","rating":0,"author_block_rating":0,"active_installs":0,"downloads":60,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"threadi","date":"2026-10-13 11:53:24","revision":3743797}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3743810,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3743810,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500-de_DE.png":{"filename":"banner-1544x500-de_DE.png","revision":3743810,"resolution":"1544x500","location":"assets","locale":"de_DE","width":1544,"height":500},"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3743810,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250-de_DE.png":{"filename":"banner-772x250-de_DE.png","revision":3743810,"resolution":"772x250","location":"assets","locale":"de_DE","width":772,"height":250},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3743810,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3744428,"resolution":false,"location":"assets","locale":"","contents":"{\"landingPage\":\"\\\/wp-admin\\\/options-general.php?page=threadi_now_pages_settings-setup\",\"preferredVersions\":{\"php\":\"8.4\",\"wp\":\"latest\"},\"phpExtensionBundles\":[\"kitchen-sink\"],\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"threadi-now-pages\"},\"options\":{\"activate\":true}},{\"step\":\"login\",\"username\":\"admin\",\"password\":\"password\"}]}"}},"all_blocks":{"threadi-now-pages\/digest":{"$schema":"https:\/\/json.schemastore.org\/block.json","apiVersion":3,"name":"threadi-now-pages\/digest","title":"Now entries","category":"threadi-now-pages","description":"Lists what you are now doing.","supports":{"html":false,"align":["wide","full"]},"textdomain":"threadi-now-pages","editorScript":"file:build\/index.js","style":"file:build\/style-index.css","attributes":{"period":{"type":"string","default":""},"format":{"type":"string","default":""},"override_display":{"type":"boolean","default":false},"show_time":{"type":"boolean","default":false},"show_source":{"type":"boolean","default":false},"link_source":{"type":"boolean","default":false},"show_period":{"type":"boolean","default":false},"group_by_category":{"type":"boolean","default":true}}}},"tagged_versions":["1.0.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3744385,"resolution":"1","location":"assets","locale":"","width":557,"height":364},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3744385,"resolution":"2","location":"assets","locale":"","width":1108,"height":819},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3744385,"resolution":"3","location":"assets","locale":"","width":962,"height":375}},"screenshots":[]},"plugin_section":[262246],"plugin_tags":[2505,14242,244937,286432,286431],"plugin_category":[],"plugin_contributors":[206820],"plugin_business_model":[],"class_list":["post-384844","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-activity","plugin_tags-indieweb","plugin_tags-now-page","plugin_tags-personal-website","plugin_tags-slash-pages","plugin_contributors-threadi","plugin_committers-threadi"],"banners":{"banner":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/banner-772x250.png?rev=3743810","banner_2x":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/banner-1544x500.png?rev=3743810","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/icon-128x128.png?rev=3743810","icon_2x":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/icon-256x256.png?rev=3743810","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/screenshot-1.png?rev=3744385","caption":""},{"src":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/screenshot-2.png?rev=3744385","caption":""},{"src":"https:\/\/ps.w.org\/threadi-now-pages\/assets\/screenshot-3.png?rev=3744385","caption":""}],"raw_content":"<!--section=description-->\n<p>Your website tells visitors who you are and how to reach you. But what are you up to these days?<\/p>\n\n<p>That's what a <strong>Now page<\/strong> answers: one page \u2013 usually at <code>\/now<\/code> \u2013 about what matters in your life at the moment. Training for a half-marathon, hiking every weekend, a new dance class, last week's concert, life with a newborn, planning a wedding. The things you would tell a friend you haven't seen in a year.<\/p>\n\n<p>The idea comes from <a href=\"https:\/\/sive.rs\/nowff\">Derek Sivers<\/a>, who started the first Now page in 2015. Since then, <a href=\"https:\/\/nownownow.com\">countless personal websites have followed<\/a> his example.<\/p>\n\n<h3>Why a Now page and not just social media?<\/h3>\n\n<p>Social media captures single moments and lets them disappear in the feed. A Now page shows the big picture \u2013 in one place, on your own website, readable for everyone without an account.<\/p>\n\n<p>The catch: a Now page is only worth something while it's current. Updated by hand, it is outdated within weeks.<\/p>\n\n<p><strong>Now Pages keeps it current for you.<\/strong> It collects what you already share elsewhere, adds the things you do regularly, and turns everything into a readable Now page \u2013 automatically, every hour.<\/p>\n\n<h3>Up and running in two minutes<\/h3>\n\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Start the setup and pick a first source \u2013 for example your Fediverse account, your calendar or \"Went to the gym\" once a week.<\/li>\n<li>Done. Your Now page is live \u2013 usually at <code>\/now<\/code> \u2013 and keeps itself up to date.<\/li>\n<\/ol>\n\n<p>Not sure, which source fits? Describe in your own words what you want to show, and AI suggests matching sources \u2013 each one tested before it is offered to you.<\/p>\n\n<h3>What your Now page can show<\/h3>\n\n<ul>\n<li><strong>Your routines<\/strong> \u2013 things no service knows about, like sports, hiking or dancing: write a sentence once, and it is repeated on a schedule \u2013 right away or only after you confirm it, in the list of entries or with a click in an email<\/li>\n<li><strong>Your own entries<\/strong> \u2013 a concert, a trip, a new chapter in your life: add them by hand whenever you like<\/li>\n<li><strong>Your social media<\/strong> \u2013 your posts in the Fediverse and any profile with an RSS feed, e.g., your Bluesky or YouTube channel<\/li>\n<li><strong>Your calendar<\/strong> \u2013 events from any ICS calendar, Meetup groups and WordCamps<\/li>\n<li><strong>Your music, games and books<\/strong> \u2013 what you're listening to on Last.fm, playing on Steam or reading on Goodreads<\/li>\n<li><strong>Your website<\/strong> \u2013 your newest posts, from this or any other blog<\/li>\n<li><strong>Your work<\/strong> \u2013 activity on GitHub or WordPress.org<\/li>\n<li><strong>Everything else<\/strong> \u2013 via webhooks from any system, e.g. a Discord bot or an automation<\/li>\n<\/ul>\n\n<h3>You stay in control<\/h3>\n\n<ul>\n<li>Choose the time span your page covers \u2013 from live to six months<\/li>\n<li>Show entries as they are or let AI write a readable summary<\/li>\n<li>Group entries and organize them with categories<\/li>\n<li>Delay new entries for your privacy, so nobody knows where you are right now<\/li>\n<li>Preview your Now page before anybody else sees it<\/li>\n<li>Share it in the Fediverse via the <a href=\"https:\/\/wordpress.org\/plugins\/activitypub\/\">ActivityPub<\/a> plugin \u2013 daily, weekly or entry by entry \u2013 and let people reply to it<\/li>\n<li>Let your AI assistant find, test and create sources via the WordPress Abilities API<\/li>\n<\/ul>\n\n<h3>Supported page builders<\/h3>\n\n<p>Use native widgets, elements and blocks to make your Now page look its best.<\/p>\n\n<h3>Native support<\/h3>\n\n<ul>\n<li>Avada<\/li>\n<li>Avia (Enfold)<\/li>\n<li>Beaver<\/li>\n<li>Bold Page Builder<\/li>\n<li>Breakdance<\/li>\n<li>Bricks<\/li>\n<li>Brizy<\/li>\n<li>Divi 4<\/li>\n<li>Divi 5<\/li>\n<li>Elementor<\/li>\n<li>Fusion Page Builder<\/li>\n<li>Gutenberg \/ Block Editor<\/li>\n<li>LiveComposer<\/li>\n<li>Oxygen<\/li>\n<li>Pagelayer<\/li>\n<li>SiteOrigin<\/li>\n<li>Themify<\/li>\n<li>WpBakery<\/li>\n<li>ZionBuilder<\/li>\n<\/ul>\n\n<h3>Also supported<\/h3>\n\n<ul>\n<li>Classic WordPress Widget<\/li>\n<li>Colibri Page Builder using the classic WordPress widget<\/li>\n<li>GeneratePress using the block<\/li>\n<li>Kubio using the block<\/li>\n<li>Nimble Builder using the classic WordPress widget<\/li>\n<li>SeedProd Pro using the classic WordPress widget or shortcode<\/li>\n<li><a href=\"https:\/\/github.com\/threadi\/threadi-now-pages\/blob\/master\/docs\/shortcodes.md\">Shortcode<\/a>: <code>[threadi_now_pages_digest]<\/code><\/li>\n<li>Visual Composer using the classic WordPress widget<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not contact any external service on its own. It only does so if you set up a source for one of the services below. Each source is then\nrequested during every import run (by default hourly via WP-Cron) and when you trigger an import manually.<\/p>\n\n<p>Like WordPress itself, every one of these requests sends the address of your website as part of its user agent (e.g. <code>NowPages\/1.0.0; https:\/\/example.com<\/code>). Where the services below say that no other data is transmitted, this address is the exception.<\/p>\n\n<ul>\n<li><p><strong>GitHub<\/strong> \u2013 used to read the public activity of the account you enter, so\nyour commits and releases can be shown on your Now Page. The username you\nconfigured is sent to <code>api.github.com<\/code> with every import, and the personal\naccess token, if you entered one. No other data from your site is\ntransmitted.\n(<a href=\"https:\/\/docs.github.com\/site-policy\/github-terms\/github-terms-of-service\">Terms of Service<\/a>,\n<a href=\"https:\/\/docs.github.com\/site-policy\/privacy-policies\/github-general-privacy-statement\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>Last.fm<\/strong> \u2013 used to read the tracks you have scrobbled. The username and\nthe API key you configured are sent to <code>ws.audioscrobbler.com<\/code> with every\nimport. No other data from your site is transmitted.\n(<a href=\"https:\/\/www.last.fm\/legal\/terms\">Terms of Use<\/a>,\n<a href=\"https:\/\/www.last.fm\/legal\/privacy\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>Steam<\/strong> \u2013 used to read the games you recently played. The SteamID and the\nAPI key you configured are sent to <code>api.steampowered.com<\/code> with every import.\nNo other data from your site is transmitted.\n(<a href=\"https:\/\/steamcommunity.com\/dev\/apiterms\">Steam Web API Terms of Use<\/a>,\n<a href=\"https:\/\/store.steampowered.com\/privacy_agreement\/\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>Goodreads<\/strong> \u2013 used to read the books on one of your shelves via its RSS\nfeed. The numeric user ID and the shelf name you configured are sent to\n  www.goodreads.com with every import. No other data from your site is\ntransmitted.\n(<a href=\"https:\/\/www.goodreads.com\/about\/terms\">Terms of Use<\/a>,\n<a href=\"https:\/\/www.goodreads.com\/about\/privacy\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>WordPress.org<\/strong> \u2013 used to read your public profile activity via its RSS\nfeed. The username you configured is sent to <code>profiles.wordpress.org<\/code> with\nevery import. No other data from your site is transmitted.\n(<a href=\"https:\/\/wordpress.org\/about\/terms\/\">Terms of Service<\/a>,\n<a href=\"https:\/\/wordpress.org\/about\/privacy\/\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>WordCamp Central<\/strong> \u2013 used to read the public calendar of upcoming\nWordCamps from <code>central.wordcamp.org\/calendar.ics<\/code>. Only the request itself\nis sent; no personal data is transmitted.\n(<a href=\"https:\/\/wordpress.org\/about\/terms\/\">Terms of Service<\/a>,\n<a href=\"https:\/\/wordpress.org\/about\/privacy\/\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>Meetup<\/strong> \u2013 used to read the public calendar of the group you enter, so\nits events can be shown on your Now Page. The name of the group you\nconfigured is sent to <code>www.meetup.com<\/code> with every import. No other data\nfrom your site is transmitted.\n(<a href=\"https:\/\/www.meetup.com\/terms\/\">Terms of Service<\/a>,\n<a href=\"https:\/\/www.meetup.com\/privacy\/\">Privacy Policy<\/a>)<\/p><\/li>\n<li><p><strong>Mastodon<\/strong> \u2013 used to read the public posts of your account via its RSS\nfeed. The request goes to the instance you entered yourself, and only the\naccount name you configured is sent. Terms and privacy policy depend on that\ninstance and can be found there.<\/p><\/li>\n<\/ul>\n\n<p>Sources of the type \"Own website\", \"RSS\/Atom feed\" and \"Calendar (ICS)\" request the address you enter yourself. No third-party service is involved.<\/p>\n\n<ul>\n<li><p><strong>The AI service you connected to WordPress<\/strong> \u2013 only used if you connected one\nunder Settings \u2192 Connectors, and only for two optional features. If you choose\n\"Get advice\" when adding a source, your description and the list of source\ntypes this website offers are sent to that service; no keys, no entries and\nno existing sources are sent. Each proposed source is then requested once to\ncheck that it works, before it is offered to you. If you choose the\nAI-generated format for your Now Page, the texts of the entries to summarize\nare sent to that service. Which service this is, and its terms and privacy\npolicy, depend on the connector you chose. The advice can be switched off\nunder Settings \u2192 Now Pages \u2192 AI.<\/p><\/li>\n<li><p><strong>The Fediverse<\/strong> \u2013 only used if you installed the plugin\n<a href=\"https:\/\/wordpress.org\/plugins\/activitypub\/\">ActivityPub<\/a> and chose what to\nshare under Settings \u2192 Now Pages \u2192 Fediverse. Then a summary of each day or\nweek, or each single entry, is handed to that plugin, which delivers it to the\nservers of the people following your website. Only what visitors can see on\nyour now page is shared, and not before the privacy delay has passed. What has\nreached other servers cannot be taken back reliably: removing an entry asks\nthem to delete it, whether they do is up to them. Terms and privacy policy\ndepend on the servers of your followers. Nothing is shared by default.<\/p><\/li>\n<\/ul>\n\n<p>If you use the availability check on a source, the plugin resolves the host of\nthat source's address and opens a connection to it in order to report where a\nproblem occurs. This contacts the same address the source itself uses, and no\ndata from your site is transmitted.<\/p>\n\n<h3>Repository, documentation and reliability<\/h3>\n\n<p>The development repository is on <a href=\"https:\/\/github.com\/threadi\/threadi-now-pages\">GitHub<\/a>. Developers will find several <a href=\"https:\/\/github.com\/threadi\/threadi-now-pages\/blob\/master\/docs\/hooks.md\">hooks<\/a> there.<\/p>\n\n<p>Each release is only published if it passes:<\/p>\n\n<p>\u2705 WordPress Coding Standards\n\u2705 PHPStan\n\u2705 PHPUnit tests\n\u2705 Smoke and Playwright tests<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload \"threadi-now-pages\" to the \"\/wp-content\/plugins\/\" directory or install it via \"Plugins \u2192 Add New\".<\/li>\n<li>Activate the plugin through the \"Plugins\" menu in WordPress.<\/li>\n<li>Start the setup \u2013 it creates your Now page and its first source.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20any%20accounts%20or%20api%20keys%3F\"><h3>Do I need any accounts or API keys?<\/h3><\/dt>\n<dd><p>No. Your routines, your own entries, any RSS feed or calendar, and your website work without any account. Some services like Last.fm or Steam need a free API key, which the setup asks for.<\/p><\/dd>\n<dt id=\"what%20if%20%2Fnow%20is%20already%20taken%20on%20my%20website%3F\"><h3>What if \/now is already taken on my website?<\/h3><\/dt>\n<dd><p>The setup notices it and suggests a free address instead.<\/p><\/dd>\n<dt id=\"do%20i%20need%20ai%3F\"><h3>Do I need AI?<\/h3><\/dt>\n<dd><p>No. AI is optional and only used if you connected an AI service under Settings \u2192 Connectors. Without it, everything else works the same, and the advice can be switched off under Settings \u2192 Now Pages \u2192 AI.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.1<\/h4>\n\n<p>Initial release<\/p>\n\n<p><a href=\"https:\/\/github.com\/threadi\/threadi-now-pages\/blob\/master\/changelog.md\">older changes<\/a><\/p>","raw_excerpt":"Show what's going on in your life right now \u2013 a \/now page that keeps itself up to date from your social media, calendar and everyday routines.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384844","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384844"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/threadi"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384844"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384844"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384844"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384844"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384844"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384844"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}