MoreRSS

site iconBuilding Pika Out LoudModify

Changelog of Pika, Pika is a blogging software, made by Good Enough.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Building Pika Out Loud

Insert Variable Button

2026-06-25 00:06:00

Pika offers a variety of special Pika Variables you can insert into your posts and pages that help you do things like output a list of your posts, create a table of contents, add a newsletter, search, or contact form, and more. Many of them also support optional parameters, which make them even more powerful.

While they’re a bit of an advanced feature, that’s no reason to make them hard to discover. Starting today, you’ll find a new “Insert variable” option in the editor toolbar, under the ••• “More” menu:




Reply by email

The Pika Pulse (Is Back)

2026-06-24 00:18:00

It’s time: The Pika Pulse is live again!

The Pika Pulse is our take on helping you discover personal bloggers that are writing on Pika. It now includes a new Following feed and other experimental ideas. Let’s dive into the details…

Recent

Recent is basically the old Pulse: a general feed of recent posts written on Pika. It’s intended to be a fun and serendipitous way to find new blogs and posts to read on Pika. How it’s built includes some intentional design decisions and experiments this time around:

  • First and foremost, the Recent feed is not intended to be a comprehensive feed of all content on Pika. As we mentioned in our Coming Soon post, only blogs that opt into sharing on Pulse (under Settings > Site visibility) and are manually approved by us will show up here. This Pulse-approval process is new for our small team, and we’re intentionally taking it slow in approving blogs as we learn and discover what the Pulse vibes should be! See our updated Pika Rules for more info.

  • Additionally, with only 25 posts displayed, only one post from a given blog can ever be on the Recent feed at any one time. Pika will always display the blog’s oldest available post.

  • We also believe that discovery doesn’t need to be up-to-the-minute. Blogging isn’t a reactive activity, but a contemplative one. Therefore, we’re experimenting with the Recent feed including a large delay. New posts from Pulse-approved blogs won't show up in this feed for about 24 hours after their publish date.

  • Lastly, if there’s a particular blogger you’d rather not see in Pulse, you can mute them from this feed via the ••• menu on the post (if you have a free Pika account). Over time this helps you tailor Recent to your own tastes and interests.

What this all boils down to: Once you discover a new Pika blogger on Recent, if you don’t want to miss a post from them, subscribe via RSS or follow them on Pulse.

Following

Following works quite differently from Recent. This feed includes all posts from all the blogs you follow on Pulse, with only a short 5 minute delay after publish time. (This is the same delay Pika adds to RSS feeds, which gives authors time to make quick post-publish edits.) You can only follow blogs on Pulse if you have a free Pika account.

We think Following on Pulse is a fun and unique alternative to RSS, where you can see all the updates to your favorite Pika blogs in one stream, displayed with the visual character the blogger intended. Posts here have no read or unread state, so you can feel free to check in at your own pace.

For Pika bloggers, like with RSS, there’s no data on who or how many people are following you in this way.

Moderating

Again, as mentioned previously, we, Good Enough, are a small team of two people. While we now have the approval process along with internal mechanisms to help us catch spam, inappropriate content, and other rules violations before they become a problem or land on Pulse, it’s inevitable that we will miss something — we can’t personally vet every post.

We welcome reports from readers if you see a post that might not align with Pika’s values or rules. If you’re logged in, you can report a post from its ••• menu anywhere in Pulse.

That said, if Pika is successful in welcoming a diverse range of people and viewpoints, there will likely be bloggers and content on Pika with which you disagree. In these cases we suggest blogging to share your own insight, respectfully. You can also always mute blogs from your Recent feed.

What will you discover?

This day has been a long time coming, and we’re excited to have The Pika Pulse back online! It’s full of fun little experiments, including “Translate with Google”, keyboard shortcuts to jump between posts, a random-blog button at the bottom of the page, and more.

Once again, we are treating this next iteration like an experiment — one we might need to tweak over time, possibly overhaul, or pivot, or if need be again, end. We’d love to hear your thoughts and feedback on Pulse, the new ideas we’re trying out, and/or anything else you wish to share.

Now go forth and discover!




Reply by email

Behind the Curtain: June ’26

2026-06-19 03:50:51

Pika’s latest round of updates includes a familiar mix: writing improvements, better support for custom sites, more translations, and plenty of under-the-hood work to keep everything running smoothly. Maybe one of the items below will fix a nagging issue for you?

We’re always improving over here at Pika. Kaizen!

Writing posts and pages:

  • Typing in a symbol (e.g. ©) now gives you that symbol as text instead of emoji, which you can still get from the emoji picker (e.g. ©)

  • Added support for Transister.fm podcast embeds (use the share link)

  • Added keyboard support to navigation item reordering

  • Updated Micropub API so it can process incoming image captions in the same format that is seen in the image caption output from the Micropub API

  • Fixed issue with Micropub API posts not properly building footnotes

  • Updated iA Writer integration to consider the first heading in a post as Pika’s title, rather than using the filename

  • Added self-service support for self-hosted Umami analytics

  • Fixed bug where select all did not work in the editor when footnotes existed

