MoreRSS

site iconBear Blog Trending PostsModify

Ranked according to the following algorithm:Score = log10(U) + (S / D * 8600), U is Upvotes , S/D is time.
Please copy the RSS to your reader, or quickly subscribe to:

Inoreader Feedly Follow Feedbin Local Reader

Rss preview of Blog of Bear Blog Trending Posts

The Year 2025 for powRSS

2025-12-15 04:54:00

One of the fun side projects I've taken on this year has been powRSS, the public RSS feed aggregator for the Indieweb.

As 2025 comes to a close, I want to put together a summary of the things that went on. I'm a strong believer of building in public, and that includes talking about the goals, successes and failures.

Here is how powRSS did this year, from May 21st when it launched to today, December 14th.

Community Numbers

Metric Count
New Blogs 317
Posts Served 15,246

Costs

Item Amount (USD)
Community Support
Ko-Fi +$101.00
Expenses
Domain −$11.06
Hosting −$73.44
Formspree −$120.00
Total expenses −$204.50
Net operating cost −$103.50

Thank you so much to all of you who helped support this project! It's so rewarding to see the response it has gotten in the eight months it has been running.

I'm excited about what the next year has in store for us!

Origin

On Friday May 21, Fred Rocha wrote a blog post titled Small (web) is beautiful in which he talked about digital gardens, the indieweb, and the challenge of discovering new sites and independent voices to follow.

I replied to him with a blog post where I put together some of the resources I knew about like Andreas Gohr's Indieplog.page and Viktor Lofgren's Marginalia Search.

During this time I had been wanting to get back into the Gemini Protocol, as that project was what introduced me to the small and personal web about five years ago. I loved the ethos and the community aspect of it all. When documentation wasn't available to achieve something, I knew I could ask for help and many kind folks would be glad to offer advice.

That evening I put together a quick proof of concept written in Ruby and launched the following morning. I find that the desire to help and build together remains true today with Indieweb communities, and I'm grateful for the comments, advice, and feedback I've received about powRSS since it launched.

early powRSS concept
early powRSS concept

This version was a static page, set to rebuild every 12 hours with new posts from its list of known feeds. It's actually very similar to the way lettrss works to send out each book chapter :-)

Categories

During this time all blog submissions were handled via e-mail. I added my e-mail address to my blog and when people came across the project they'd send me links to their RSS feeds.

About a week later, as more people began submitting their blogs to be added to the feed, I decided to add categories and a dedicated submissions form.

powRSS redesign
powRSS redesign

You've got mail!

On the afternoon of my birthday, May 31, I came across a post from Joan Westenberg:

Independent sites who don’t have the resources to compete with major platforms in visibility and search rankings, lose traffic and, consequently, viability. As a result, entire categories of information and smaller communities become less accessible, hidden behind the algorithms of the dominant, bloated tech giants.

I took this quote and shared a link to powRSS on Mastodon, and this is where things got even more exciting!

Post by @[email protected]
View on Mastodon

Westenberg, who has 30k followers, made powRSS visible to a lot more people, and that meant receiving way more submissions and responding to new kinds of feedback.

One of the first great suggestions came from Alex White who sent me a message suggesting the addition of a "Random site" feature like StumbleUpon. That seemed really fun to implement, so I wrote another blog post announcing the new feature.

powRSS with Random site feature
Random site feature on powRSS

With more blogs being added to powRSS, I began spending more time going through submissions. It's important to me that powRSS remains a space for human creativity, independent voices, and the serendipity of coming across people who, like you, understand that the web is indeed beautiful. The things we read and interact with inform our decisions and strengthen our convictions, so cultivating a space that enables this type of discovery matters.

Today I continue to manually review all submissions. I like knowing that every link on powRSS takes me to the website of another person who took the time and care to build out a space for themselves on the internet. My absolute favorite part of this project has been discovering blogs I would have never come across otherwise and having conversations with those authors.

Design Changes

