From 743d1e3d4c421385111dfd63482cd92a5fff02c1 Mon Sep 17 00:00:00 2001 From: Pinapelz Date: Mon, 1 Dec 2025 22:27:26 -0800 Subject: move micro to its own site (better compatability with indieweb feats) --- indieweb-micro/.hugo_build.lock | 0 indieweb-micro/archetypes/default.md | 5 + indieweb-micro/content/posts/hello-world.md | 34 +++ indieweb-micro/hugo.toml | 63 ++++++ indieweb-micro/themes/MinIndie/LICENSE.md | 22 ++ indieweb-micro/themes/MinIndie/README.md | 100 +++++++++ .../themes/MinIndie/archetypes/default.md | 4 + indieweb-micro/themes/MinIndie/archetypes/posts.md | 11 + .../layouts/_default/_markup/render-image.html | 11 + .../themes/MinIndie/layouts/_default/baseof.html | 26 +++ .../themes/MinIndie/layouts/_default/list.html | 57 +++++ .../themes/MinIndie/layouts/_default/single.html | 74 ++++++ .../themes/MinIndie/layouts/_default/summary.html | 13 ++ .../themes/MinIndie/layouts/_default/taxonomy.html | 45 ++++ .../themes/MinIndie/layouts/bookmarks/single.html | 44 ++++ indieweb-micro/themes/MinIndie/layouts/index.html | 8 + .../themes/MinIndie/layouts/notes/notes.html | 42 ++++ .../themes/MinIndie/layouts/notes/single.html | 44 ++++ .../MinIndie/layouts/partials/article-extra.html | 0 .../layouts/partials/article-old-content.html | 6 + .../layouts/partials/article-precontent.html | 0 .../layouts/partials/article-prevnext.html | 17 ++ .../MinIndie/layouts/partials/article-related.html | 10 + .../MinIndie/layouts/partials/bio-hcard.html | 8 + .../MinIndie/layouts/partials/footer-extra.html | 0 .../themes/MinIndie/layouts/partials/footer.html | 14 ++ .../MinIndie/layouts/partials/head-extra.html | 20 ++ .../themes/MinIndie/layouts/partials/header.html | 17 ++ .../MinIndie/layouts/partials/homepage-body.html | 5 + .../MinIndie/layouts/partials/pagination.html | 9 + .../layouts/partials/single-title-extra.html | 3 + .../themes/MinIndie/static/css/style.css | 250 +++++++++++++++++++++ indieweb-micro/themes/MinIndie/theme.toml | 17 ++ indieweb/archetypes/default.md | 5 - indieweb/content/posts/hello-world.md | 34 --- indieweb/hugo.toml | 63 ------ indieweb/themes/MinIndie | 1 - micro.pinapelz.moe/categories/default/index.html | 102 +++++++++ micro.pinapelz.moe/categories/default/index.xml | 21 ++ micro.pinapelz.moe/categories/index.html | 91 ++++++++ micro.pinapelz.moe/categories/index.xml | 21 ++ micro.pinapelz.moe/css/style.css | 250 +++++++++++++++++++++ micro.pinapelz.moe/index.html | 111 +++++++++ micro.pinapelz.moe/index.xml | 21 ++ micro.pinapelz.moe/page/1/index.html | 9 + .../posts/2025-12-01-hello-world/index.html | 131 +++++++++++ micro.pinapelz.moe/posts/index.html | 145 ++++++++++++ micro.pinapelz.moe/posts/index.xml | 21 ++ micro.pinapelz.moe/posts/page/1/index.html | 9 + micro.pinapelz.moe/sitemap.xml | 26 +++ micro.pinapelz.moe/tags/default/index.html | 102 +++++++++ micro.pinapelz.moe/tags/default/index.xml | 21 ++ micro.pinapelz.moe/tags/index.html | 91 ++++++++ micro.pinapelz.moe/tags/index.xml | 21 ++ pinapelz.moe/micro/categories/default/index.html | 102 --------- pinapelz.moe/micro/categories/default/index.xml | 21 -- pinapelz.moe/micro/categories/index.html | 91 -------- pinapelz.moe/micro/categories/index.xml | 21 -- pinapelz.moe/micro/css/style.css | 250 --------------------- pinapelz.moe/micro/index.html | 111 --------- pinapelz.moe/micro/index.xml | 21 -- pinapelz.moe/micro/page/1/index.html | 9 - .../micro/posts/2025-12-01-hello-world/index.html | 131 ----------- pinapelz.moe/micro/posts/index.html | 145 ------------ pinapelz.moe/micro/posts/index.xml | 21 -- pinapelz.moe/micro/posts/page/1/index.html | 9 - pinapelz.moe/micro/sitemap.xml | 26 --- pinapelz.moe/micro/tags/default/index.html | 102 --------- pinapelz.moe/micro/tags/default/index.xml | 21 -- pinapelz.moe/micro/tags/index.html | 91 -------- pinapelz.moe/micro/tags/index.xml | 21 -- 71 files changed, 2172 insertions(+), 1296 deletions(-) create mode 100644 indieweb-micro/.hugo_build.lock create mode 100644 indieweb-micro/archetypes/default.md create mode 100644 indieweb-micro/content/posts/hello-world.md create mode 100644 indieweb-micro/hugo.toml create mode 100644 indieweb-micro/themes/MinIndie/LICENSE.md create mode 100644 indieweb-micro/themes/MinIndie/README.md create mode 100644 indieweb-micro/themes/MinIndie/archetypes/default.md create mode 100644 indieweb-micro/themes/MinIndie/archetypes/posts.md create mode 100644 indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/_default/baseof.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/_default/list.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/_default/single.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/_default/summary.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/index.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/notes/notes.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/notes/single.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/article-extra.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/article-precontent.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/article-related.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/footer-extra.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/footer.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/header.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/pagination.html create mode 100644 indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html create mode 100644 indieweb-micro/themes/MinIndie/static/css/style.css create mode 100644 indieweb-micro/themes/MinIndie/theme.toml delete mode 100644 indieweb/archetypes/default.md delete mode 100644 indieweb/content/posts/hello-world.md delete mode 100644 indieweb/hugo.toml delete mode 160000 indieweb/themes/MinIndie create mode 100644 micro.pinapelz.moe/categories/default/index.html create mode 100644 micro.pinapelz.moe/categories/default/index.xml create mode 100644 micro.pinapelz.moe/categories/index.html create mode 100644 micro.pinapelz.moe/categories/index.xml create mode 100644 micro.pinapelz.moe/css/style.css create mode 100644 micro.pinapelz.moe/index.html create mode 100644 micro.pinapelz.moe/index.xml create mode 100644 micro.pinapelz.moe/page/1/index.html create mode 100644 micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html create mode 100644 micro.pinapelz.moe/posts/index.html create mode 100644 micro.pinapelz.moe/posts/index.xml create mode 100644 micro.pinapelz.moe/posts/page/1/index.html create mode 100644 micro.pinapelz.moe/sitemap.xml create mode 100644 micro.pinapelz.moe/tags/default/index.html create mode 100644 micro.pinapelz.moe/tags/default/index.xml create mode 100644 micro.pinapelz.moe/tags/index.html create mode 100644 micro.pinapelz.moe/tags/index.xml delete mode 100644 pinapelz.moe/micro/categories/default/index.html delete mode 100644 pinapelz.moe/micro/categories/default/index.xml delete mode 100644 pinapelz.moe/micro/categories/index.html delete mode 100644 pinapelz.moe/micro/categories/index.xml delete mode 100644 pinapelz.moe/micro/css/style.css delete mode 100644 pinapelz.moe/micro/index.html delete mode 100644 pinapelz.moe/micro/index.xml delete mode 100644 pinapelz.moe/micro/page/1/index.html delete mode 100644 pinapelz.moe/micro/posts/2025-12-01-hello-world/index.html delete mode 100644 pinapelz.moe/micro/posts/index.html delete mode 100644 pinapelz.moe/micro/posts/index.xml delete mode 100644 pinapelz.moe/micro/posts/page/1/index.html delete mode 100644 pinapelz.moe/micro/sitemap.xml delete mode 100644 pinapelz.moe/micro/tags/default/index.html delete mode 100644 pinapelz.moe/micro/tags/default/index.xml delete mode 100644 pinapelz.moe/micro/tags/index.html delete mode 100644 pinapelz.moe/micro/tags/index.xml diff --git a/indieweb-micro/.hugo_build.lock b/indieweb-micro/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/indieweb-micro/archetypes/default.md b/indieweb-micro/archetypes/default.md new file mode 100644 index 0000000..25b6752 --- /dev/null +++ b/indieweb-micro/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/indieweb-micro/content/posts/hello-world.md b/indieweb-micro/content/posts/hello-world.md new file mode 100644 index 0000000..a82c543 --- /dev/null +++ b/indieweb-micro/content/posts/hello-world.md @@ -0,0 +1,34 @@ +--- +title: "Hello World - Why This" +date: 2025-12-01T20:11:57-08:00 +slug: 2025-12-01-hello-world +type: posts +draft: false +categories: + - default +tags: + - default +--- +I think having control of your own data is great. The same is true for decentralized social media. I've always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and "decentralized" approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of "social media". + +## Twitter/X +This is fairly self explanatory. The rebranding of Twitter to X and Musk's new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn't a particular fan of. You can't view anything without signing in either, so goodbye viewing stuff anonymously. There's just a lot of "features" here I'm not a fan of. Needless to say, there's a lot of reasons to not post stuff there. + + +## Fediverse +I initally moved to the `Fediverse` (on Misskey/Sharkey). Interoperability between different platforms is very cool, and the wide variety of platforms to choose from means that picking any platform never made me feel like "missing out" elsewhere. + +However, this in itself has a problem. If you create an account on someone else's instance, you are a part of their *walled garden*. Now I'm sure that they are a wonderful person who equally values data ownership/agency, however it doesn't change the fact that someone else holds your content/data and you rely on them for that service. + +So then the alternative here is self-hosting a single person instance. This solves everything, **BUT** the fact that its quite expensive to pay for the bandwidth + storage if you are a small instance and end up federating with a lot of instances. This wasn't a compromise I wanted, since the name of the game with the Fediverse is being able to connect cross-platform. Great if you have the resources, but not particularly worth it for a single person starting fresh. There's not really a good way to handle this right now, which is why federation with a very large platform like Threads is limited. + +## Bluesky +`Bluesky` is one of the drop-in alternatives for Twitter. Its built on the AT-Protocol, which does actually solve a lot of the problems of ActivityPub (Fediverse) in terms of handling small self-hosted instance with large ones. +AtProto allows you to host a `PDS (Personal Data Server)` which stores all your own posts, profile info, and follows. This boils down to meaning that you really only need to be responsible for serving your own content, which you also own on your own machine. There's also a lot of fine-grain features that help with not getting overwhelmed by firehose traffic. + +While this is great, the issue is that the service is not truly "federated" (yet?). Its still early days for the platform and protocol, Most people are still on `bsky.social`. This means that to get anything to read at all you'd still need to pull from the big central relay. Even if we were successful in this, its not entirely clear what the costs would be for running all these components together (is it even worth it for a single person?). I think AtProto is promising, but its still early days and who knows where it'll go... + +# Now What +Its time to try something new. From a surface view the idea of [IndieWeb](https://indieweb.org/) is a good solution from the perspective of creating the content. You basically just build a website/blog (which nowadays is dirt cheap to host something static), you then just add some special HTML ([microformats](https://indieweb.org/microformats)) and now you've got a common protocol similar to a post (only now you can leverage the power of HTML/CSS and customize it however you want). Then implemtning [webmentions](https://indieweb.org/Webmention) gives the ability for other people to interact with your content. Using a bridging/syndication service like [Bridgy Fed](https://fed.brid.gy/) you can post to the Fediverse and Bluesky as well as allow others from there to interact with your post. + +So that's what this is. Let's see how it goes. diff --git a/indieweb-micro/hugo.toml b/indieweb-micro/hugo.toml new file mode 100644 index 0000000..633719e --- /dev/null +++ b/indieweb-micro/hugo.toml @@ -0,0 +1,63 @@ +languageCode = 'en-us' +title = 'micro.pinapelz.moe' +theme = "MinIndie" +baseURL = "https://micro.pinapelz.moe" +publishDir = "../micro.pinapelz.moe" + +[params] +subtitle = "check it out. I'm in the house like carpet" +dateFmt = "Monday, January 2, 2006" +# tagPostOlderThanXDays = 555 # To display a message if the post is older than this number of days. +# xslpath = "/rss.xsl" # If you want to theme your RSS feed. Optional. + +[params.author] + name = "Pinapelz" + email = "yukais@pinapelz.com" + avatar = "https://pinapelz.moe/assets/pfp.webp" + bio = '''hi, this is an informal (micro) blog of sorts. This site was made cause IndieWeb seems like a great approach for the type of data agency I wanted out of social media (including the Fediverse and AtProto/Bluesky at a fraction of the resources.