Viewing your site:

  • Added Greek, Indonesian, and Esperanto translations

  • Included Custom CSS with newsletter emails, so your styles come through in your emails

  • Added tag classes (e.g. .site-post-tag-[id]) alongside .site-post classes in the DOM to help with Custom CSS targeting

  • Fixed issue with previous/next footers for posts published at the same exact time

  • Fixed issue with page slug generation for posts using only characters sets (Hangul, Chinese, etc) that are not currently URL-compatible

  • Improved slug creation for full width characters and unique characters like ‘&’, ‘%’, ‘+’, and ‘@’

  • Improved search when searching quote characters

Misc & Maintenance:

  • Updated our Rules to touch on NSFW and questionable content

  • Fixed bug with aliases that included trailing slashes

  • Fixed a bug with custom domains when someone misses a payment and then resume Pro status

  • Limited the max size of custom CSS to guard against shenanigans

  • Hardened custom CSS from a couple newly-discovered hacking vectors

  • Created a weblog.lol, Hugo, Astro, and Micro.blog BAR import scripts

  • Update to the latest Ruby and Rails versions

  • Updated many code libraries for security enhancements

  • Added a number of caching headers to our responses to improve page load speed across Pika

There are only two hard things in Computer Science: cache invalidation and naming things.

– Phil Karlton

😭




Reply by email

Multi-language Blog Support

2026-06-10 03:58:00

Pika has supported writing your blog in a non-English language for nearly a year. For many languages, Pika has also been able to provide translations for the  language across your site. One missing link, though, is for folks who blog in more than one language, and we’re happy today to announce that we’ve closed that gap.

To change the language on an individual post or page, simply visit the post’s Settings and select the new language via Set language.

Your site will continue to be translated in the primary language you set for your blog, but individual pages and posts will have the following changes:

  • The <html> tag for the page will include a lang attribute with your chosen language (and locale if necessary) for the page

  • Your RSS feeds will still indicate your site language globally, but each individual post will indicate the post language if it differs from your site language

  • The open graph tags on the page will also indicate your chosen language and locale for the page

We hope this goes a long way to better supporting those of you who blog in multiple languages!




Reply by email

Relative Links

2026-06-05 00:06:50

Over the years, many who blog tend to move their site around to different hosts, or change their domain names. A big pain in this process is when their internal links are pointing to full URLs that may include old domain names.

For example, before today if we wanted to link to our guestbook we would need to enter the URL https://pika.pika.page/guestbook in the editor’s link dialog. If we decided move our blog to https://pikablog.page in the future, we’d have to remember to update that link as well.

If instead we could have linked the word guestbook to /guestbook, a domain-relative URL, that guestbook link would Just Work™ after our domain change.

The good news is that Pika now supports relative links! 

And whenever you add a new link via the handy link search, you will get a relative link automatically:

If you generate an export, it will relative links as well, so if you move to a new service your internal links should continue to work well at your new home.

This was a pretty big change, reaching into all sorts of areas of Pika, so do let us know if you see anything amiss. Oh, and also sign our guestbook!

Note: Any links that you’ve created on existing posts and pages are not automatically updated to be relative. You will need to update these links manually if you’d like them to be relative links.




Reply by email

Post List Variables, Supercharged

2026-06-03 22:56:00

A while back a customer asked if the Pika variable to list out blogs posts could have a year option to show posts from a specific year. It sounded reasonable to add a year: 2025 option, but that small idea also sparked a number of additional thoughts:

  • What if you only wanted to list posts from the current year, and the current year changes, well, every year?

  • What if you only wanted to list posts that aren’t from the current year?

  • What if you wanted to list posts that were written on this day/week/month over the history of your blog?

  • What if you wanted to sort your list of posts randomly?

  • What if you wanted to combine all of these options into something amazing?

Now you can create all sorts of mashups with Pika post list variables. Want to create a page that shows a list of 10 random posts from 2025? Sure!

{{ posts year: 2025 random: yes limit: 10 }}

Want to create a page with a random post that was written in any prior year on this month? You betcha!

{{ posts_in_stream on_this_month year: not_current random: yes limit: 1 with_excerpts: no }}

And if you’re a daily microblogger with years of posts, on_this_day could be a great (re)discovery tool!

There are some nuances about how this all works. You should definitely read the manual, but some clear points:

  • Random is truly a random sort, and if you reload the page you’ll get a new result. (Well, unless you hit a 30-second caching window.) For this reason, if you use random: yes in a post list variable, pagination is turned off.

  • You cannot combine on_this_day, on_this_week, and/or on_this_month. If you have multiples of those options in your variable statement, the most specific of them applies. (on_this_day beats on_this_week beats on_this_month.)

  • Random sorting is not available on {{ posts_by_year }}.

  • Random sorting overrides all other sort options.

Oh, and what if one of these “on this day”-style options returns zero posts? Let’s say you set up a page with a single random on_this_month post as you see in the example above, use this custom CSS on your page to include placeholder text when there are no results:

.site-stream-of-posts:not(:has(*))::after {
  color: var(--color-txt-light) !important;
  content: "Nothing from this day in years past. Check back tomorrow!" !important;
  display: block !important;
  font-size: var(--font-S) !important;
  padding: 1rem !important;
}

This is pretty powerful, eh? Let us know how you use these new variable options!




Reply by email