Around November I wanted to give powRSS a more retro feel to better reflect its mission.

powRSS retro design
powRSS retro design

In this design the two-column layout on desktop was important because I wanted those recently-added blogs to also have some discoverability. As you can imagine, some authors write more frequently than others. Some of you write every few months, and if you were to add your blog to powRSS without a recent blog post, it could take a while before others knew about your blog.

The "new to powRSS" column made it easy to find blogs which maybe didn't have recent posts but you also knew were being actively maintained, since each addition to powRSS requires the manual submission from its author. Indeed, some of you told me you felt more excited about blogging again knowing that your posts were definitely going to be seen by others!

As you can see, powRSS no longer had categories like before. I thought a while before getting rid of them, and I think in retrospect it was a mistake, so I brought them back with a twist. I do want to explain my reasoning though.

By giving blogs a strict category, we end up pigeonholing authors, especially those who have personal sites. I love seeing personal stories along with pictures of a trip or the last book you read even if your blog is mainly about programming or photography or sports. The whole point of the personal blog is to have that freedom.

"Can I still share pictures of my dog if I'm in the Technology category?" was a question I received, so I realized site-wide categories weren't the way to go. However, there is of course a benefit to knowing about the blog you're about to visit, so I chose a happy middle ground by adding brief category labels below each blog.

This was added in time for the Winter redesign I launched at the beginning of December.

Here is what powRSS looks like today:

powRSS today
powRSS today

Thank you all for making the web more exciting, more vibrant, and more human. Have an excellent rest of the year!

Grateful,
Pablo Enoc

[ENG] Xteink X4, an unusual little device (review)

2025-12-14 18:11:00

IMG_6316

Every now and then that ultra–niche gadget comes along the one that just makes part of your day easier. For me, in the last few weeks, that’s been the Xteink X4: a tiny e-ink reader the size of a credit card, designed for maximum portability.

It’s definitely not a device for everyone more for tinkerers or anyone who wants a pocketable, minimalist reader but it does its job surprisingly well. Here’s my breakdown after using it for a few days.

1. Why a device this small actually makes sense

  • True portability: fits in a jacket pocket, barely noticeable, super compact.
  • Very light: surprisingly lightweight, but doesn’t feel fragile.
  • Solid build: no creaking, and surprisingly “premium” considering the size.
  • Flexible text settings: I use Xteink’s small default fonts and haven’t had any eye strain; you can increase font size if you want.

2. Pros

  1. Affordable price
    On Xteink’s official website it’s listed around $70, but it’s often on sale.
    On AliExpress you can find it for 50–55 €.

    Note: the AliExpress version does update firmware even though many users say otherwise.

  2. Active customer support
    The Xteink team is very present on Reddit and usually replies within 1–2 days.

  3. Constant firmware development
    Xteink releases firmware updates almost every 1–2 weeks.
    Each update brings fixes, text layout improvements, new character support, and more.

  4. Magnetic covers available
    The “book-style” magnetic covers are cheap, well-made, and offer good protection.
    More cover types are coming soon (rigid backplates, colored versions).

  5. Battery life
    The 650 mAh battery is surprisingly long-lasting thanks to the low e-ink consumption.
    With my usage (1–3 hours of reading per day) I still haven’t needed to recharge it after two weeks.

3. Technical specs

Here are the relevant technical specs to understand what’s “under the hood”:

  • Display: 4.3″ e-ink, 480×800 resolution, 220 ppi.
  • Internal storage: 32 GB. (expandable up to 512 GB)
  • Battery: 650 mAh.
  • Connectivity: Wi-Fi (2.4 GHz).
  • OS: proprietary, not Android.
  • Input: two page-turn buttons, OK, Back.
  • Updates: via Wi-Fi, OTA.
  • Supported files: TXT, EPUB (requires some setup to work well).