+ There's a lot of stuff that doesn't fit well in a full-length formal blog post. I thought it'd be cool to have something like this on Nekoweb since it fits the theme pretty well.''' +[params.indieweb] + authorizationEndpoint = "https://indieauth.com/auth" + tokenEndpoint = "https://tokens.indieauth.com/token" + webmentionEndpoint = "https://webmention.io/micro.pinapelz.moe/webmention" + relmepgp = "/path/to//public/key.asc" + [[params.indieweb.relme]] + url = "https://github.com/pinapelz" + [[params.indieweb.relme]] + url = "mailto:yukais@pinapelz.com" + [[params.indieweb.relme]] + url = "https://sakurajima.social/@pinapelz" + [[params.indieweb.relme]] + url = "https://bsky.app/profile/pinapelz.moe" + + +# Menus: +[menu] +[[menu.main]] + identifier = "posts" + name = "Posts" + url = "/posts/" + weight = 1 + +[[menu.main]] + identifier = "categories" + name = "Categories" + url = "/categories/" + weight = 2 + +[[menu.main]] + identifier = "tags" + name = "Tags" + url = "/tags/" + weight = 3 + +## Footer +[[menu.footer]] + name = "Github" + url = "https://github.com/pinapelz" + weight = 1 + +[[menu.footer]] + name = "pinapelz.moe" + url = "https://pinapelz.moe" + weight = 1 diff --git a/indieweb-micro/themes/MinIndie/LICENSE.md b/indieweb-micro/themes/MinIndie/LICENSE.md new file mode 100644 index 0000000..630c225 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2016 Vimux + +Copyright (c) 2020 colorchestra + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/indieweb-micro/themes/MinIndie/README.md b/indieweb-micro/themes/MinIndie/README.md new file mode 100644 index 0000000..cef0972 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/README.md @@ -0,0 +1,100 @@ +# MinIndie + +This theme is **heavily** based on [smol](https://themes.gohugo.io/themes/smol/), a minimalist hugo theme, thanks to their work! + +MinIndie is a very minimal hugo theme with indieweb markups. A demo can be found on my blog at https://bacardi55.io + +## Features + +- No JavaScript +- No Google spyware or tracking of any kind +- No other external dependencies, embedded fonts or comment sections +- Dark mode support (depending on your OS's setting) +- Indieweb markup + +## Installation + +In your Hugo site `themes` directory, run: + +``` +git clone https:// +``` + +Next, open `config.toml` in the base of the Hugo site and ensure the theme option is set to `smol`. + +``` +theme = "minindie" +``` + +Lastly, add the following lines to your `config.toml` to set site parameters and make use of all the menu entries in the header and footer sections if you need them. + +``` +title = "Site Name" +baseURL = "https://your.domain.tld" +copyright = "A copyright message" + +# Parameters +[params] + subtitle = "ἕν οἶδα ὅτι οὐδὲν οἶδα" + dateFmt = "Monday, January 2, 2006" + # tagPostOlderThanXDays = 555 # To display a message if the post is older than this number of days. + # xslpath = "/rss.xsl" # If you want to theme your RSS feed. Optional. + +[params.author] + name = "your name" # required for h-card + email = "your@email.tld" + avatar = "/path/to/avatar.png" + bio = "A bio description
Html is accepted." + +[params.indieweb] + authorizationEndpoint = "https://indieauth.com/auth" + tokenEndpoint = "https://tokens.indieauth.com/token" + webmentionEndpoint = "https://webmention.io/your.domain.tld/webmention" + relmepgp = "/path/to//public/key.asc" + [[params.indieweb.relme]] + url = "https://" + [[params.indieweb.relme]] + url = "https://" + +# Menus: +## Header +[menu] + [[menu.main]] + identifier = "posts" + name = "Posts" + url = "/posts/" + weight = 1 + + [[menu.main]] + identifier = "categories" + name = "Categories" + url = "/categories/" + weight = 2 + + [[menu.main]] + identifier = "tags" + name = "Tags" + url = "/tags/" + weight = 3 + +## Footer + [[menu.footer]] + name = "Github" + url = "https://github.com/example" + weight = 1 + + [[menu.footer]] + name = "Mastodon" + url = "https://example.com/@user" + weight = 2 + + [[menu.footer]] + name = "Imprint" + url = "/imprint" + weight = 3 + +``` + +## License + +This theme is released under the [MIT license](https://github.com/colorchestra/smol/blob/master/LICENSE). diff --git a/indieweb-micro/themes/MinIndie/archetypes/default.md b/indieweb-micro/themes/MinIndie/archetypes/default.md new file mode 100644 index 0000000..ef75f76 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/archetypes/default.md @@ -0,0 +1,4 @@ ++++ +title = "{{ replace .Name "-" " " | title }}" +date = {{ .Date }} ++++ diff --git a/indieweb-micro/themes/MinIndie/archetypes/posts.md b/indieweb-micro/themes/MinIndie/archetypes/posts.md new file mode 100644 index 0000000..11182ff --- /dev/null +++ b/indieweb-micro/themes/MinIndie/archetypes/posts.md @@ -0,0 +1,11 @@ +--- +title: "{{ replace .Name "-" " " | title }}" +date: {{ .Date }} +slug: {{ now.Format "2006-01-02" }}-{{ .Name | urlize }} +type: posts +draft: true +categories: + - default +tags: + - default +--- diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html b/indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html new file mode 100644 index 0000000..41008ca --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/_markup/render-image.html @@ -0,0 +1,11 @@ +{{ if .Title }} +
+ {{ .Text }} +
{{ .Title }}
+
+{{ else }} +
+ {{ .Text }} +
+{{ end }} + diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/baseof.html b/indieweb-micro/themes/MinIndie/layouts/_default/baseof.html new file mode 100644 index 0000000..e8b6411 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/baseof.html @@ -0,0 +1,26 @@ + + + + + + + + {{ .Title }} | {{ .Site.Title }} + {{ with .Site.Params.description }}{{ end }} + {{ with .Site.Params.author }}{{ end }} + + {{ range .Site.Params.customCSS -}} + + {{- end }} + {{- with .OutputFormats.Get "RSS" -}} + {{ printf `` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }} + {{- end }} + + {{ partial "head-extra.html" . }} + + + {{ partial "header" . }} + {{ block "main" . }}{{ end }} + {{ partial "footer" . }} + + diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/list.html b/indieweb-micro/themes/MinIndie/layouts/_default/list.html new file mode 100644 index 0000000..f3639a1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/list.html @@ -0,0 +1,57 @@ +{{ define "main" }} +
+ {{ $pageKind := .Kind }} + {{ if or .Title .Content }} +
+ {{ if .Title }} +

+ {{ .Title }} + {{ partial "single-title-extra.html" . }} +

