2026-07-16 21:48:00
Pika has offered the option for custom CSS since the beginning. Many of you who are a bit more technically inclined have been asking us to support custom scripts and other code on your site. If you’re a Pika Pro, we’re happy to announce that you can now add custom code via Settings > Code. (Note that you’ll now also find custom CSS under Settings > Code instead of Settings > Theme.)
What might you use this for? We’ve written up a couple of example scripts that you can add to your site here. (Yes, Claude helped a bit writing these.) Many customers have wanted to add third-party code like custom analytics, webrings, or extra tags to the <head> of their site. We caution you, though, to make sure you greatly trust any third-party whose code you are copying, and be especially careful when linking directly to third-party code.
On to some FAQs…
Why isn’t my post preview including my custom code?
While post previews include custom CSS, custom code added to the <head> or <body> will not be included. This is a security measure because blog post previews are served from the pika.page domain rather than your site’s domain. It would not be safe to let arbitrary JavaScript run on pika.page.
Is custom code just about running JavaScript on my site?
No! You can also add HTML to your <body>, and then manipulate it with JavaScript. Another example would be using a <link> tag in your <head> section to include a font instead of using @import in your custom CSS (more info here).
Why can’t I use these new custom code options on the free Pika Pup plan?
The internet can be terrible. We do not want to offer the means for nefarious people to misuse the Pika platform. If you want to try out these custom code features by upgrading to the Pika Pro plan, rest assured we’re happy to provide a full refund if you decide Pika isn’t for you.
How do I avoid breaking my site with custom code?
We can’t prevent custom code from breaking your site, so we recommend adding only one thing at a time. If the most recent custom code that you added breaks your site, go delete it.
2026-07-09 01:46:00
Tables are finally available in Pika! Yes, tables.
Sometimes information is best conveyed by a good ol’ fashioned table. For example, here are the top names in Nationwide’s nationwide Wackiest Pet Name voting campaign:
🏅 |
Pet Name |
Pet Type |
Hometown |
|---|---|---|---|
Top Dog |
“Internet Browser” |
Plott Hound |
San Antonio, Texas |
Top Cat |
“Cheddar Big Booty Cheeseburger” |
Domestic Longhair |
Benton, Arkansas |
Top Exotic |
“Space Cowboy” |
Bearded Dragon |
Fuquay-Varina, North Carolina |
You might notice this table is wider than the rest of this post. Depending on the content and number of columns, some tables need a bit extra breathing room, so we built that in as an option.
You can find the “Table” option in the editor’s ••• toolbar menu. Copy→pasting a table should work well too. We’re looking forward to all the fun data and information we’ll get to see in The Pika Pulse!
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:
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 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 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.
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.
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!
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
😭
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!