4. Cons

  • Not for non-technical users
    If you want to gift it to someone older or not tech-savvy, it might be tricky: you need a PC to add books, convert files, fix BMP fonts, etc.

  • Frequent updates = possible bugs
    The constant development is great, but each update can introduce new issues.

  • Italian text rendering
    To read Italian books without problems, I had to convert files, fix encoding, and install custom fonts. It’s not fully “plug-and-play” yet.

  • Shipping times
    The device is in high demand: you might wait more than two weeks.
    Many users on Reddit report delays.

5. Looking ahead: Xteink S4

Rumor has it (and Reddit users are almost certain) that in 2026 the Xteink S4 will launch: same compact size but Android-based.
This could mean:

  • cloud access
  • apps like KOReader
  • better flexibility with different formats
  • but likely a higher price

In my opinion, if it stays around 140 €, it could be a real bargain.

IMG_6318

Conclusions

The Xteink X4 is perfect for a niche audience: anyone who wants an ultra-portable, lightweight, affordable, and DIY-friendly e-ink reader.
It’s not the most powerful Kindle, it has no frontlight and no advanced touchscreen, but no other device this size does what it does.

If you’re willing to invest a bit of time setting it up, it will definitely reward you.
For me, it has already become part of my daily reading routine especially when I want to disconnect from my phone screen but don’t feel like carrying a full-size Kindle around.


I’d love for you to sign up for the newsletter you’ll get a nice little message every time I post something new. Plus, sometimes I share small gifts or ideas during the month that I later talk about here, so you’ll basically get early access 👀

{{ email_signup }}


Buy Me a Coffee at ko-fi.com

Just a quick reminder at the bottom of the page there’s a little button with two arrows pointing up.
If you click it, you’ll be doing me a huge favor <3

Thanks again, everyone 🫶🏻

Bearming theme for Bear blog

2025-12-13 20:45:00

Bearming theme for Bear

Bearming theme for Bear blog

Bearming is my personal take on a theme for Bear blog, built for good readability with a touch of modern styling.

You can use Bearming as it is, or make it yours by adding your own colors. And if you want to take it a step further, there’s a bunch of add-ons (coming soon) you can drop in whenever it feels right.

If you want to peek behind the scenes, the style guide offers a walkthrough of the details, the changelog shows what’s new, and you can also read some lovely feedback from the community.

To start using Bearming, simply copy the theme styles below and paste them into your Bear theme settings.

Happy blogging! 🐻

/*
 * Bearming — a personal Bear theme
 * Version 3.0.0 | 2025-12-14
 * Robert Birming | robertbirming.com
 */

/* =========================
   Palette: Standard 🐻
   ========================= */

:root {
  color-scheme: light dark;

  /* Light mode colors */
  --bg-light: #f6f7f8;
  --txt-light: #2f3234;
  --link-light: #3a6fc2;

  /* Dark mode colors */
  --bg-dark: #181c20;
  --txt-dark: #e1e2e3;
  --link-dark: #7ca8df;

/* ============================================================
   Bearming defaults — no need to put your paws here 🐾
   ------------------------------------------------------------
   These colors, sizes, and shapes take care of themselves.
   You bearly notice them. That’s how sweet Bearming is 🍯
   ============================================================ */

  --bg: var(--bg-light);
  --txt: var(--txt-light);
  --link: var(--link-light);

  --muted: color-mix(in srgb, var(--txt) 62%, var(--bg));
  --visited: color-mix(in srgb, var(--link) 40%, var(--muted));
  --surface: color-mix(in srgb, var(--txt) 9%, var(--bg));
  --border: color-mix(in srgb, var(--txt) 24%, var(--bg));

  --font-small: 0.95rem;
  --space: 1.5rem;
  --radius: 5px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg: var(--bg-dark);
    --txt: var(--txt-dark);
    --link: var(--link-dark);

    --muted: color-mix(in srgb, var(--txt) 72%, var(--bg));
    --visited: color-mix(in srgb, var(--link) 30%, var(--muted));
    --surface: color-mix(in srgb, var(--bg) 93%, var(--txt));
    --border: color-mix(in srgb, var(--bg) 82%, var(--txt));
  }
}