+ {{ end }} + {{ with .Content }}
{{ . }}
{{ end }} +
+ {{ end }} + +
+ {{ $yearCptr := "" }} + {{ $monthCptr := "" }} + {{ range .Paginator.Pages }} + {{ $postYear := .Date.Year }} + {{ $postMonth := .Date.Month }} + + {{ if or (ne $monthCptr $postMonth) (and (eq $yearCptr "") (eq $monthCptr "")) }} + {{ $yearCptr = $postYear }} + {{ $monthCptr = $postMonth }} + {{ if and (ne $yearCptr "") (ne $monthCptr "") }} + +
+ {{ end }} +
+

{{ $monthCptr }} {{ $yearCptr }}

+
    + {{ end }} + +
  • + +
    + : + {{ if eq $pageKind "term" }}[{{ .Type }}] {{ end }} + + {{.Title }} + +
    +
  • + + {{ $yearCptr = $postYear }} + {{ $monthCptr = $postMonth }} + {{ end }} +
+
+ + + {{ partial "pagination.html" . }} +
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/single.html b/indieweb-micro/themes/MinIndie/layouts/_default/single.html new file mode 100644 index 0000000..425efc1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/single.html @@ -0,0 +1,74 @@ +{{ define "main" }} +{{ $ageDays := div (sub now.Unix .Date.Unix) 86400 }} +
+
+

{{ .Title }}

+ + + + {{ if .Date }} +
+ + - Permalink +
+ {{ end }} + + {{- if or .Params.categories .Params.tags -}} + + {{- end -}} + + {{- with .Site.Params.tagPostOlderThanXDays -}} + {{- if and (gt $ageDays .) (eq $.Type "posts") -}} + {{ partial "article-old-content.html" . }} + {{- end -}} + {{- end -}} + + {{- partial "article-precontent.html" . -}} + + {{- if .Params.toc -}} +
+

Table of Content

+ +
+ {{- end -}} + +
+ {{ .Content }} +
+ + {{ partial "article-extra.html" . }} + + {{ if .Site.Params.enableNextPrevPages }} + {{ partial "article-prevnext.html" . }} + {{ end }} + + {{ if .Site.Params.enableRelatedPages }} + {{ partial "article-related.html" . }} + {{ end }} +
+
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/summary.html b/indieweb-micro/themes/MinIndie/layouts/_default/summary.html new file mode 100644 index 0000000..a347932 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/summary.html @@ -0,0 +1,13 @@ +
+

{{ .Title }}