/* =========================
   Base theme
   ========================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: var(--bg);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

:focus-visible {
  outline: 2px solid var(--link);
  outline-offset: 2px;
}

body {
  max-width: 65ch;
  margin-inline: auto;
  margin-block: 0;
  padding: 1.25rem;
  color: var(--txt);
  font-family: system-ui, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.6;
  overflow-wrap: break-word;
  text-rendering: optimizeLegibility;
}

p {
  margin-block: var(--space);
}

h1, h2, h3, h4 {
  margin-block: 2rem 0.75rem;
  line-height: 1.3;
  font-weight: 600;
}

:is(h1, h2, h3, h4):first-child {
  margin-block-start: 0;
}

h1 {
  font-size: 1.75rem;
  font-weight: 700;
}

h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.1rem; }

a {
  color: var(--link);
  text-decoration: none;
}

a:hover {
  text-decoration: underline;
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.15em;
}

ul,
ol {
  margin-block: var(--space);
  padding-inline-start: 1.6rem;
}

li + li {
  margin-block-start: 0.25rem;
}

li > ul,
li > ol {
  margin-block: 0.25rem;
  margin-inline: 0;
}

blockquote {
  margin-block: calc(var(--space) * 1.25);
  margin-inline: 0;
  padding: 0.9rem 1.2rem;
  background: var(--surface);
  border-inline-start: 3px solid var(--link);
  border-radius: var(--radius);
  color: var(--muted);
}

blockquote > *:first-child { margin-block-start: 0; }
blockquote > *:last-child  { margin-block-end: 0; }

blockquote cite {
  display: block;
  margin-block-start: 0.6rem;
  font-style: normal;
  font-size: var(--font-small);
  color: color-mix(in srgb, var(--muted) 70%, var(--txt));
}

blockquote cite::before {
  content: "— ";
}

hr {
  margin-block: calc(var(--space) * 1.5);
  margin-inline: 0;
  border: none;
  border-block-start: 1px solid var(--border);
}

img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-block: var(--space);
  margin-inline: auto;
  border-radius: var(--radius);
}

figure {
  margin-block: var(--space);
  margin-inline: 0;
}

figure > p {
  margin: 0;
  padding: 0;
}

figure img {
  margin-block: 0;
}

figcaption {
  margin-block-start: 0.8rem;
  font-size: var(--font-small);
  color: var(--muted);
  text-align: center;
  font-style: italic;
}

time {
  color: var(--muted);
  font-size: var(--font-small);
  font-style: normal;
  font-variant-numeric: tabular-nums;
}

code {
  font-family: ui-monospace, monospace;
  background: var(--surface);
  padding: 0.1rem 0.3rem;
  font-size: var(--font-small);
}

pre {
  margin-block: var(--space);
  margin-inline: 0;
  padding: 1rem;
  font-size: 0.85em;
  line-height: 1.5;
  background: var(--surface);
  border-radius: var(--radius);
  overflow-x: auto;
}

pre code {
  background: none;
  padding: 0;
}

table {
  width: 100%;
  margin-block: var(--space);
  border-collapse: collapse;
}

td, th {
  padding: 0.5rem;
  border: 1px solid var(--border);
  text-align: left;
}

th {
  background: var(--surface);
  font-weight: 600;
  border-block-end: 2px solid var(--border);
}

form {
  margin-block: calc(var(--space) * 1.25);
  display: grid;
  gap: 1rem;
}

form p {
  margin: 0;
}

form#upvote-form {
  margin: 0;
  display: inline;
  gap: 0;
}

form input:not([type="submit"]):not([type="hidden"]),
form textarea {
  width: 100%;
  padding: 0.6rem 0.75rem;
  font: inherit;
  color: var(--txt);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

form input:not([type="submit"]):not([type="hidden"])::placeholder,
form textarea::placeholder {
  color: var(--muted);
}

form textarea {
  min-height: 8rem;
  resize: vertical;
}

form button:not(.upvote-button),
form input[type="submit"] {
  width: 100%;
  padding: 0.65rem 1rem;
  background: var(--link);
  color: var(--bg);
  font: inherit;
  font-weight: 600;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  transition: opacity 0.15s ease;
}

form button:not(.upvote-button):hover,
form input[type="submit"]:hover {
  opacity: 0.85;
}

header {
  margin-block: 1rem 2rem;
  margin-inline: 0;
}

header h1 {
  margin-block-end: 0.3rem;
  color: var(--txt);
  font-size: 1.5rem;
}

.title:hover {
  text-decoration: none;
}

nav p {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  column-gap: 0.75rem;
  row-gap: 0.25rem;
  font-size: var(--font-small);
}

footer {
  margin-block-start: 1rem;
  text-align: center;
  color: var(--muted);
  font-size: var(--font-small);
}

footer p {
  margin-block: 0.5rem;
}

footer > span:last-child {
  display: block;
  margin-block-start: 0.75rem;
}

/* Blog list */
.blog-posts {
  list-style-type: none;
  margin-block: var(--space);
  margin-inline: 0;
  padding: 0;
}