+ + {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ {{ .Summary }} + {{ if .Truncated }} + Read more... + {{ end }} +
+
diff --git a/indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html b/indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html new file mode 100644 index 0000000..3e10031 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/_default/taxonomy.html @@ -0,0 +1,45 @@ +{{ define "main" }} +{{ $pageTitle := .Title }} +
+
+

+ {{ .Title }} + + RSS icon + +

+
+ {{ .Content }} +
+ {{- if eq .Kind "taxonomy" -}} + + {{ end }} + {{- if eq .Kind "term" -}} +

Content linked to the taxonomy term « {{ strings.ToUpper .Title }} »:

+ {{ $currentType := "" }} + {{ range sort .Pages.ByDate.Reverse ".Type" "desc" }} + {{ if or (eq $currentType "") (ne $currentType .Type) }} + {{ if ne $currentType "" }} + +
+ {{ end }} +
+

{{ strings.FirstUpper .Type }}

+
    + {{ end }} +
  • + + {{ .Title }} +
  • + {{ $currentType = .Type }} + {{ end }} +
+
+ {{- end -}} + +
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html b/indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html new file mode 100644 index 0000000..8ee4bf1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/bookmarks/single.html @@ -0,0 +1,44 @@ +{{ define "main" }} +
+
+ + +

+ + {{ .Title }} + +

+
+ + - Permalink +
+
+ Tags: + {{ range .Params.tags }} + {{ . }} + {{ end }} +
+ + {{ with .Params.description }} +
+ Description: +
{{ . }}
+
+ {{ end }} + + {{ with .Content }} +
{{ . }}
+ {{ end }} + +
+ → + {{ .Params.bookmark_url }} +

+
+ + {{ partial "article-extra.html" . }} +
+
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/index.html b/indieweb-micro/themes/MinIndie/layouts/index.html new file mode 100644 index 0000000..777a2fd --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/index.html @@ -0,0 +1,8 @@ +{{ define "main" }} +
+
+

{{ .Site.Title }}

+ {{- partial "bio-hcard.html" . -}} + {{- partial "homepage-body.html" . -}} +
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/notes/notes.html b/indieweb-micro/themes/MinIndie/layouts/notes/notes.html new file mode 100644 index 0000000..e0e0d17 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/notes/notes.html @@ -0,0 +1,42 @@ +{{ define "main" }} +
+ {{ $pageKind := .Kind }} + {{ if or .Title .Content }} +
+ {{ with .Title }} +

+ {{ . }} + RSS icon + h-feed icon +

+ {{ end }} + {{ with .Content }}
{{ . }}
{{ end }} +
+ {{ end }} + +
+ {{ range .Pages }} +
+ +

+ {{ .Content }} +

+ + + + {{ with .Params.Tags }} + - Tags: + {{ range . }} + #{{ . }} + {{ end }} + {{ end }} +
+ {{ end }} +
+ +
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/notes/single.html b/indieweb-micro/themes/MinIndie/layouts/notes/single.html new file mode 100644 index 0000000..32afcea --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/notes/single.html @@ -0,0 +1,44 @@ +{{ define "main" }} +{{ $ageDays := div (sub now.Unix .Date.Unix) 86400 }} +
+
+ +
+ + - Permalink +
+ + {{- if or .Params.categories .Params.tags -}} + + {{- end -}} + + {{- partial "article-precontent.html" . -}} + +
+ {{ .Content }} +
+
+
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-extra.html new file mode 100644 index 0000000..e69de29 diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html new file mode 100644 index 0000000..785f3be --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-old-content.html @@ -0,0 +1,6 @@ +
+ /!\ Warning: This article is older than {{ . }} days, make sure the content + is still relevant! +
diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-precontent.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-precontent.html new file mode 100644 index 0000000..e69de29 diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html new file mode 100644 index 0000000..d89b779 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-prevnext.html @@ -0,0 +1,17 @@ +
+ + + +
diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/article-related.html b/indieweb-micro/themes/MinIndie/layouts/partials/article-related.html new file mode 100644 index 0000000..5a6fe50 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/article-related.html @@ -0,0 +1,10 @@ +{{ $related := .Site.RegularPages.Related . | first 5 }} {{ with $related }} +
+

Releated Posts

+ +
+{{ end }} diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html b/indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html new file mode 100644 index 0000000..0a476e4 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/bio-hcard.html @@ -0,0 +1,8 @@ +
+
+ {{ .Site.Params.Author.name }}'s avatar +

{{ .Site.Params.Author.Bio | safeHTML }}

+
+

{{ .Site.Params.Author.name }}

+
+
diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/footer-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/footer-extra.html new file mode 100644 index 0000000..e69de29 diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/footer.html b/indieweb-micro/themes/MinIndie/layouts/partials/footer.html new file mode 100644 index 0000000..978a390 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/footer.html @@ -0,0 +1,14 @@ +
+ diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html new file mode 100644 index 0000000..8c3984f --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/head-extra.html @@ -0,0 +1,20 @@ +{{- range .Site.Params.indieweb.relme }} + +{{- end -}} + +{{- with .Site.Params.indieweb.relmepgp -}} + +{{- end -}} + +{{ with .Site.Params.indieweb }} + + + +{{ end }} + diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/header.html b/indieweb-micro/themes/MinIndie/layouts/partials/header.html new file mode 100644 index 0000000..efbd8e1 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/header.html @@ -0,0 +1,17 @@ +
+
+
+ {{ strings.Repeat ( .Site.Params.Author.Name | len | add 6 ) "=" }}
+ == {{ .Site.Params.Author.Name }} ==
+ {{ strings.Repeat ( .Site.Params.Author.Name | len | add 6 ) "=" }} +
+
{{ .Site.Params.subtitle }}
+
+ +
diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html b/indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html new file mode 100644 index 0000000..151ef62 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/homepage-body.html @@ -0,0 +1,5 @@ +{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }} +{{ range $paginator.Pages }} + {{ .Render "summary" }} +{{ end }} +{{ partial "pagination.html" . }} diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/pagination.html b/indieweb-micro/themes/MinIndie/layouts/partials/pagination.html new file mode 100644 index 0000000..79f8053 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/pagination.html @@ -0,0 +1,9 @@ +
+{{ if .Paginator.HasPrev }} + Previous Page +{{ end }} +{{ .Paginator.PageNumber }} of {{ .Paginator.TotalPages }} +{{ if .Paginator.HasNext }} + Next Page +{{ end }} +
diff --git a/indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html b/indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html new file mode 100644 index 0000000..bd79e22 --- /dev/null +++ b/indieweb-micro/themes/MinIndie/layouts/partials/single-title-extra.html @@ -0,0 +1,3 @@ +{{ with .AlternativeOutputFormats.Get "rss" }} +RSS icon +{{ end }} diff --git a/indieweb-micro/themes/MinIndie/static/css/style.css b/indieweb-micro/themes/MinIndie/static/css/style.css new file mode 100644 index 0000000..26bd17b --- /dev/null +++ b/indieweb-micro/themes/MinIndie/static/css/style.css @@ -0,0 +1,250 @@ +html { + overflow-y: scroll; +} + +/* 🌸 PASTEL PALETTE */ +:root { + --bgcolor: #fff7fb; + --fontcolor: #3a2c3d; + + --linkcolor: #ff77c8; + --visitedcolor: #d76dff; + + --precolor: #4a3e4f; + --prebgcolor: #ffe6f4; + + --alertbgcolor: #ffe0f1; + --hrcolor: #ffbde6; + + --blockquotecolor: #ffe8f6; + --pcodecolor: #f7d2f0; + + --sitetitlecolor: #ff99dd; + --titlecolor: #c77fff; +} + +/* 🌙 DARK MODE PASTEL NIGHT */ +@media (prefers-color-scheme: dark) { + :root { + --bgcolor: #241b2b; + --fontcolor: #f8e8ff; + + --linkcolor: #ff9be9; + --visitedcolor: #e49cff; + + --precolor: #ffeefe; + --prebgcolor: #35263f; + + --alertbgcolor: #3f304a; + --hrcolor: #f4cfff; + + --blockquotecolor: #3a2b45; + --pcodecolor: #614c70; + + --sitetitlecolor: #ffd1f6; + --titlecolor: #d9a7ff; + } +} + +/* 🌸 TYPO + BASE */ +body { + max-width: 800px; + margin: 40px auto; + padding: 0 10px; + + font: 15px/1.6 "IBM Plex Mono", "Fira Mono", monospace; + color: var(--fontcolor); + background: var(--bgcolor); + + transition: background 0.3s ease, color 0.3s ease; +} + +/* 🌸 LINKS */ +a { + color: var(--linkcolor); + text-decoration: none; + transition: color 0.2s ease, text-shadow 0.2s ease; +} + +a:hover { + color: var(--visitedcolor); + text-shadow: 0 0 6px currentColor; +} + +a:visited { + color: var(--visitedcolor); +} + +/* 🌸 HEADERS */ +h1, h2, h3 { + line-height: 1.25; + color: var(--titlecolor); + margin-top: 1.6rem; + font-weight: 700; +} + +h1.site-title { + color: var(--sitetitlecolor); + text-align: center; + font-size: 2rem; + margin-bottom: 1rem; +} + +/* 🌸 PARAGRAPHS */ +p { + margin-top: 1.3rem; +} + +/* 🌸 INLINE CODE */ +p > code, +li > code { + color: var(--precolor); + background: var(--pcodecolor); + padding: 3px 5px; + border-radius: 6px; +} + +/* 🌸 FULL CODE */ +code { + color: var(--precolor); + background: var(--prebgcolor); + padding: 3px 5px; + border-radius: 6px; +} + +pre { + color: var(--precolor); + background: var(--prebgcolor); + padding: 24px; + overflow-x: auto; + border-radius: 12px; + box-shadow: 0 0 10px rgba(255, 180, 220, 0.25); +} + +/* 🌸 ARTICLES */ +article { + padding: 24px 0; +} + +/* 🌸 IMAGES */ +img { + display: block; + max-width: 100%; + height: auto; + margin: auto; + border-radius: 12px; +} + +/* cute avatar */ +.avatar { + width: 100px; + height: 100px; + border-radius: 50%; + box-shadow: 0 0 8px rgba(255, 140, 200, 0.4); +} + +/* 🌸 ALERTS */ +.alert { + color: var(--fontcolor); + background: var(--alertbgcolor); + padding: 20px; + border-radius: 12px; + box-shadow: 0 0 12px rgba(255, 180, 220, 0.3); + overflow-x: auto; +} + +/* 🌸 NEXT/PREV */ +.article-nextprev { + display: flex; + flex-flow: row wrap-reverse; + justify-content: space-between; +} + +/* 🌸 DIVIDERS */ +hr { + margin: 35px 33% 15px; + border-color: var(--hrcolor); + border-width: 3px; + border-radius: 3px; +} + +hr.small { + margin: 35px 44% 25px; + border: 1px dashed var(--hrcolor); +} + +/* 🌸 BLOCKQUOTE */ +blockquote { + background: var(--blockquotecolor); + margin: 1.2rem 0; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 0 8px rgba(255, 200, 240, 0.25); + border-left: 4px solid var(--hrcolor); +} + +/* 🌸 LISTS */ +ol, ul { + padding-left: 1.1rem; +} + +ul > li { + list-style-type: disclosure-closed; +} + +/* 🌸 TABLES */ +table { + text-align: left; + border: 1px solid var(--hrcolor); + border-radius: 10px; + overflow: hidden; +} + +thead th, tfoot th, tfoot td { + padding: 6px 10px; + background-color: var(--alertbgcolor); + color: var(--titlecolor); +} + +td { + padding: 8px 10px; +} + +tbody tr:nth-child(even) { + background-color: var(--alertbgcolor); +} + +/* 🌸 RESPONSIVE MOE */ +@media all and (max-width: 800px) { + .bio-card .bio { + justify-content: space-around; + flex-direction: column; + } + .bio-card .bio > img { + align-self: center; + margin: auto; + } + .bio-card .bio > p { + align-self: center; + text-align: center; + } +} + +/* PRINT */ +@media print { + a, a:visited { + color: #000; + text-decoration: none; + } + a::after { + content: " (" attr(href) ") "; + } + nav, footer, hr, .noprint { + display: none !important; + } + pre, blockquote, code { + background: #fff; + border: none; + box-shadow: none; + } +} diff --git a/indieweb-micro/themes/MinIndie/theme.toml b/indieweb-micro/themes/MinIndie/theme.toml new file mode 100644 index 0000000..313427c --- /dev/null +++ b/indieweb-micro/themes/MinIndie/theme.toml @@ -0,0 +1,17 @@ +name = "minindie" +license = "MIT" +licenselink = "https://git.sr.ht/~bacardi55/MinIndie/tree/main/item/LICENCE.md" +description = "Minimal Hugo theme for the indieweb." +homepage = "https://sr.ht/~bacardi55/MinIndie" +tags = ["blog", "minimal", "monospace", "dark mode", "simple", "clean", "light", "responsive", "fast", "no-js", "no-tracking", "privacy", "indieweb"] +features = ["blog", "privacy", "responsive", "fast", "indieweb"] +min_version = "0.0.1" + +[author] + name = "bacardi55" + homepage = "bacardi55.io" + +[original] + author = "Morph" + homepage = "https://morph.sh" + repo = "https://github.com/colorchestra/smol" diff --git a/indieweb/archetypes/default.md b/indieweb/archetypes/default.md deleted file mode 100644 index 25b6752..0000000 --- a/indieweb/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ -+++ -date = '{{ .Date }}' -draft = true -title = '{{ replace .File.ContentBaseName "-" " " | title }}' -+++ diff --git a/indieweb/content/posts/hello-world.md b/indieweb/content/posts/hello-world.md deleted file mode 100644 index a82c543..0000000 --- a/indieweb/content/posts/hello-world.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Hello World - Why This" -date: 2025-12-01T20:11:57-08:00 -slug: 2025-12-01-hello-world -type: posts -draft: false -categories: - - default -tags: - - default ---- -I think having control of your own data is great. The same is true for decentralized social media. I've always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and "decentralized" approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of "social media". - -## Twitter/X -This is fairly self explanatory. The rebranding of Twitter to X and Musk's new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn't a particular fan of. You can't view anything without signing in either, so goodbye viewing stuff anonymously. There's just a lot of "features" here I'm not a fan of. Needless to say, there's a lot of reasons to not post stuff there. - - -## Fediverse -I initally moved to the `Fediverse` (on Misskey/Sharkey). Interoperability between different platforms is very cool, and the wide variety of platforms to choose from means that picking any platform never made me feel like "missing out" elsewhere. - -However, this in itself has a problem. If you create an account on someone else's instance, you are a part of their *walled garden*. Now I'm sure that they are a wonderful person who equally values data ownership/agency, however it doesn't change the fact that someone else holds your content/data and you rely on them for that service. - -So then the alternative here is self-hosting a single person instance. This solves everything, **BUT** the fact that its quite expensive to pay for the bandwidth + storage if you are a small instance and end up federating with a lot of instances. This wasn't a compromise I wanted, since the name of the game with the Fediverse is being able to connect cross-platform. Great if you have the resources, but not particularly worth it for a single person starting fresh. There's not really a good way to handle this right now, which is why federation with a very large platform like Threads is limited. - -## Bluesky -`Bluesky` is one of the drop-in alternatives for Twitter. Its built on the AT-Protocol, which does actually solve a lot of the problems of ActivityPub (Fediverse) in terms of handling small self-hosted instance with large ones. -AtProto allows you to host a `PDS (Personal Data Server)` which stores all your own posts, profile info, and follows. This boils down to meaning that you really only need to be responsible for serving your own content, which you also own on your own machine. There's also a lot of fine-grain features that help with not getting overwhelmed by firehose traffic. - -While this is great, the issue is that the service is not truly "federated" (yet?). Its still early days for the platform and protocol, Most people are still on `bsky.social`. This means that to get anything to read at all you'd still need to pull from the big central relay. Even if we were successful in this, its not entirely clear what the costs would be for running all these components together (is it even worth it for a single person?). I think AtProto is promising, but its still early days and who knows where it'll go... - -# Now What -Its time to try something new. From a surface view the idea of [IndieWeb](https://indieweb.org/) is a good solution from the perspective of creating the content. You basically just build a website/blog (which nowadays is dirt cheap to host something static), you then just add some special HTML ([microformats](https://indieweb.org/microformats)) and now you've got a common protocol similar to a post (only now you can leverage the power of HTML/CSS and customize it however you want). Then implemtning [webmentions](https://indieweb.org/Webmention) gives the ability for other people to interact with your content. Using a bridging/syndication service like [Bridgy Fed](https://fed.brid.gy/) you can post to the Fediverse and Bluesky as well as allow others from there to interact with your post. - -So that's what this is. Let's see how it goes. diff --git a/indieweb/hugo.toml b/indieweb/hugo.toml deleted file mode 100644 index 543e839..0000000 --- a/indieweb/hugo.toml +++ /dev/null @@ -1,63 +0,0 @@ -languageCode = 'en-us' -title = 'pinapelz.moe/micro' -theme = "MinIndie" -baseURL = "https://pinapelz.moe/micro" -publishDir = "../pinapelz.moe/micro" - -[params] -subtitle = "check it out. I'm in the house like carpet" -dateFmt = "Monday, January 2, 2006" -# tagPostOlderThanXDays = 555 # To display a message if the post is older than this number of days. -# xslpath = "/rss.xsl" # If you want to theme your RSS feed. Optional. - -[params.author] - name = "Pinapelz" - email = "yukais@pinapelz.com" - avatar = "https://pinapelz.moe/assets/pfp.webp" - bio = '''hi, this is an informal (micro) blog of sorts. This site was made cause IndieWeb seems like a great approach for the type of data agency I wanted out of social media (including the Fediverse and AtProto/Bluesky at a fraction of the resources.

- There's a lot of stuff that doesn't fit well in a full-length formal blog post. I thought it'd be cool to have something like this on Nekoweb since it fits the theme pretty well.''' -[params.indieweb] - authorizationEndpoint = "https://indieauth.com/auth" - tokenEndpoint = "https://tokens.indieauth.com/token" - webmentionEndpoint = "https://webmention.io/pinapelz.moe/webmention" - relmepgp = "/path/to//public/key.asc" - [[params.indieweb.relme]] - url = "https://github.com/pinapelz" - [[params.indieweb.relme]] - url = "mailto:yukais@pinapelz.com" - [[params.indieweb.relme]] - url = "https://sakurajima.social/@pinapelz" - [[params.indieweb.relme]] - url = "https://bsky.app/profile/pinapelz.moe" - - -# Menus: -[menu] -[[menu.main]] - identifier = "posts" - name = "Posts" - url = "/posts/" - weight = 1 - -[[menu.main]] - identifier = "categories" - name = "Categories" - url = "/categories/" - weight = 2 - -[[menu.main]] - identifier = "tags" - name = "Tags" - url = "/tags/" - weight = 3 - -## Footer -[[menu.footer]] - name = "Github" - url = "https://github.com/pinapelz" - weight = 1 - -[[menu.footer]] - name = "pinapelz.moe" - url = "https://pinapelz.moe" - weight = 1 diff --git a/indieweb/themes/MinIndie b/indieweb/themes/MinIndie deleted file mode 160000 index 3dd986a..0000000 --- a/indieweb/themes/MinIndie +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 3dd986acc97b71418a4c4280cd34ccd69ca8e851 diff --git a/micro.pinapelz.moe/categories/default/index.html b/micro.pinapelz.moe/categories/default/index.html new file mode 100644 index 0000000..0f20909 --- /dev/null +++ b/micro.pinapelz.moe/categories/default/index.html @@ -0,0 +1,102 @@ + + + + + + + + Default | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + + +
+
+

+ Default + + RSS icon + +

+
+ +

Content linked to the taxonomy term « DEFAULT »:

+ + + + +
+

Posts

+ +
+
+ +
+ + + + diff --git a/micro.pinapelz.moe/categories/default/index.xml b/micro.pinapelz.moe/categories/default/index.xml new file mode 100644 index 0000000..9fd844c --- /dev/null +++ b/micro.pinapelz.moe/categories/default/index.xml @@ -0,0 +1,21 @@ + + + + Default on micro.pinapelz.moe + https://micro.pinapelz.moe/categories/default/ + Recent content in Default on micro.pinapelz.moe + Hugo + en-us + yukais@pinapelz.com (Pinapelz) + yukais@pinapelz.com (Pinapelz) + Mon, 01 Dec 2025 20:11:57 -0800 + + + Hello World - Why This + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> + + + diff --git a/micro.pinapelz.moe/categories/index.html b/micro.pinapelz.moe/categories/index.html new file mode 100644 index 0000000..e7a6d02 --- /dev/null +++ b/micro.pinapelz.moe/categories/index.html @@ -0,0 +1,91 @@ + + + + + + + + Categories | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + + +
+
+

+ Categories + + RSS icon + +

+
+ +
+
+
+ +
+ + + + diff --git a/micro.pinapelz.moe/categories/index.xml b/micro.pinapelz.moe/categories/index.xml new file mode 100644 index 0000000..05fb505 --- /dev/null +++ b/micro.pinapelz.moe/categories/index.xml @@ -0,0 +1,21 @@ + + + + Categories on micro.pinapelz.moe + https://micro.pinapelz.moe/categories/ + Recent content in Categories on micro.pinapelz.moe + Hugo + en-us + yukais@pinapelz.com (Pinapelz) + yukais@pinapelz.com (Pinapelz) + Mon, 01 Dec 2025 20:11:57 -0800 + + + Default + https://micro.pinapelz.moe/categories/default/ + Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) + https://micro.pinapelz.moe/categories/default/ + + + + diff --git a/micro.pinapelz.moe/css/style.css b/micro.pinapelz.moe/css/style.css new file mode 100644 index 0000000..26bd17b --- /dev/null +++ b/micro.pinapelz.moe/css/style.css @@ -0,0 +1,250 @@ +html { + overflow-y: scroll; +} + +/* 🌸 PASTEL PALETTE */ +:root { + --bgcolor: #fff7fb; + --fontcolor: #3a2c3d; + + --linkcolor: #ff77c8; + --visitedcolor: #d76dff; + + --precolor: #4a3e4f; + --prebgcolor: #ffe6f4; + + --alertbgcolor: #ffe0f1; + --hrcolor: #ffbde6; + + --blockquotecolor: #ffe8f6; + --pcodecolor: #f7d2f0; + + --sitetitlecolor: #ff99dd; + --titlecolor: #c77fff; +} + +/* 🌙 DARK MODE PASTEL NIGHT */ +@media (prefers-color-scheme: dark) { + :root { + --bgcolor: #241b2b; + --fontcolor: #f8e8ff; + + --linkcolor: #ff9be9; + --visitedcolor: #e49cff; + + --precolor: #ffeefe; + --prebgcolor: #35263f; + + --alertbgcolor: #3f304a; + --hrcolor: #f4cfff; + + --blockquotecolor: #3a2b45; + --pcodecolor: #614c70; + + --sitetitlecolor: #ffd1f6; + --titlecolor: #d9a7ff; + } +} + +/* 🌸 TYPO + BASE */ +body { + max-width: 800px; + margin: 40px auto; + padding: 0 10px; + + font: 15px/1.6 "IBM Plex Mono", "Fira Mono", monospace; + color: var(--fontcolor); + background: var(--bgcolor); + + transition: background 0.3s ease, color 0.3s ease; +} + +/* 🌸 LINKS */ +a { + color: var(--linkcolor); + text-decoration: none; + transition: color 0.2s ease, text-shadow 0.2s ease; +} + +a:hover { + color: var(--visitedcolor); + text-shadow: 0 0 6px currentColor; +} + +a:visited { + color: var(--visitedcolor); +} + +/* 🌸 HEADERS */ +h1, h2, h3 { + line-height: 1.25; + color: var(--titlecolor); + margin-top: 1.6rem; + font-weight: 700; +} + +h1.site-title { + color: var(--sitetitlecolor); + text-align: center; + font-size: 2rem; + margin-bottom: 1rem; +} + +/* 🌸 PARAGRAPHS */ +p { + margin-top: 1.3rem; +} + +/* 🌸 INLINE CODE */ +p > code, +li > code { + color: var(--precolor); + background: var(--pcodecolor); + padding: 3px 5px; + border-radius: 6px; +} + +/* 🌸 FULL CODE */ +code { + color: var(--precolor); + background: var(--prebgcolor); + padding: 3px 5px; + border-radius: 6px; +} + +pre { + color: var(--precolor); + background: var(--prebgcolor); + padding: 24px; + overflow-x: auto; + border-radius: 12px; + box-shadow: 0 0 10px rgba(255, 180, 220, 0.25); +} + +/* 🌸 ARTICLES */ +article { + padding: 24px 0; +} + +/* 🌸 IMAGES */ +img { + display: block; + max-width: 100%; + height: auto; + margin: auto; + border-radius: 12px; +} + +/* cute avatar */ +.avatar { + width: 100px; + height: 100px; + border-radius: 50%; + box-shadow: 0 0 8px rgba(255, 140, 200, 0.4); +} + +/* 🌸 ALERTS */ +.alert { + color: var(--fontcolor); + background: var(--alertbgcolor); + padding: 20px; + border-radius: 12px; + box-shadow: 0 0 12px rgba(255, 180, 220, 0.3); + overflow-x: auto; +} + +/* 🌸 NEXT/PREV */ +.article-nextprev { + display: flex; + flex-flow: row wrap-reverse; + justify-content: space-between; +} + +/* 🌸 DIVIDERS */ +hr { + margin: 35px 33% 15px; + border-color: var(--hrcolor); + border-width: 3px; + border-radius: 3px; +} + +hr.small { + margin: 35px 44% 25px; + border: 1px dashed var(--hrcolor); +} + +/* 🌸 BLOCKQUOTE */ +blockquote { + background: var(--blockquotecolor); + margin: 1.2rem 0; + padding: 12px 20px; + border-radius: 12px; + box-shadow: 0 0 8px rgba(255, 200, 240, 0.25); + border-left: 4px solid var(--hrcolor); +} + +/* 🌸 LISTS */ +ol, ul { + padding-left: 1.1rem; +} + +ul > li { + list-style-type: disclosure-closed; +} + +/* 🌸 TABLES */ +table { + text-align: left; + border: 1px solid var(--hrcolor); + border-radius: 10px; + overflow: hidden; +} + +thead th, tfoot th, tfoot td { + padding: 6px 10px; + background-color: var(--alertbgcolor); + color: var(--titlecolor); +} + +td { + padding: 8px 10px; +} + +tbody tr:nth-child(even) { + background-color: var(--alertbgcolor); +} + +/* 🌸 RESPONSIVE MOE */ +@media all and (max-width: 800px) { + .bio-card .bio { + justify-content: space-around; + flex-direction: column; + } + .bio-card .bio > img { + align-self: center; + margin: auto; + } + .bio-card .bio > p { + align-self: center; + text-align: center; + } +} + +/* PRINT */ +@media print { + a, a:visited { + color: #000; + text-decoration: none; + } + a::after { + content: " (" attr(href) ") "; + } + nav, footer, hr, .noprint { + display: none !important; + } + pre, blockquote, code { + background: #fff; + border: none; + box-shadow: none; + } +} diff --git a/micro.pinapelz.moe/index.html b/micro.pinapelz.moe/index.html new file mode 100644 index 0000000..13881a4 --- /dev/null +++ b/micro.pinapelz.moe/index.html @@ -0,0 +1,111 @@ + + + + + + + + + micro.pinapelz.moe | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + +
+
+

micro.pinapelz.moe

+
+ Pinapelz's avatar +

hi, this is an informal (micro) blog of sorts. This site was made cause IndieWeb seems like a great approach for the type of data agency I wanted out of social media (including the Fediverse and AtProto/Bluesky at a fraction of the resources.

+ There's a lot of stuff that doesn't fit well in a full-length formal blog post. I thought it'd be cool to have something like this on Nekoweb since it fits the theme pretty well.

+
+

Pinapelz

+
+
+ + +
+

Hello World - Why This

+ + + default + +
+

I think having control of your own data is great. The same is true for decentralized social media. I’ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and “decentralized” approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of “social media”.

+

Twitter/X

+

This is fairly self explanatory. The rebranding of Twitter to X and Musk’s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn’t a particular fan of. You can’t view anything without signing in either, so goodbye viewing stuff anonymously. There’s just a lot of “features” here I’m not a fan of. Needless to say, there’s a lot of reasons to not post stuff there.

+ + Read more... + +
+
+ + +
+ +1 of 1 + +
+ +
+ +
+ + + + diff --git a/micro.pinapelz.moe/index.xml b/micro.pinapelz.moe/index.xml new file mode 100644 index 0000000..2d38a95 --- /dev/null +++ b/micro.pinapelz.moe/index.xml @@ -0,0 +1,21 @@ + + + + micro.pinapelz.moe + https://micro.pinapelz.moe/ + Recent content on micro.pinapelz.moe + Hugo + en-us + yukais@pinapelz.com (Pinapelz) + yukais@pinapelz.com (Pinapelz) + Mon, 01 Dec 2025 20:11:57 -0800 + + + Hello World - Why This + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> + + + diff --git a/micro.pinapelz.moe/page/1/index.html b/micro.pinapelz.moe/page/1/index.html new file mode 100644 index 0000000..cc34fa8 --- /dev/null +++ b/micro.pinapelz.moe/page/1/index.html @@ -0,0 +1,9 @@ + + + + https://micro.pinapelz.moe/ + + + + + diff --git a/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html b/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html new file mode 100644 index 0000000..796f970 --- /dev/null +++ b/micro.pinapelz.moe/posts/2025-12-01-hello-world/index.html @@ -0,0 +1,131 @@ + + + + + + + + Hello World - Why This | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + + +
+
+

Hello World - Why This

+ + + + +
+ + - Permalink +
+
+

I think having control of your own data is great. The same is true for decentralized social media. I’ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and “decentralized” approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of “social media”.

+

Twitter/X

+

This is fairly self explanatory. The rebranding of Twitter to X and Musk’s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn’t a particular fan of. You can’t view anything without signing in either, so goodbye viewing stuff anonymously. There’s just a lot of “features” here I’m not a fan of. Needless to say, there’s a lot of reasons to not post stuff there.

+

Fediverse

+

I initally moved to the Fediverse (on Misskey/Sharkey). Interoperability between different platforms is very cool, and the wide variety of platforms to choose from means that picking any platform never made me feel like “missing out” elsewhere.

+

However, this in itself has a problem. If you create an account on someone else’s instance, you are a part of their walled garden. Now I’m sure that they are a wonderful person who equally values data ownership/agency, however it doesn’t change the fact that someone else holds your content/data and you rely on them for that service.

+

So then the alternative here is self-hosting a single person instance. This solves everything, BUT the fact that its quite expensive to pay for the bandwidth + storage if you are a small instance and end up federating with a lot of instances. This wasn’t a compromise I wanted, since the name of the game with the Fediverse is being able to connect cross-platform. Great if you have the resources, but not particularly worth it for a single person starting fresh. There’s not really a good way to handle this right now, which is why federation with a very large platform like Threads is limited.

+

Bluesky

+

Bluesky is one of the drop-in alternatives for Twitter. Its built on the AT-Protocol, which does actually solve a lot of the problems of ActivityPub (Fediverse) in terms of handling small self-hosted instance with large ones. +AtProto allows you to host a PDS (Personal Data Server) which stores all your own posts, profile info, and follows. This boils down to meaning that you really only need to be responsible for serving your own content, which you also own on your own machine. There’s also a lot of fine-grain features that help with not getting overwhelmed by firehose traffic.

+

While this is great, the issue is that the service is not truly “federated” (yet?). Its still early days for the platform and protocol, Most people are still on bsky.social. This means that to get anything to read at all you’d still need to pull from the big central relay. Even if we were successful in this, its not entirely clear what the costs would be for running all these components together (is it even worth it for a single person?). I think AtProto is promising, but its still early days and who knows where it’ll go…

+

Now What

+

Its time to try something new. From a surface view the idea of IndieWeb is a good solution from the perspective of creating the content. You basically just build a website/blog (which nowadays is dirt cheap to host something static), you then just add some special HTML (microformats) and now you’ve got a common protocol similar to a post (only now you can leverage the power of HTML/CSS and customize it however you want). Then implemtning webmentions gives the ability for other people to interact with your content. Using a bridging/syndication service like Bridgy Fed you can post to the Fediverse and Bluesky as well as allow others from there to interact with your post.

+

So that’s what this is. Let’s see how it goes.

+ +
+ + + + + + +
+
+ +
+ + + + diff --git a/micro.pinapelz.moe/posts/index.html b/micro.pinapelz.moe/posts/index.html new file mode 100644 index 0000000..d84fd94 --- /dev/null +++ b/micro.pinapelz.moe/posts/index.html @@ -0,0 +1,145 @@ + + + + + + + + Posts | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + +
+ + +
+ +

+ Posts + +RSS icon + + +

+ + +
+ + +
+ + + + + + + + + + + +
+ +
+

December 2025

+
    + + +
  • + +
    + : + + + Hello World - Why This + +
    +
  • + + + + +
+
+ + +
+ +1 of 1 + +
+ +
+ +
+ + + + diff --git a/micro.pinapelz.moe/posts/index.xml b/micro.pinapelz.moe/posts/index.xml new file mode 100644 index 0000000..d78ff57 --- /dev/null +++ b/micro.pinapelz.moe/posts/index.xml @@ -0,0 +1,21 @@ + + + + Posts on micro.pinapelz.moe + https://micro.pinapelz.moe/posts/ + Recent content in Posts on micro.pinapelz.moe + Hugo + en-us + yukais@pinapelz.com (Pinapelz) + yukais@pinapelz.com (Pinapelz) + Mon, 01 Dec 2025 20:11:57 -0800 + + + Hello World - Why This + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> + + + diff --git a/micro.pinapelz.moe/posts/page/1/index.html b/micro.pinapelz.moe/posts/page/1/index.html new file mode 100644 index 0000000..1c21f92 --- /dev/null +++ b/micro.pinapelz.moe/posts/page/1/index.html @@ -0,0 +1,9 @@ + + + + https://micro.pinapelz.moe/posts/ + + + + + diff --git a/micro.pinapelz.moe/sitemap.xml b/micro.pinapelz.moe/sitemap.xml new file mode 100644 index 0000000..b8ebd8e --- /dev/null +++ b/micro.pinapelz.moe/sitemap.xml @@ -0,0 +1,26 @@ + + + + https://micro.pinapelz.moe/categories/ + 2025-12-01T20:11:57-08:00 + + https://micro.pinapelz.moe/categories/default/ + 2025-12-01T20:11:57-08:00 + + https://micro.pinapelz.moe/tags/default/ + 2025-12-01T20:11:57-08:00 + + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + 2025-12-01T20:11:57-08:00 + + https://micro.pinapelz.moe/ + 2025-12-01T20:11:57-08:00 + + https://micro.pinapelz.moe/posts/ + 2025-12-01T20:11:57-08:00 + + https://micro.pinapelz.moe/tags/ + 2025-12-01T20:11:57-08:00 + + diff --git a/micro.pinapelz.moe/tags/default/index.html b/micro.pinapelz.moe/tags/default/index.html new file mode 100644 index 0000000..28b1beb --- /dev/null +++ b/micro.pinapelz.moe/tags/default/index.html @@ -0,0 +1,102 @@ + + + + + + + + Default | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + + +
+
+

+ Default + + RSS icon + +

+
+ +

Content linked to the taxonomy term « DEFAULT »:

+ + + + +
+

Posts

+ +
+
+ +
+ + + + diff --git a/micro.pinapelz.moe/tags/default/index.xml b/micro.pinapelz.moe/tags/default/index.xml new file mode 100644 index 0000000..a933eb3 --- /dev/null +++ b/micro.pinapelz.moe/tags/default/index.xml @@ -0,0 +1,21 @@ + + + + Default on micro.pinapelz.moe + https://micro.pinapelz.moe/tags/default/ + Recent content in Default on micro.pinapelz.moe + Hugo + en-us + yukais@pinapelz.com (Pinapelz) + yukais@pinapelz.com (Pinapelz) + Mon, 01 Dec 2025 20:11:57 -0800 + + + Hello World - Why This + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) + https://micro.pinapelz.moe/posts/2025-12-01-hello-world/ + <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> + + + diff --git a/micro.pinapelz.moe/tags/index.html b/micro.pinapelz.moe/tags/index.html new file mode 100644 index 0000000..a6b0474 --- /dev/null +++ b/micro.pinapelz.moe/tags/index.html @@ -0,0 +1,91 @@ + + + + + + + + Tags | micro.pinapelz.moe + + + + + + + + + + + + + + + + + + +
+
+
+ ==============
+ == Pinapelz ==
+ ============== +
+
check it out. I'm in the house like carpet
+
+ +
+ + + +
+
+

+ Tags + + RSS icon + +

+
+ +
+
+
+ +
+ + + + diff --git a/micro.pinapelz.moe/tags/index.xml b/micro.pinapelz.moe/tags/index.xml new file mode 100644 index 0000000..99f8878 --- /dev/null +++ b/micro.pinapelz.moe/tags/index.xml @@ -0,0 +1,21 @@ + + + + Tags on micro.pinapelz.moe + https://micro.pinapelz.moe/tags/ + Recent content in Tags on micro.pinapelz.moe + Hugo + en-us + yukais@pinapelz.com (Pinapelz) + yukais@pinapelz.com (Pinapelz) + Mon, 01 Dec 2025 20:11:57 -0800 + + + Default + https://micro.pinapelz.moe/tags/default/ + Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) + https://micro.pinapelz.moe/tags/default/ + + + + diff --git a/pinapelz.moe/micro/categories/default/index.html b/pinapelz.moe/micro/categories/default/index.html deleted file mode 100644 index 2156150..0000000 --- a/pinapelz.moe/micro/categories/default/index.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - Default | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - - -
-
-

- Default - - RSS icon - -

-
- -

Content linked to the taxonomy term « DEFAULT »:

- - - - -
-

Posts

- -
-
- -
- - - - diff --git a/pinapelz.moe/micro/categories/default/index.xml b/pinapelz.moe/micro/categories/default/index.xml deleted file mode 100644 index db8a3f9..0000000 --- a/pinapelz.moe/micro/categories/default/index.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Default on pinapelz.moe/micro - https://pinapelz.moe/micro/categories/default/ - Recent content in Default on pinapelz.moe/micro - Hugo - en-us - yukais@pinapelz.com (Pinapelz) - yukais@pinapelz.com (Pinapelz) - Mon, 01 Dec 2025 20:11:57 -0800 - - - Hello World - Why This - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> - - - diff --git a/pinapelz.moe/micro/categories/index.html b/pinapelz.moe/micro/categories/index.html deleted file mode 100644 index 9a7cfd3..0000000 --- a/pinapelz.moe/micro/categories/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - Categories | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - - -
-
-

- Categories - - RSS icon - -

-
- -
-
-
- -
- - - - diff --git a/pinapelz.moe/micro/categories/index.xml b/pinapelz.moe/micro/categories/index.xml deleted file mode 100644 index d95e172..0000000 --- a/pinapelz.moe/micro/categories/index.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Categories on pinapelz.moe/micro - https://pinapelz.moe/micro/categories/ - Recent content in Categories on pinapelz.moe/micro - Hugo - en-us - yukais@pinapelz.com (Pinapelz) - yukais@pinapelz.com (Pinapelz) - Mon, 01 Dec 2025 20:11:57 -0800 - - - Default - https://pinapelz.moe/micro/categories/default/ - Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) - https://pinapelz.moe/micro/categories/default/ - - - - diff --git a/pinapelz.moe/micro/css/style.css b/pinapelz.moe/micro/css/style.css deleted file mode 100644 index 26bd17b..0000000 --- a/pinapelz.moe/micro/css/style.css +++ /dev/null @@ -1,250 +0,0 @@ -html { - overflow-y: scroll; -} - -/* 🌸 PASTEL PALETTE */ -:root { - --bgcolor: #fff7fb; - --fontcolor: #3a2c3d; - - --linkcolor: #ff77c8; - --visitedcolor: #d76dff; - - --precolor: #4a3e4f; - --prebgcolor: #ffe6f4; - - --alertbgcolor: #ffe0f1; - --hrcolor: #ffbde6; - - --blockquotecolor: #ffe8f6; - --pcodecolor: #f7d2f0; - - --sitetitlecolor: #ff99dd; - --titlecolor: #c77fff; -} - -/* 🌙 DARK MODE PASTEL NIGHT */ -@media (prefers-color-scheme: dark) { - :root { - --bgcolor: #241b2b; - --fontcolor: #f8e8ff; - - --linkcolor: #ff9be9; - --visitedcolor: #e49cff; - - --precolor: #ffeefe; - --prebgcolor: #35263f; - - --alertbgcolor: #3f304a; - --hrcolor: #f4cfff; - - --blockquotecolor: #3a2b45; - --pcodecolor: #614c70; - - --sitetitlecolor: #ffd1f6; - --titlecolor: #d9a7ff; - } -} - -/* 🌸 TYPO + BASE */ -body { - max-width: 800px; - margin: 40px auto; - padding: 0 10px; - - font: 15px/1.6 "IBM Plex Mono", "Fira Mono", monospace; - color: var(--fontcolor); - background: var(--bgcolor); - - transition: background 0.3s ease, color 0.3s ease; -} - -/* 🌸 LINKS */ -a { - color: var(--linkcolor); - text-decoration: none; - transition: color 0.2s ease, text-shadow 0.2s ease; -} - -a:hover { - color: var(--visitedcolor); - text-shadow: 0 0 6px currentColor; -} - -a:visited { - color: var(--visitedcolor); -} - -/* 🌸 HEADERS */ -h1, h2, h3 { - line-height: 1.25; - color: var(--titlecolor); - margin-top: 1.6rem; - font-weight: 700; -} - -h1.site-title { - color: var(--sitetitlecolor); - text-align: center; - font-size: 2rem; - margin-bottom: 1rem; -} - -/* 🌸 PARAGRAPHS */ -p { - margin-top: 1.3rem; -} - -/* 🌸 INLINE CODE */ -p > code, -li > code { - color: var(--precolor); - background: var(--pcodecolor); - padding: 3px 5px; - border-radius: 6px; -} - -/* 🌸 FULL CODE */ -code { - color: var(--precolor); - background: var(--prebgcolor); - padding: 3px 5px; - border-radius: 6px; -} - -pre { - color: var(--precolor); - background: var(--prebgcolor); - padding: 24px; - overflow-x: auto; - border-radius: 12px; - box-shadow: 0 0 10px rgba(255, 180, 220, 0.25); -} - -/* 🌸 ARTICLES */ -article { - padding: 24px 0; -} - -/* 🌸 IMAGES */ -img { - display: block; - max-width: 100%; - height: auto; - margin: auto; - border-radius: 12px; -} - -/* cute avatar */ -.avatar { - width: 100px; - height: 100px; - border-radius: 50%; - box-shadow: 0 0 8px rgba(255, 140, 200, 0.4); -} - -/* 🌸 ALERTS */ -.alert { - color: var(--fontcolor); - background: var(--alertbgcolor); - padding: 20px; - border-radius: 12px; - box-shadow: 0 0 12px rgba(255, 180, 220, 0.3); - overflow-x: auto; -} - -/* 🌸 NEXT/PREV */ -.article-nextprev { - display: flex; - flex-flow: row wrap-reverse; - justify-content: space-between; -} - -/* 🌸 DIVIDERS */ -hr { - margin: 35px 33% 15px; - border-color: var(--hrcolor); - border-width: 3px; - border-radius: 3px; -} - -hr.small { - margin: 35px 44% 25px; - border: 1px dashed var(--hrcolor); -} - -/* 🌸 BLOCKQUOTE */ -blockquote { - background: var(--blockquotecolor); - margin: 1.2rem 0; - padding: 12px 20px; - border-radius: 12px; - box-shadow: 0 0 8px rgba(255, 200, 240, 0.25); - border-left: 4px solid var(--hrcolor); -} - -/* 🌸 LISTS */ -ol, ul { - padding-left: 1.1rem; -} - -ul > li { - list-style-type: disclosure-closed; -} - -/* 🌸 TABLES */ -table { - text-align: left; - border: 1px solid var(--hrcolor); - border-radius: 10px; - overflow: hidden; -} - -thead th, tfoot th, tfoot td { - padding: 6px 10px; - background-color: var(--alertbgcolor); - color: var(--titlecolor); -} - -td { - padding: 8px 10px; -} - -tbody tr:nth-child(even) { - background-color: var(--alertbgcolor); -} - -/* 🌸 RESPONSIVE MOE */ -@media all and (max-width: 800px) { - .bio-card .bio { - justify-content: space-around; - flex-direction: column; - } - .bio-card .bio > img { - align-self: center; - margin: auto; - } - .bio-card .bio > p { - align-self: center; - text-align: center; - } -} - -/* PRINT */ -@media print { - a, a:visited { - color: #000; - text-decoration: none; - } - a::after { - content: " (" attr(href) ") "; - } - nav, footer, hr, .noprint { - display: none !important; - } - pre, blockquote, code { - background: #fff; - border: none; - box-shadow: none; - } -} diff --git a/pinapelz.moe/micro/index.html b/pinapelz.moe/micro/index.html deleted file mode 100644 index 7151bcd..0000000 --- a/pinapelz.moe/micro/index.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - pinapelz.moe/micro | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - -
-
-

pinapelz.moe/micro

-
- Pinapelz's avatar -

hi, this is an informal (micro) blog of sorts. This site was made cause IndieWeb seems like a great approach for the type of data agency I wanted out of social media (including the Fediverse and AtProto/Bluesky at a fraction of the resources.

- There's a lot of stuff that doesn't fit well in a full-length formal blog post. I thought it'd be cool to have something like this on Nekoweb since it fits the theme pretty well.

-
-

Pinapelz

-
-
- - -
-

Hello World - Why This

- - - default - -
-

I think having control of your own data is great. The same is true for decentralized social media. I’ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and “decentralized” approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of “social media”.

-

Twitter/X

-

This is fairly self explanatory. The rebranding of Twitter to X and Musk’s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn’t a particular fan of. You can’t view anything without signing in either, so goodbye viewing stuff anonymously. There’s just a lot of “features” here I’m not a fan of. Needless to say, there’s a lot of reasons to not post stuff there.

- - Read more... - -
-
- - -
- -1 of 1 - -
- -
- -
- - - - diff --git a/pinapelz.moe/micro/index.xml b/pinapelz.moe/micro/index.xml deleted file mode 100644 index ad6c888..0000000 --- a/pinapelz.moe/micro/index.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - pinapelz.moe/micro - https://pinapelz.moe/micro/ - Recent content on pinapelz.moe/micro - Hugo - en-us - yukais@pinapelz.com (Pinapelz) - yukais@pinapelz.com (Pinapelz) - Mon, 01 Dec 2025 20:11:57 -0800 - - - Hello World - Why This - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> - - - diff --git a/pinapelz.moe/micro/page/1/index.html b/pinapelz.moe/micro/page/1/index.html deleted file mode 100644 index b787467..0000000 --- a/pinapelz.moe/micro/page/1/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - https://pinapelz.moe/micro/ - - - - - diff --git a/pinapelz.moe/micro/posts/2025-12-01-hello-world/index.html b/pinapelz.moe/micro/posts/2025-12-01-hello-world/index.html deleted file mode 100644 index a62116e..0000000 --- a/pinapelz.moe/micro/posts/2025-12-01-hello-world/index.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - Hello World - Why This | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - - -
-
-

Hello World - Why This

- - - - -
- - - Permalink -
-
-

I think having control of your own data is great. The same is true for decentralized social media. I’ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and “decentralized” approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of “social media”.

-

Twitter/X

-

This is fairly self explanatory. The rebranding of Twitter to X and Musk’s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn’t a particular fan of. You can’t view anything without signing in either, so goodbye viewing stuff anonymously. There’s just a lot of “features” here I’m not a fan of. Needless to say, there’s a lot of reasons to not post stuff there.

-

Fediverse

-

I initally moved to the Fediverse (on Misskey/Sharkey). Interoperability between different platforms is very cool, and the wide variety of platforms to choose from means that picking any platform never made me feel like “missing out” elsewhere.

-

However, this in itself has a problem. If you create an account on someone else’s instance, you are a part of their walled garden. Now I’m sure that they are a wonderful person who equally values data ownership/agency, however it doesn’t change the fact that someone else holds your content/data and you rely on them for that service.

-

So then the alternative here is self-hosting a single person instance. This solves everything, BUT the fact that its quite expensive to pay for the bandwidth + storage if you are a small instance and end up federating with a lot of instances. This wasn’t a compromise I wanted, since the name of the game with the Fediverse is being able to connect cross-platform. Great if you have the resources, but not particularly worth it for a single person starting fresh. There’s not really a good way to handle this right now, which is why federation with a very large platform like Threads is limited.

-

Bluesky

-

Bluesky is one of the drop-in alternatives for Twitter. Its built on the AT-Protocol, which does actually solve a lot of the problems of ActivityPub (Fediverse) in terms of handling small self-hosted instance with large ones. -AtProto allows you to host a PDS (Personal Data Server) which stores all your own posts, profile info, and follows. This boils down to meaning that you really only need to be responsible for serving your own content, which you also own on your own machine. There’s also a lot of fine-grain features that help with not getting overwhelmed by firehose traffic.

-

While this is great, the issue is that the service is not truly “federated” (yet?). Its still early days for the platform and protocol, Most people are still on bsky.social. This means that to get anything to read at all you’d still need to pull from the big central relay. Even if we were successful in this, its not entirely clear what the costs would be for running all these components together (is it even worth it for a single person?). I think AtProto is promising, but its still early days and who knows where it’ll go…

-

Now What

-

Its time to try something new. From a surface view the idea of IndieWeb is a good solution from the perspective of creating the content. You basically just build a website/blog (which nowadays is dirt cheap to host something static), you then just add some special HTML (microformats) and now you’ve got a common protocol similar to a post (only now you can leverage the power of HTML/CSS and customize it however you want). Then implemtning webmentions gives the ability for other people to interact with your content. Using a bridging/syndication service like Bridgy Fed you can post to the Fediverse and Bluesky as well as allow others from there to interact with your post.

-

So that’s what this is. Let’s see how it goes.

- -
- - - - - - -
-
- -
- - - - diff --git a/pinapelz.moe/micro/posts/index.html b/pinapelz.moe/micro/posts/index.html deleted file mode 100644 index 8427d2f..0000000 --- a/pinapelz.moe/micro/posts/index.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - Posts | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - -
- - -
- -

- Posts - -RSS icon - - -

- - -
- - -
- - - - - - - - - - - -
- -
-

December 2025

-
    - - -
  • - -
    - : - - - Hello World - Why This - -
    -
  • - - - - -
-
- - -
- -1 of 1 - -
- -
- -
- - - - diff --git a/pinapelz.moe/micro/posts/index.xml b/pinapelz.moe/micro/posts/index.xml deleted file mode 100644 index 8d50258..0000000 --- a/pinapelz.moe/micro/posts/index.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Posts on pinapelz.moe/micro - https://pinapelz.moe/micro/posts/ - Recent content in Posts on pinapelz.moe/micro - Hugo - en-us - yukais@pinapelz.com (Pinapelz) - yukais@pinapelz.com (Pinapelz) - Mon, 01 Dec 2025 20:11:57 -0800 - - - Hello World - Why This - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> - - - diff --git a/pinapelz.moe/micro/posts/page/1/index.html b/pinapelz.moe/micro/posts/page/1/index.html deleted file mode 100644 index 5d6c641..0000000 --- a/pinapelz.moe/micro/posts/page/1/index.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - https://pinapelz.moe/micro/posts/ - - - - - diff --git a/pinapelz.moe/micro/sitemap.xml b/pinapelz.moe/micro/sitemap.xml deleted file mode 100644 index d20cdbc..0000000 --- a/pinapelz.moe/micro/sitemap.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - https://pinapelz.moe/micro/categories/ - 2025-12-01T20:11:57-08:00 - - https://pinapelz.moe/micro/categories/default/ - 2025-12-01T20:11:57-08:00 - - https://pinapelz.moe/micro/tags/default/ - 2025-12-01T20:11:57-08:00 - - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - 2025-12-01T20:11:57-08:00 - - https://pinapelz.moe/micro/ - 2025-12-01T20:11:57-08:00 - - https://pinapelz.moe/micro/posts/ - 2025-12-01T20:11:57-08:00 - - https://pinapelz.moe/micro/tags/ - 2025-12-01T20:11:57-08:00 - - diff --git a/pinapelz.moe/micro/tags/default/index.html b/pinapelz.moe/micro/tags/default/index.html deleted file mode 100644 index 096597f..0000000 --- a/pinapelz.moe/micro/tags/default/index.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - Default | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - - -
-
-

- Default - - RSS icon - -

-
- -

Content linked to the taxonomy term « DEFAULT »:

- - - - -
-

Posts

- -
-
- -
- - - - diff --git a/pinapelz.moe/micro/tags/default/index.xml b/pinapelz.moe/micro/tags/default/index.xml deleted file mode 100644 index 6f6cc2f..0000000 --- a/pinapelz.moe/micro/tags/default/index.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Default on pinapelz.moe/micro - https://pinapelz.moe/micro/tags/default/ - Recent content in Default on pinapelz.moe/micro - Hugo - en-us - yukais@pinapelz.com (Pinapelz) - yukais@pinapelz.com (Pinapelz) - Mon, 01 Dec 2025 20:11:57 -0800 - - - Hello World - Why This - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) - https://pinapelz.moe/micro/posts/2025-12-01-hello-world/ - <p>I think having control of your own data is great. The same is true for decentralized social media. I&rsquo;ve always been a primary user of microblog platforms (like Twitter/X). Having experienced both the traditional and &ldquo;decentralized&rdquo; approaches to microblogs, they both have some particular shortcoming in terms of what I want to get out of &ldquo;social media&rdquo;.</p> <h2 id="twitterx">Twitter/X</h2> <p>This is fairly self explanatory. The rebranding of Twitter to X and Musk&rsquo;s new ownership of the platform shifted the direction of the platform to be ever more political. X Premium boosting visibility is also something I wasn&rsquo;t a particular fan of. You can&rsquo;t view anything without signing in either, so goodbye viewing stuff anonymously. There&rsquo;s just a lot of &ldquo;features&rdquo; here I&rsquo;m not a fan of. Needless to say, there&rsquo;s a lot of reasons to not post stuff there.</p> - - - diff --git a/pinapelz.moe/micro/tags/index.html b/pinapelz.moe/micro/tags/index.html deleted file mode 100644 index f513d89..0000000 --- a/pinapelz.moe/micro/tags/index.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - Tags | pinapelz.moe/micro - - - - - - - - - - - - - - - - - - -
-
-
- ==============
- == Pinapelz ==
- ============== -
-
check it out. I'm in the house like carpet
-
- -
- - - -
-
-

- Tags - - RSS icon - -

-
- -
-
-
- -
- - - - diff --git a/pinapelz.moe/micro/tags/index.xml b/pinapelz.moe/micro/tags/index.xml deleted file mode 100644 index 5541762..0000000 --- a/pinapelz.moe/micro/tags/index.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - Tags on pinapelz.moe/micro - https://pinapelz.moe/micro/tags/ - Recent content in Tags on pinapelz.moe/micro - Hugo - en-us - yukais@pinapelz.com (Pinapelz) - yukais@pinapelz.com (Pinapelz) - Mon, 01 Dec 2025 20:11:57 -0800 - - - Default - https://pinapelz.moe/micro/tags/default/ - Mon, 01 Dec 2025 20:11:57 -0800yukais@pinapelz.com (Pinapelz) - https://pinapelz.moe/micro/tags/default/ - - - - -- cgit v1.2.3