.blog-posts li {
  display: flex;
  align-items: baseline;
  gap: 1.3rem;
  margin-block-end: 0.3rem;
}

.blog-posts li:last-child {
  margin-block-end: 0;
}

.blog-posts time {
  flex-shrink: 0;
}

.blog-posts li a:visited {
  color: var(--visited);
}

/* Posts and pages*/
.post main h1:first-child {
  margin-block-end: 0.3rem;
}

.post main h1 + p {
  margin-block: 0 var(--space);
}

.page main h1:first-child {
  margin-block-end: var(--space);
}

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-block: var(--space);
  font-size: var(--font-small);
}

/* =========================
   Optional add-ons
   ========================= */

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
  }
}

/* Print styles */
@media print {
  body {
    background: #fff;
    color: #000;
  }

  header,
  nav,
  footer,
  .upvote-button {
    display: none;
  }

  a {
    color: #000;
    text-decoration: underline;
  }
  
  a:visited {
    color: #000;
  }

  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.9em;
  }

  h1, h2, h3, h4 {
    page-break-after: avoid;
  }

  blockquote,
  pre,
  img {
    page-break-inside: avoid;
  }
}

2026 in &amp; out: my predictions

2025-12-13 04:47:00

My predictions! With a little humor. Take it with a grain of salt, only did this for fun as a little creative exercise, but maybe you agree or wanna write your own?

in:

  • Textures and color becoming big after our years-long focus on very smooth slabs and muted surfaces. I think Pantone is so wrong for picking a white tone for 2026! Instead, color theory taking the place of skincare obsession.
  • Hosting repair parties for you and your friends. Visible mending aesthetic on clothes.
  • Big focus on timelessness as the trends have become too fast to follow or fully monetize.
  • Pictures of lived-in places and groups hanging out, instead of just being alone in all your pictures. Pictures become more about the group activity than showing off your looks or clothes; more weight on long-term friendships and showing off that you’re doing offline activities together.
  • Small, highly curated and niche personal collections, even companies going back to a core lineup.
  • Tech predictions:
    • Unfollowing and blocking influencers.
    • More switching to Linux.
    • More focus on hyperlocal social media via people’s orgs, clubs, areas, cities, etc. having their own servers and retreating there.
    • New forms of social media that will try to be a mix of group chat, Notion and (AI-)Pinterest. Not saying this is good, but I could see it happening.
    • Apps with an algorithmic feed asking for your mood when opening and then showing content based on the answer.

out:

  • Pretending loneliness and isolation is selfcare or wellness, hard boundaries as a personality (“protecting your peace at all costs” etc.), as the real flex will be not being part of the loneliness epidemic.
  • The idea that focus is moral.
  • Superapps and megabrands that aspire to be everything.
  • Reinventing and “rebranding” yourself completely.
  • Relying on AI for everything and pushing it into everything. The novelty wears off, the testing people do privately slows down, and they come to their own conclusions about what’s really helpful and what’s bullshit irrespective of what companies promise.
  • Passive friendship maintenance via just liking your friend’s posts. It will no longer count as real or sincere to people and they expect more (hopefully).
  • Bragging about impulsive or excessive purchases. Everyone’s tired of seeing strangers’ hauls and Klarna debt.
  • Trackers for every media consumption (books, movies etc.).
  • Matcha and pistachio; I think we will see more roasted or black sesame drinks and sweet potato.

Reply via email
Published {{ post_published_date }}

The invisible audience

2025-12-13 03:50:00

I’m still working on my new public theme for Bear blog.

It takes time. A lot of time. Probably three times longer than if I were doing it just for myself.

Since it’s meant for an audience, I’m paying extra attention to details. I want to ship good quality, not something that’s merely “good enough”, like when it’s only for me.

For the same reason, I prefer sharing my writing on a blog. It makes me a better writer, even if I’m the only one who notices.

An audience sharpens me, even when they’re invisible.

lurker mode disengaged

2025-12-13 00:54:56

Made it another year.

Decided to celebrate by upgrading my Bearblog account. I've blogged almost every day since I moved from Neocities, which seems to me a sign that it's time to commit.

The one thing that has me a bit gunshy about the upgrade is the discoverability. It's been nice writing knowing that no one is going to read it. This being the post I chose to upload after upgrading, I'm hyperaware of the fact that I could lose my anonymity if I write candidly about my age, and how I'm feeling about it, and what it means when I compare it to the years that came before it.

Anonymity is important to me right now. With everything going on in the world, and governments trying to invade Internet users' privacy in the name of "protecting children," I want to keep as much of myself offline as possible. This might be baggage leftover from my pre-diagnosis days, when my symptoms were perceived as moral failings by people in positions of authority, like my parents or my professors or my psychiatrist. It's been months since I got rid of my smartphone and moved to a rugged "dumb phone," I've successfully de-Googled my workflow, and I've completely left Windows for Linux. I have a lot of baggage to work through, and that is not what this blog is for.

One of the reasons I value my privacy so heavily: I'm a gay man in a state that has increasingly draconian anti-LGBT laws. I'm not on any social media, and my circle of friends has shrunk so significantly that I can count the number of people I talk to in a week on one hand, not including my sister with whom I live. Mental illness is another reason. It's not something I choose to publicly blog about, but living with ADHD and a psychotic disorder, it's better for me to have speed bumps between the thought and the publication.

The privilege of a lifetime is to become who you truly are. -- Carl Jung

That said, I am glad to be here. The lack of engagement algorithms and absence of a recommendation engine is like a breath of fresh air, and it's heartening to see that most of the people who are posting regularly are similarly privacy-oriented. It feels like I learn something new about what's capable with technology every time I check the Discover feed. I come onto the Internet to read other people's thoughts. It's hard to get that on sites like Tumblr or Neocities, where everyone is cultivating an image.

Here, it feels like so long as I am careful about what I divulge, I can be honest and anonymous at the same time.

At this point, I can't answer "Who are you?" I'm a guy self-studying computer science and learning to program computer games. I'm prone to falling down rabbit holes. I'm disabled. I'm an introvert and a loner. And today I am turning an insignificant age. Not a milestone, but a continuation. The last time I had a birthday, I felt as if I had finally become who I truly am. I am able to be honest with myself, if I cannot be honest with anyone else.

Tomorrow will be more of the same. Today is more of the same. But I wanted to acknowledge that I am a year older today, and I didn't think I would make it this far. It's nice to prove myself wrong, occasionally.