39 Commits

Author SHA1 Message Date
fff4004a72 Added a new button :D
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 8s
2025-12-03 17:44:18 +01:00
0a5cb1e850 Added a other page, and written a snuff page.
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 4s
2025-11-30 04:31:29 +01:00
b58f06bced Added a terms of service page, and fixed no embed image, and updated the sitemap
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 5s
2025-11-29 16:51:29 +01:00
5e8b8fc2ee Add a ygg.html page, and fix a small thing in the <head> tag.
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 7s
2025-11-29 16:21:03 +01:00
ff755af41e Change the wording a little bit in the services.html, and add vaultwarden to it.
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 6s
2025-11-18 07:36:22 +01:00
582c2c5b97 Delete .idea/modules.xml
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-11-16 00:31:40 +00:00
f7a1538c39 Minor bug fix
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-11-16 01:30:56 +01:00
c50ea67865 Add an about me page, and a git ignore file.
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 6s
2025-11-13 20:57:07 +01:00
f1c341d791 Update the sitemap
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 2s
2025-11-10 23:37:56 +01:00
fd72cd4445 Added a services page, might change it in the future
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-11-10 23:35:14 +01:00
6470e8daa7 Added a hamburger menu for the navbar
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 5s
2025-11-10 23:19:04 +01:00
a44530c49c Change the CSS to work better on smaller screens and mobile. 2025-11-10 23:15:48 +01:00
81b8a8968a Small changes to the HTML head tag
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-11-05 21:44:55 +01:00
fdfd3ae003 Fix the contact page.
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-11-05 21:40:34 +01:00
f28b1dee3d Add my openPGP key
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 5s
2025-11-04 23:09:56 +01:00
572c9ec925 small nabar bug fix.
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-10-31 11:21:39 +01:00
e175e01ef1 Merge branch 'rewrite-static' of git.purplebored.pl:purplebored/purplebored.pl into rewrite-static
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-10-31 11:18:32 +01:00
0b44ee9ab3 Added some more stuff to the navbar, and added a contact page 2025-10-31 11:17:47 +01:00
fc55b5f5e4 Update .gitea/workflows/deploy.yml
All checks were successful
Deploy / Deploy website via rsync over SSH (push) Successful in 3s
2025-10-30 22:48:40 +00:00
1d8b50de83 Last time I try it today.
Some checks failed
Deploy / Deploy website via rsync over SSH (push) Failing after 2s
2025-10-30 22:35:33 +00:00
d1f0f5a506 Update deploy.yml
Some checks failed
Deploy / Deploy website via rsync over SSH (push) Has been cancelled
2025-10-30 23:25:33 +01:00
ea702c6eed If this not work I give up for today
Some checks failed
Deploy Website / deploy (push) Failing after 3s
2025-10-30 22:18:12 +00:00
2534cbcdf5 Fuck you
Some checks failed
Deploy Website / deploy (push) Failing after 2s
2025-10-30 22:15:56 +00:00
b7083e5b42 Add AI debug shit to help me fix this shit 2025-10-30 22:11:32 +00:00
f178e718d7 Update .gitea/workflows/deploy.yml 2025-10-30 22:10:10 +00:00
fa80126d47 updated the deploy 2025-10-30 23:05:59 +01:00
cfed6c0dde Add a deploy action
Some checks failed
Deploy Website / deploy (push) Failing after 2s
2025-10-30 23:02:26 +01:00
7eaa623703 Updated the navbar, andded a project page 2025-10-30 22:08:29 +01:00
eb82362a61 Run CSS Autoprefixer on the styleshit 2025-10-30 18:00:40 +01:00
4937f6c391 Small oopsie fix the footer. 2025-10-30 17:58:07 +01:00
22360d3904 Added a footer 2025-10-30 17:52:57 +01:00
270450f248 Added a basic readme and robots file and created the sitemap.xml file. 2025-10-29 22:46:50 +01:00
ec500ce89a Add clounds on the bottom, and mess around with the navbar and change some stuff in the head tag. 2025-10-29 22:41:14 +01:00
e44fc8b08d Fix last part of CSS 2025-10-29 21:19:42 +01:00
60ac90124f Create LICENSE
Added the License file
2025-10-29 21:13:30 +01:00
b380449e7c A lot of CSS fuckery, added uzi and a navbar. 2025-10-29 21:10:54 +01:00
34e47d74f4 Added Fonts 2025-10-29 20:36:14 +01:00
33db4b0b2c Add the buttons, add the background made my ari, add some basic css and basic index design. 2025-10-29 20:30:47 +01:00
d95be6e453 Removed all the files to start over. 2025-10-29 20:12:08 +01:00
72 changed files with 1930 additions and 2082 deletions

View File

@@ -1,19 +0,0 @@
---
BasedOnStyle: LLVM
IndentWidth: 4
SortIncludes: false
AlignConsecutiveAssignments: true
AlignConsecutiveBitFields: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: true
AllowShortLambdasOnASingleLine: true
BinPackParameters: false
IndentCaseBlocks: true
IndentCaseLabels: true
IndentExternBlock: true
IndentGotoLabels: true
---

View File

@@ -1,11 +0,0 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
charset = utf-8
trim_trailing_whitespace = true
tab_width = 2

View File

@@ -1,41 +0,0 @@
on:
push:
paths:
- "pages/**"
- "blog/**"
- "sitemap.sh"
- "index.xhtml"
jobs:
stats:
runs-on: ubuntu-latest
container: catthehacker/ubuntu:act-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GIT_TOKEN }}
- name: Set up repository
run: |
git reset --hard
git pull
git reset --hard
- name: Generate sitemap
run: |
sh ./sitemap.sh
- name: Stage the changes
run: |
git add sitemap.xml
- name: Commit and Push Changes
run: |
if git diff --staged --quiet; then
echo "No changes to commit."
else
git config --local user.email "sitemap@localhost"
git config --local user.name "Sitemap CI/CD"
git commit -am "[skip ci] Update sitemap" || echo "No changes to commit"
git push origin HEAD -f
fi

View File

@@ -0,0 +1,57 @@
name: Deploy
on:
push:
branches:
- rewrite-static
jobs:
deploy:
name: Deploy website via rsync over SSH
runs-on: [self-hosted, linux]
env:
DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
DEPLOY_PORT: ${{ secrets.DEPLOY_PORT }}
DEPLOY_PATH: ${{ secrets.DEPLOY_PATH }}
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Check required secrets
run: |
echo "Checking secrets availability..."
for var in DEPLOY_KEY DEPLOY_USER DEPLOY_HOST DEPLOY_PORT DEPLOY_PATH; do
if [ -z "${!var}" ]; then
echo "Error: Secret $var is empty or undefined!" && exit 1
else
echo "Found secret $var (length: ${#var})"
fi
done
shell: bash
- name: Set up SSH key
run: |
echo "Setting up SSH environment..."
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "$DEPLOY_KEY" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -p "$DEPLOY_PORT" -H "$DEPLOY_HOST" >> ~/.ssh/known_hosts 2>/dev/null
echo "SSH setup complete."
shell: bash
- name: Deploy via rsync
run: |
echo "Starting rsync deployment..."
rsync -avz \
--delete \
-e "ssh -i ~/.ssh/id_ed25519 -p $DEPLOY_PORT -o StrictHostKeyChecking=no -o ConnectTimeout=10" \
./ "${DEPLOY_USER}@${DEPLOY_HOST}:${DEPLOY_PATH}"
echo "Deployment finished successfully."
shell: bash

4
.gitignore vendored
View File

@@ -1,3 +1 @@
files /.idea/
guides/xmpp
/blog/posts/2025/why-i-don't-like-nicotine-pouches.xhtml

0
0CB52690CD644413EF66A21CAEF2F9A8C0334670.asc Normal file → Executable file
View File

406
LICENSE
View File

@@ -1,203 +1,203 @@
Apache License Apache License
Version 2.0, January 2004 Version 2.0, January 2004
http://www.apache.org/licenses/ http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions. 1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, "License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document. and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by "Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License. the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all "Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition, control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the "control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity. outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity "You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License. exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, "Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation including but not limited to software source code, documentation
source, and configuration files. source, and configuration files.
"Object" form shall mean any form resulting from mechanical "Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation, not limited to compiled object code, generated documentation,
and conversions to other media types. and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or "Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work copyright notice that is included in or attached to the work
(an example is provided in the Appendix below). (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object "Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of, separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof. the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including "Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted" the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems, communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution." designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity "Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work. subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of 2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual, this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of, copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form. Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of 3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual, this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made, (except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work, use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s) Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate granted to You under this License for that Work shall terminate
as of the date such litigation is filed. as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the 4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You modifications, and in Source or Object form, provided that You
meet the following conditions: meet the following conditions:
(a) You must give any other recipients of the Work or (a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices (b) You must cause any modified files to carry prominent notices
stating that You changed the files; and stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works (c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work, attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of excluding those notices that do not pertain to any part of
the Derivative Works; and the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its (d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or, documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed that such additional attribution notices cannot be construed
as modifying the License. as modifying the License.
You may add Your own copyright statement to Your modifications and You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use, for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License. the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, 5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions. this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions. with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade 6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor, names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file. origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or 7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS, Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License. risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, 8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise, whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special, liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill, Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages. has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing 9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer, the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity, and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify, of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability. of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work. APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]" boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier same "printed page" as the copyright notice for easier
identification within third-party archives. identification within third-party archives.
Copyright [yyyy] [name of copyright owner] Copyright [2023 - 2025] [Purplebored]
Licensed under the Apache License, Version 2.0 (the "License"); Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License. you may not use this file except in compliance with the License.
You may obtain a copy of the License at You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.

View File

@@ -1,7 +1,7 @@
## purplebored.pl ## purplebored.pl
Welcome to my personal website, located at https://purplebored.pl ! <br> Welcome to my personal website, located at https://purplebored.pl ! <br>
This is a simple and goofy website that serves as my personal space on the internet. (Such fancy wording ik) This is a simple website that serves as my personal space on the internet. (Such fancy wording ik)
### License Information ### License Information
Licensed under the [Apache License, Version 2.0](LICENSE) Licensed under the [Apache License, Version 2.0](LICENSE)
@@ -15,7 +15,7 @@ distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. For the full licene chcek out the LICENSE file limitations under the License. For the full licene chcek out the LICENSE file
(So much yap abt a license ong) (So much yap about a license)
### Contributing ### Contributing
If you want to conrtibute something to my site just creating a issue first would be ideal! If you want to contribute something to my site please create a issue first, or if you know me, then just DM me about it first!

View File

@@ -1,137 +1,491 @@
body { /*
background-color: #000000; * Prefixed by:
margin: 0; * PostCSS: v7.0.29,
height: 100; * Autoprefixer: v9.7.6
overflow-x: hidden; * Browsers: last 4 version
display: flex; */
flex-direction: column;
min-height: 100vh; @font-face {
font-family: "Clockopia";
src: url("../fonts/Clockopia.ttf") format("truetype");
} }
@font-face { @font-face {
font-family: IBMWeb; font-family: "LuxiSans";
src: url('/assets/fonts/ibm9x16.woff') format('truetype'); src: url("../fonts/luxisr.ttf") format("truetype");
} }
/* Ascii logo */ body {
.ascii-logo { margin: 0;
font-family: monospace; padding: 0;
white-space: pre; display: flex;
color: #a57ae9; flex-direction: column;
top: 50px; min-height: 100vh;
} background-color: #0e0016;
/* End of Ascii logo */ color: white;
font-family: "system-ui", sans-serif;
/* The main content of the website */ overflow-x: hidden;
.content1 { padding-right: 140px;
margin-left: 20px;
margin-right: 20px;
font-family: IBMWeb, Liberation Mono, monospace;
background-color: #000000;
color: #a57ae9;
font-size: 1.0em;
white-space: normal;
}
/* End of the main content of the website */
/* You may ask yourself why are there two identical css sections. */
.content2 {
margin-left: 20px;
margin-right: 20px;
font-family: IBMWeb, Liberation Mono, monospace;
white-space: normal;
color: #a57ae9;
font-size: large;
}
/* Very easy one is for articels or just post idk how to call them and the content1 thing if for general usage */
/*Code to make footer look cool and ncie :D*/
.footer {
font-family: IBMWeb, Liberation Mono, monospace;
text-align: center;
margin-top: auto;
padding: 1em;
color: white;
text-decoration: none;
background: transparent;
}
/* End of the code which makes the footer look nice :( */
/* Makes hyperlinks not look like shit */
a {
text-decoration: none;
color: #447fc6;
} }
/* Underlines the hyperlinks */ .navbar {
::selection { width: 140px;
color: #000000; background: rgba(60, 26, 77, 0.55);
background: #a57ae9 backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
border-left: 1px solid rgba(255, 255, 255, 0.05);
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
padding-top: 2rem;
padding-bottom: 2rem;
position: fixed;
right: 0;
top: 0;
bottom: 0;
z-index: 20;
box-shadow: -2px 0 10px rgba(0, 0, 0, 0.4);
} }
a::selection { .navbar ul {
color: #000; list-style: none;
background: #447fc6 margin: 0;
} padding: 0;
width: 100%;
a:not(:has(img)):hover {
text-decoration: underline
}
/* End of the code which makes hyperlink usable */
/* The Css for the article website */
.article {
margin-left: 35px;
margin-right: 35px;
font-family: monospace;
color: #a57ae9;
font-size: small;
} }
/* CSS to make the guides look nice. */ .navbar li {
.ascii-logo2 { width: 100%;
font-family: monospace; position: relative;
white-space: pre;
color: #a57ae9;
top: 50px;
} }
.error { .navbar a {
margin: 0 auto; display: block;
color: white;
text-decoration: none;
text-align: center; text-align: center;
font-family: monospace; padding: 0.75rem 0;
white-space: pre; position: relative;
color: #a57ae9; transition: background 0.2s ease, color 0.2s ease;
} }
.snuff-warning h4 { .navbar a::before,
margin-left: 20px; .navbar a::after {
margin-right: 20px; content: "";
font-family: Arial, serif; display: block;
font-size: 16pt; position: absolute;
font-weight: bold; left: 0;
text-transform: uppercase; width: 100%;
text-align: center; height: 1px;
border: 1mm solid black; background-color: rgba(255, 255, 255, 0.25);
padding: 4px; transition: background-color 0.2s ease;
margin-bottom: 1em;
} }
.snuff-warning ul { .navbar a::before { top: 0; }
margin-left: 20px; .navbar a::after { bottom: 0; }
margin-right: 20px;
list-style-type: none; .navbar a:hover {
padding-left: 0; background-color: #5e2b7a;
margin-left: 0; color: #fff5a8;
} }
.snuff-warning input[type="checkbox"] { .navbar a:hover::before,
margin-left: 20px; .navbar a:hover::after {
margin-right: 6px; background-color: #fff5a8;
} }
.blog ul { .navbar-top-icons {
list-style-type: none; display: flex;
padding-left: 0; flex-direction: row;
margin-left: 0; justify-content: center;
align-items: center;
gap: 16px;
margin-bottom: 1.5rem;
} }
.icon-item {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
}
.icon-item img {
width: 32px;
height: 32px;
object-fit: contain;
transition: transform 0.2s ease, opacity 0.2s ease;
}
.icon-item img:hover {
transform: scale(1.1);
opacity: 0.85;
}
.icon-label {
font-family: "Clockopia", sans-serif;
font-size: 0.8rem;
margin-top: 4px;
}
.tor-label { color: #6e2b9e; }
.ygg-label { color: #92ffb3; }
.mobile-nav-toggle {
display: none;
position: fixed;
top: 12px;
right: 12px;
z-index: 50;
background: rgba(60, 26, 77, 0.6);
color: #fff;
font-size: 1.8rem;
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 6px;
padding: 4px 10px;
cursor: pointer;
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
}
.footer {
position: relative;
width: 100%;
padding: 1rem 0;
text-align: center;
font-family: IBMWeb, "Liberation Mono", monospace;
color: #fff;
background: transparent;
margin-top: auto;
z-index: 10;
}
a { text-decoration: none; color: #447fc6; }
::-moz-selection { color: #000000; background: #a57ae9; }
::selection { color: #000000; background: #a57ae9; }
a::-moz-selection { color: #000; background: #447fc6; }
a::selection { color: #000; background: #447fc6; }
a:not(:has(img)):hover { text-decoration: underline; }
.content {
display: flex;
align-items: center;
justify-content: center;
flex: 1;
padding: 4rem 10%;
gap: 5%;
z-index: 10;
position: relative;
box-sizing: border-box;
flex-wrap: wrap;
max-width: calc(100% - 140px);
}
.left {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
}
.uzi {
width: 90%;
max-width: 650px;
height: auto;
pointer-events: none;
}
.middle {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
text-align: left;
z-index: 10;
max-width: 800px;
}
.middle h1 {
font-family: "Clockopia", sans-serif;
font-size: 3.5rem;
margin-bottom: 1rem;
color: #fff5a8;
}
.middle p {
font-size: 1.1rem;
line-height: 1.7;
margin-bottom: 1rem;
max-width: 550px;
}
.buttons {
display: flex;
flex-wrap: wrap;
gap: 6px;
margin-top: 1.5rem;
}
.buttons img {
width: 88px;
height: 31px;
border: none;
image-rendering: pixelated;
}
.services-page {
max-width: 900px;
margin: 0 auto;
padding: 6rem 2rem 8rem 2rem;
text-align: left;
box-sizing: border-box;
}
.service-card {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.08);
padding: 1.5rem;
margin: 1.5rem 0;
border-radius: 6px;
backdrop-filter: blur(6px);
box-shadow: 0 0 12px rgba(0, 0, 0, 0.25);
}
.service-card h2 {
font-family: "Clockopia", sans-serif;
color: #fff5a8;
margin-top: 0;
margin-bottom: .75rem;
}
.service-card ul {
margin-left: 1.25rem;
line-height: 1.7;
color: #ddd;
}
.service-card a {
color: #fff5a8;
text-decoration: none;
}
.service-card a:hover {
text-decoration: underline;
}
@media (max-width: 900px) {
.services-page {
padding-left: 1.5rem;
padding-right: 1.5rem;
padding-top: 5rem;
text-align: center;
}
.service-card ul {
text-align: left;
}
}
/* Background */
#night {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: #0e0016;
z-index: -9999;
pointer-events: none;
}
.clouds {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: auto;
z-index: -5;
pointer-events: none;
}
.clouds img {
width: 100%;
height: auto;
display: block;
opacity: 0.5;
filter: blur(1px);
}
/* Project Page */
.project-page {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
max-width: calc(100% - 140px);
margin: 0 auto;
padding: 5rem 2rem 8rem;
}
.project-page h1,
.project-page h2,
.project-page h3 {
font-family: "Clockopia", sans-serif;
color: #fff5a8;
}
.project-page a {
color: #fff5a8;
text-decoration: none;
}
.project-page a:hover {
text-decoration: underline;
}
.project-page ul {
text-align: left;
margin: auto;
max-width: 600px;
}
.project-page p {
max-width: 700px;
line-height: 1.5;
margin-bottom: auto;
}
/*Shit to make it not terrible for mobile users.*/
@media (max-width: 1200px) {
.content {
flex-direction: column;
text-align: center;
padding: 3rem 2rem;
max-width: 100%;
}
.left, .middle {
flex: unset;
width: 100%;
}
.uzi {
width: 60%;
max-width: 600px;
margin-bottom: 2rem;
}
.middle {
text-align: center;
align-items: center;
}
}
/* Full mobile mode */
@media (max-width: 900px) {
body {
padding-right: 0;
}
.navbar {
position: relative;
width: 100%;
height: auto;
flex-direction: row;
justify-content: center;
padding: 0.5rem 0;
border-left: none;
border-right: none;
}
.navbar ul {
display: flex;
gap: 1rem;
}
.content,
.project-page {
max-width: 100%;
flex-direction: column;
padding: 2rem 1.5rem;
text-align: center;
}
.middle {
text-align: center;
align-items: center;
max-width: 100%;
}
.uzi {
width: 70%;
margin-bottom: 2rem;
}
.footer {
padding-bottom: 2rem;
}
.navbar-top-icons {
margin-bottom: 0.5rem;
gap: 10px;
}
.icon-item img {
width: 24px;
height: 24px;
}
.icon-label {
font-size: 0.7rem;
}
}
.mobile-nav-toggle {
display: none;
position: fixed;
top: 12px;
right: 12px;
z-index: 50;
background: rgba(60, 26, 77, 0.6);
color: #fff;
font-size: 1.8rem;
border: 1px solid rgba(255, 255, 255, 0.3);
border-radius: 6px;
padding: 4px 10px;
cursor: pointer;
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
}
@media (max-width: 900px) {
.mobile-nav-toggle {
display: block;
}
.navbar {
position: fixed;
right: -100%;
top: 0;
bottom: 0;
width: 200px;
padding-top: 3.5rem;
flex-direction: column;
height: 100vh;
transition: right 0.3s ease;
}
.navbar.open {
right: 0;
}
.navbar ul {
flex-direction: column;
gap: 0;
}
body {
padding-right: 0;
}
}

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>401</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _
| || | / _ \/ |
| || |_| | | | |
|__ _| |_| | |
|_| \___/|_|
401 - Unauthorized
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>403</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _____
| || | / _ \___ /
| || |_| | | ||_ \
|__ _| |_| |__) |
|_| \___/____/
403 - Forbidden
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _ _
| || | / _ \| || |
| || |_| | | | || |_
|__ _| |_| |__ _|
|_| \___/ |_|
404 - Not Found
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>500</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _____
| || | / _ \___ /
| || |_| | | ||_ \
|__ _| |_| |__) |
|_| \___/____/
500 - Internal Server Error
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>502</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
____ ___ ____
| ___| / _ \___ \
|___ \| | | |__) |
___) | |_| / __/
|____/ \___/_____|
502 - Bad gateway
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@@ -1,3 +0,0 @@
uhh hi! as you can see my error thingy is far from being done. This is just a temporay file to let you know if you for whatever reason are here.
have a good day/night

BIN
assets/fonts/Clockopia.ttf Normal file

Binary file not shown.

Binary file not shown.

BIN
assets/fonts/luxisr.ttf Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 237 B

BIN
assets/images/clouds.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

BIN
assets/images/icons/tor.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
assets/images/icons/ygg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

BIN
assets/images/pfp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
assets/images/uzi.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

175
assets/js/script.js Normal file
View File

@@ -0,0 +1,175 @@
"use strict";
function create_night(canvas_element) {
const context = canvas_element.getContext("2d");
const star_range = 0.7; /* Variation in star size */
const star_spread = 0.002; /* Star density per pixel */
const concentration_corner = "top-left"; /* Concentration corner position */
const concentration_strength = 5.0; /* How much should it be concentrated? */
const twinkle_intensity = 5.0; /* How noticeable should the twinkle be? */
const interaction_radius = 150; /* Radius around mouse/touch where stars react */
const interaction_brightness_factor = 5.0; /* How much brightness increases */
const interaction_size_factor = 1.5; /* How much the stars should grow in size (only during interaction) */
const magic = [
16.31189, 32454.4619, 9371.1474, 6848, 1544, 6848, 2156,
]; /* Just some magic numbers */
/* Seeded "random" number */
function seeded_random(seed) {
const value = Math.sin(seed) * 10000;
return value - Math.floor(value);
}
let stars = [];
let time = 0;
let mouse_x = -1,
mouse_y = -1;
/* Determine corner position for concentration */
function get_corner(width, height) {
switch (concentration_corner) {
case "top-right":
return { x: width, y: 0 };
case "bottom-left":
return { x: 0, y: height };
case "bottom-right":
return { x: width, y: height };
default:
return { x: 0, y: 0 }; /* top-left */
}
}
/* Function to generate star shape */
function draw_star(x, y, radius, alpha) {
const num_points = 5 + Math.floor(Math.random() * 3);
const angle = Math.PI / num_points;
context.beginPath();
for (let idx = 0; idx < num_points; idx++) {
const angle_offset = (idx * 2 * Math.PI) / num_points;
const outer_x = x + radius * Math.cos(angle_offset);
const outer_y = y + radius * Math.sin(angle_offset);
context.lineTo(outer_x, outer_y);
/* Inner points for star shape */
const inner_radius = radius / 2 + Math.random() * 0.2;
const inner_x = x + inner_radius * Math.cos(angle_offset + angle);
const inner_y = y + inner_radius * Math.sin(angle_offset + angle);
context.lineTo(inner_x, inner_y);
}
context.closePath();
context.fillStyle = `rgba(255, 255, 180, ${alpha})`;
context.fill();
}
/* Function to generate star background */
function generate_stars() {
const { width, height } = canvas_element;
const star_count = Math.floor(width * height * star_spread);
const corner = get_corner(width, height);
stars = [];
for (let idx = 0; idx < star_count; idx++) {
const base_random = seeded_random(idx * magic[0]);
/* Uniform random position */
const raw_x = seeded_random(base_random * magic[1]) * width;
const raw_y = seeded_random(base_random * magic[2]) * height;
/* Calculate distance from the corner to control concentration */
const dx = raw_x - corner.x;
const dy = raw_y - corner.y;
const distance = Math.sqrt(dx * dx + dy * dy);
/* Apply exponential falloff based on distance (closer = more likely to be drawn) */
const max_distance = Math.sqrt(width * width + height * height);
const weight = Math.exp(
-concentration_strength * (distance / max_distance),
);
/* Skip stars that don't meet the concentration threshold */
if (seeded_random(base_random * magic[3]) > weight) {
continue;
}
/* Randomized star properties */
const radius =
seeded_random(base_random * magic[4]) * star_range +
0.4 +
Math.random() * 0.2;
const twinkle_speed =
seeded_random(base_random * magic[5]) * 1.5 + 0.3;
const twinkle_phase =
seeded_random(base_random * magic[6]) * Math.PI * 2;
stars.push({
x: raw_x,
y: raw_y,
radius,
twinkle_speed,
twinkle_phase,
original_radius: radius,
});
}
}
/* Resize canvas and regenerate stars on window resize */
function resize_canvas() {
canvas_element.width = window.innerWidth;
canvas_element.height = window.innerHeight;
generate_stars();
}
window.addEventListener("resize", resize_canvas);
resize_canvas();
/* Handle mouse/touch movement effects */
function handle_interaction(event) {
if (event.touches) {
mouse_x = event.touches[0].clientX;
mouse_y = event.touches[0].clientY;
} else {
mouse_x = event.clientX;
mouse_y = event.clientY;
}
}
window.addEventListener("mousemove", handle_interaction);
window.addEventListener("touchmove", handle_interaction);
/* Animate stars (twinke) */
function animate() {
time += 0.01;
const { width, height } = canvas_element;
context.fillStyle = "#0e0016";
context.fillRect(0, 0, width, height);
for (const star of stars) {
const twinkle = Math.sin(
time * star.twinkle_speed + star.twinkle_phase,
);
let alpha = 0.6 + twinkle_intensity * (0.5 + 0.5 * twinkle);
/* Interaction effect based on mouse/touch proximity */
if (mouse_x !== -1 && mouse_y !== -1) {
const dx = mouse_x - star.x;
const dy = mouse_y - star.y;
const distance = Math.sqrt(dx * dx + dy * dy);
if (distance < interaction_radius) {
const effect = Math.max(
0,
1 - distance / interaction_radius,
);
alpha *=
1 +
effect *
interaction_brightness_factor; /* Make the star brighter */
star.radius =
star.original_radius *
(1 +
effect *
interaction_size_factor); /* Grow the star size */
}
}
draw_star(star.x, star.y, star.radius, alpha);
}
requestAnimationFrame(animate);
}
animate();
}
function base_main() {
const night = document.getElementById("night");
create_night(night);
}
document.addEventListener("DOMContentLoaded", () => {
base_main();
});
document.addEventListener("DOMContentLoaded", () => {
const toggle = document.querySelector(".mobile-nav-toggle");
const navbar = document.querySelector(".navbar");
if (toggle && navbar) {
toggle.addEventListener("click", () => {
navbar.classList.toggle("open");
});
}
});

View File

@@ -1,48 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Purpleblog" />
<meta name="og:description" content="Purplebored's blog" />
<meta name="description" content="Purplebored's blog" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, blog, nasal snuff, tobacco, Personal Wesbite, niko, joe camel" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Purpleblog=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content2" style="text-align: center;">
<h1>=== Purpleblog ===</h1>
<p>
Hello and welcome to my "new" blog. I used to use htmly but decided to stop using it since I had some issues with it. It was nice to write the blogs but the expireince for the user was mediocre at best. At least in my opinion.
Well the blogs on here will be exactly the same as on blog.purplebored.pl just written manually by hand in xhtml. This is overall the better option and it will make my blog aviable over ygg, tor, and i2p.
</p>
<div class="blog">
<h3>Posts:</h3>
<ul>
<li><a href="/blog/posts/2025/blog-future.xhtml">The future of my blog.</a> </li>
<li><a href="/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml">My Review of the Ozona R-type Snuff</a> </li>
<li><a href="/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml"> My Review of the Red Bull Snuff </a> </li>
<li><a href="/blog/posts/2025/my-review-of-the-minecraft-movie.xhtml">My Review of the Minecraft Movie</a> </li>
</ul>
<br />
</div>
<h3><a href="/index.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,44 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content=" Future of my blog " />
<meta name="og:description" content=" I discuss here the future of my blog " />
<meta name="description" content=" I discuss here the future of my blog " />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, blog, nasal snuff, tobacco, Personal Wesbite, niko, joe camel" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=The future of my blog=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content2" style="text-align: center;">
<h1>=== The future of my blog ===</h1>
<p>
Alright I gonna be honest. I don't think I am going to write any blogs anymore. The truth is that I am not really good at writing them, I also have no idea about what to write!
I kinda tried to write reviews and I did not like doing it that much like even now I have no clue at all what to write I am not really good at blogs I always sucked at it my not good English skills are also not really helping this situation.
I will be not deleting my blog I will be still keeping it but for the last like few months I actually wrote nothing. Some people are born with a skill for writing long posts like this but I am sadly not one of them.
I will be of course keeping my site and still updating it but this will be probably abandoned sadly. People tell me that writing is a skill you aquaire but I don't think so I just plainly speaking suck at it :(
So yeah this is a short post but that's it and that's also one of the reasons I will be quitting writing blog posts I just can't write anything long enough. Maybe once I have some projects I will be writing about them, but for now this is it.
Big thanks to the people reading my blog (If there even are any lol) and hopefully cya when I maybe change my mind about this.
</p>
<br />
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,47 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="My review of the Minecraft Movie" />
<meta name="og:description" content="My review of the Minecraft Movie (6/10)" />
<meta name="description" content="My review of the Minecraft Movie (6/10)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, blog, nasal snuff, tobacco, Personal Wesbite, niko, joe camel, minecraft movie" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<meta name="date" content="2025-04-07" />
<title>=Purpleblog=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content2" style="text-align: center;">
<h1>=== My Review of the "Minecraft Movie" ===</h1>
<p>
Okay so I went to the cinema to watch the Minecraft movie. Gonna be honest I am terrible at writing reviews but I gonna try my best here.
<br /> <br />
Gonna start off by saying at the end of the day it's a kids comedy. Like if y'all want to watch it don't expect a movie with a good story and mature humor you won't get it from there but even after this I am actually happily surprised. The CGI looked way worse in the trailers, and even I got a smirk on my face from a few of the jokes. The soundtrack was also decent, and somehow the casting was also pretty alright. The story over all was sadly really predictable and the entire plot was also meh. Like I don't know what else to say it was just alright I went and saw it with my younger brother and his friend since I needed to supervise them and they liked it. The children in the cinema also liked it and were laughing at the jokes, if y'all got a young brother and care enough to go to the cinema then yeah I would say it's worth it to see, but if you want to see it by yourself then I don't think it's worth it. So overall I do not regret the money spent the movie was actually fully fine. If they actually invested into the story a bit more I would actually say it's would be pretty amazing I don't know what else to say it was a decent movie, worth it to watch with a younger sibling but not worth it to watch by yourself.
<br /> <br />
Also funny story I overheard some kids talking about how they liked it but they wished it was a animation and not live action. So yeah even the kids believe it shouldn't have been live action LMFAO.
<br />
Solid 6/10 in my opinion could be worse.
</p>
<br />
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,45 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Red Bull snuff review" />
<meta name="og:description" content="Me reviewing the popular snuff called Red Bull" />
<meta name="description" content="Me Reviewing the popular snuff called Red bull" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, blog, nasal snuff, tobacco, Personal Wesbite, niko, joe camel" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<meta name="date" content="2025-04-08" />
<title>=Purpleblog=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content2" style="text-align: center;">
<h1>=== Snuff review 1. Red bull snuff ===</h1>
<p>
So the Red bull snuff is one of the most popular snuffs here in Poland. It's a also a very popular first snuff for many of people. For me it was the second snuff I ever tried and here is my small review after using it for around 3 weeks:
<br />
Going to start of with saying it's very strong and has a nice minty eucalyptus taste to it. Personally I am really mixed about the taste I don't think it's bad but I do think it's overrated. I saw a lot of people praising it for being the best snuff and the best snuff for beginners which I totally don't agree with. It's in my opinion too strong to beginners and there are better option. Price wise I would say it's in the mid range. I won't be telling the price in my reviews since that changes a lot with the taxes on tobacco changing a lot of the time and they differ a lot by the country. The box it comes in is a average generic Pöschl Tabak box which in my opinion sucks. The boxes tend to open in the pockets sometimes and the clips tend to break off which is really annoying. The aroma at first is amazing but it tends to go away after a while since the box it comes in isn't really "tight" I don't know how to explain it. The snuff last for quite a long while I had my 10g pack for around 3 or maybe even 4 weeks by this point. It also really works well if you have a runny nose since it clears it real good.
<br /> <br />
To summarize: I believe that Red bull is over all good but I also believe that it is way too overrated and very much not a good snuff for beginners. Overall in my opinion it's a big and strong 8/10. Good but not perfect. If you been taking snuff for a while already and never tried it you should try it BUT if you never tried snuff then I would choose a less stronger snuff like maybe OZONA stuff or GLETSCHER PRISE.
</p>
<br />
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,50 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Ozona R-Type snuff review" />
<meta name="og:description" content="My small review of the Ozona R-type snuff" />
<meta name="description" content="My Small review of the Ozona R-type snuff" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, blog, nasal snuff, tobacco, Personal Wesbite, niko, joe camel" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<meta name="date" content="2025-05-14" />
<title>=Purpleblog=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content2" style="text-align: center;">
<h1>=== Snuff 2 review - Ozona R-type ===</h1>
<p>
So the time finally came. I finished my 5grams of Ozona R-type. This was honestly a really hard snuff to review I have very mixed feelings about this. Well I am going to probably start off by saying it's very weak like probably the weakest one I tried so far. The taste is also pretty chemical but that doesn't mean it's bad it's still pretty good. I also gonna explain what the new "types" mean. Before they were called for example: Ozona Cherry, Raspberry, Orange, etc etc. But now they are called the first letter of the flavor. So Ozona R-type is Ozona Raspberry. It's a stupid and annoying change which I don't really like but you get used to it.
</p>
<img src="/assets/images/blog/2025/ozonar.png" alt="A comparison between the old and new ozona r-type 5 gram packeging" width="300" height="200" />
<p>
Above you can see the differences between the old and new packaging
<br /> <br />
So the flavor is a pretty decent chemical raspberry. It also has some mint in it. Very very good for beginners. I gave it to some of my friends which don't take snuff and they quite liked it (Unlike Red Bull which was somewhat too strong for them.) I personally found it mid since I like stronger snuffs. The packaging is pretty neat so I gonna talk about it. It's a 5gram metal round thingy which you rotate until it opens a hole. It kept the scent for quite a long time, it was also very convenient to use AND easy to open if you want to add a different snuff to it. Honestly I like this type of packaging most. It's nice, small, good, and simply convenient. Honestly I don't know what else to say if you are a beginner searching for some good and weak snuff then you should give Ozona R-Type snuff a shot. But if you are already a snuff user and like stronger snuffs then I would avoid it.
<br /> <br />
And here comes the hard part. Giving it a rating. It's really hard since the taste is good but it's weak which makes it good for beginners but pretty mediocre for people who already are taking snuff and are used to stronger ones. I think it's a strong 6/10 for people who already take snuff and like something stronger and a BIG STRONG 8/10 for new snuff takers.
</p>
<br />
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,39 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content=" BLOG TITLE " />
<meta name="og:description" content=" BLOG CONTENT " />
<meta name="description" content=" BLOG CONTENT " />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, blog, nasal snuff, tobacco, Personal Wesbite, niko, joe camel" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Purpleblog=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content2" style="text-align: center;">
<h1>=== BLOG TITLE ===</h1>
<p>
</p>
<br />
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>401</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _
| || | / _ \/ |
| || |_| | | | |
|__ _| |_| | |
|_| \___/|_|
401 - Unauthorized
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>403</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _____
| || | / _ \___ /
| || |_| | | ||_ \
|__ _| |_| |__) |
|_| \___/____/
403 - Forbidden
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>404</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _ _
| || | / _ \| || |
| || |_| | | | || |_
|__ _| |_| |__ _|
|_| \___/ |_|
404 - Not Found
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>500</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
_ _ ___ _____
| || | / _ \___ /
| || |_| | | ||_ \
|__ _| |_| |__) |
|_| \___/____/
500 - Internal Server Error
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

View File

@@ -1,21 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>502</title>
<link rel="icon" href="/favicon.png" />
<link rel="stylesheet" href="/assets/css/style.css" />
</head>
<body>
<div class="error">
____ ___ ____
| ___| / _ \___ \
|___ \| | | |__) |
___) | |_| / __/
|____/ \___/_____|
502 - Bad gateway
<a href="/index.xhtml">Go home!</a>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,3 +0,0 @@
uhh hi! as you can see my error thingy is far from being done. This is just a temporay file to let you know if you for whatever reason are here.
have a good day/night

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,84 +0,0 @@
import os
import datetime
from bs4 import BeautifulSoup
from feedgen.feed import FeedGenerator
from pytz import UTC # Ensures timezone-aware datetime
# Configuration
BASE_URL = 'https://purplebored.pl'
POSTS_DIR = './blog/posts'
FEED_OUTPUT_DIR = './feeds'
AUTHOR_NAME = 'Purplebored'
AUTHOR_EMAIL = 'purplebored@posteo.com'
def parse_xhtml_post(filepath):
with open(filepath, 'r', encoding='utf-8') as f:
soup = BeautifulSoup(f, 'lxml')
# Try <meta name="og:title" content="...">
og_title = soup.find('meta', attrs={'name': 'og:title'})
if og_title and og_title.get('content'):
title = og_title['content']
else:
# Fallback to <title> tag
title_tag = soup.find('title')
title = title_tag.get_text() if title_tag else 'Untitled'
# Parse <meta name="date" content="YYYY-MM-DD">
date_meta = soup.find('meta', {'name': 'date'})
if date_meta and date_meta.get('content'):
pub_date = datetime.datetime.strptime(date_meta['content'], '%Y-%m-%d')
else:
pub_date = datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
pub_date = pub_date.replace(tzinfo=UTC)
# Extract article or body content
content = soup.find('article') or soup.find('body')
# Generate relative URL
rel_path = os.path.relpath(filepath, POSTS_DIR)
url = f'{BASE_URL}/blog/posts/{rel_path}'.replace('\\', '/')
return {
'title': title,
'url': url,
'date': pub_date,
'content': str(content)
}
def generate_feeds(posts):
fg = FeedGenerator()
fg.id(BASE_URL)
fg.title('Purplebored Blog')
fg.author({'name': AUTHOR_NAME, 'email': AUTHOR_EMAIL})
fg.link(href=BASE_URL, rel='alternate')
fg.language('en')
fg.description('A blog about snuff reviews and other thoughts.')
for post in sorted(posts, key=lambda x: x['date'], reverse=True):
fe = fg.add_entry()
fe.id(post['url'])
fe.title(post['title'])
fe.link(href=post['url'])
fe.published(post['date'])
fe.content(post['content'], type='xhtml')
os.makedirs(FEED_OUTPUT_DIR, exist_ok=True)
fg.rss_file(os.path.join(FEED_OUTPUT_DIR, 'feed.rss'))
fg.atom_file(os.path.join(FEED_OUTPUT_DIR, 'feed.atom'))
def main():
posts = []
for root, dirs, files in os.walk(POSTS_DIR):
for file in files:
if file.endswith('.xhtml'):
filepath = os.path.join(root, file)
post_data = parse_xhtml_post(filepath)
posts.append(post_data)
generate_feeds(posts)
print(f'✅ Generated {len(posts)} posts in RSS and Atom feeds.')
if __name__ == '__main__':
main()

View File

@@ -1,114 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><id>https://purplebored.pl</id><title>Purplebored Blog</title><updated>2025-09-25T19:58:02.453463+00:00</updated><author><name>Purplebored</name><email>purplebored@posteo.com</email></author><link href="https://purplebored.pl" rel="alternate"/><generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator><subtitle>A blog about snuff reviews and other thoughts.</subtitle><entry><id>https://purplebored.pl/blog/posts/2025/my-review-of-the-minecraft-movie.xhtml</id><title>My review of the Minecraft Movie</title><updated>2025-09-25T19:58:02.453546+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><body>
<div class="content2" style="text-align: center;">
<h1>=== My Review of the "Minecraft Movie" ===</h1>
<p>
Okay so I went to the cinema to watch the Minecraft movie. Gonna be honest I am terrible at writing reviews but I gonna try my best here.
<br/> <br/>
Gonna start off by saying at the end of the day it's a kids comedy. Like if y'all want to watch it don't expect a movie with a good story and mature humor you won't get it from there but even after this I am actually happily surprised. The CGI looked way worse in the trailers, and even I got a smirk on my face from a few of the jokes. The soundtrack was also decent, and somehow the casting was also pretty alright. The story over all was sadly really predictable and the entire plot was also meh. Like I don't know what else to say it was just alright I went and saw it with my younger brother and his friend since I needed to supervise them and they liked it. The children in the cinema also liked it and were laughing at the jokes, if y'all got a young brother and care enough to go to the cinema then yeah I would say it's worth it to see, but if you want to see it by yourself then I don't think it's worth it. So overall I do not regret the money spent the movie was actually fully fine. If they actually invested into the story a bit more I would actually say it's would be pretty amazing I don't know what else to say it was a decent movie, worth it to watch with a younger sibling but not worth it to watch by yourself.
<br/> <br/>
Also funny story I overheard some kids talking about how they liked it but they wished it was a animation and not live action. So yeah even the kids believe it shouldn't have been live action LMFAO.
<br/>
Solid 6/10 in my opinion could be worse.
</p>
<br/>
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored © 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body></div></content><link href="https://purplebored.pl/blog/posts/2025/my-review-of-the-minecraft-movie.xhtml"/><published>2025-04-07T00:00:00+00:00</published></entry><entry><id>https://purplebored.pl/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml</id><title>Red Bull snuff review</title><updated>2025-09-25T19:58:02.453540+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><body>
<div class="content2" style="text-align: center;">
<h1>=== Snuff review 1. Red bull snuff ===</h1>
<p>
So the Red bull snuff is one of the most popular snuffs here in Poland. It's a also a very popular first snuff for many of people. For me it was the second snuff I ever tried and here is my small review after using it for around 3 weeks:
<br/>
Going to start of with saying it's very strong and has a nice minty eucalyptus taste to it. Personally I am really mixed about the taste I don't think it's bad but I do think it's overrated. I saw a lot of people praising it for being the best snuff and the best snuff for beginners which I totally don't agree with. It's in my opinion too strong to beginners and there are better option. Price wise I would say it's in the mid range. I won't be telling the price in my reviews since that changes a lot with the taxes on tobacco changing a lot of the time and they differ a lot by the country. The box it comes in is a average generic Pöschl Tabak box which in my opinion sucks. The boxes tend to open in the pockets sometimes and the clips tend to break off which is really annoying. The aroma at first is amazing but it tends to go away after a while since the box it comes in isn't really "tight" I don't know how to explain it. The snuff last for quite a long while I had my 10g pack for around 3 or maybe even 4 weeks by this point. It also really works well if you have a runny nose since it clears it real good.
<br/> <br/>
To summarize: I believe that Red bull is over all good but I also believe that it is way too overrated and very much not a good snuff for beginners. Overall in my opinion it's a big and strong 8/10. Good but not perfect. If you been taking snuff for a while already and never tried it you should try it BUT if you never tried snuff then I would choose a less stronger snuff like maybe OZONA stuff or GLETSCHER PRISE.
</p>
<br/>
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored © 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body></div></content><link href="https://purplebored.pl/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml"/><published>2025-04-08T00:00:00+00:00</published></entry><entry><id>https://purplebored.pl/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml</id><title>Ozona R-Type snuff review</title><updated>2025-09-25T19:58:02.453532+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><body>
<div class="content2" style="text-align: center;">
<h1>=== Snuff 2 review - Ozona R-type ===</h1>
<p>
So the time finally came. I finished my 5grams of Ozona R-type. This was honestly a really hard snuff to review I have very mixed feelings about this. Well I am going to probably start off by saying it's very weak like probably the weakest one I tried so far. The taste is also pretty chemical but that doesn't mean it's bad it's still pretty good. I also gonna explain what the new "types" mean. Before they were called for example: Ozona Cherry, Raspberry, Orange, etc etc. But now they are called the first letter of the flavor. So Ozona R-type is Ozona Raspberry. It's a stupid and annoying change which I don't really like but you get used to it.
</p>
<img alt="A comparison between the old and new ozona r-type 5 gram packeging" height="200" src="/assets/images/blog/2025/ozonar.png" width="300"/>
<p>
Above you can see the differences between the old and new packaging
<br/> <br/>
So the flavor is a pretty decent chemical raspberry. It also has some mint in it. Very very good for beginners. I gave it to some of my friends which don't take snuff and they quite liked it (Unlike Red Bull which was somewhat too strong for them.) I personally found it mid since I like stronger snuffs. The packaging is pretty neat so I gonna talk about it. It's a 5gram metal round thingy which you rotate until it opens a hole. It kept the scent for quite a long time, it was also very convenient to use AND easy to open if you want to add a different snuff to it. Honestly I like this type of packaging most. It's nice, small, good, and simply convenient. Honestly I don't know what else to say if you are a beginner searching for some good and weak snuff then you should give Ozona R-Type snuff a shot. But if you are already a snuff user and like stronger snuffs then I would avoid it.
<br/> <br/>
And here comes the hard part. Giving it a rating. It's really hard since the taste is good but it's weak which makes it good for beginners but pretty mediocre for people who already are taking snuff and are used to stronger ones. I think it's a strong 6/10 for people who already take snuff and like something stronger and a BIG STRONG 8/10 for new snuff takers.
</p>
<br/>
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored © 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body></div></content><link href="https://purplebored.pl/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml"/><published>2025-05-14T00:00:00+00:00</published></entry><entry><id>https://purplebored.pl/blog/posts/template.xhtml</id><title> BLOG TITLE </title><updated>2025-09-25T19:58:02.453517+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><body>
<div class="content2" style="text-align: center;">
<h1>=== BLOG TITLE ===</h1>
<p>
</p>
<br/>
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored © 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body></div></content><link href="https://purplebored.pl/blog/posts/template.xhtml"/><published>2025-09-12T23:19:11.980358+00:00</published></entry><entry><id>https://purplebored.pl/blog/posts/2025/blog-future.xhtml</id><title> Future of my blog </title><updated>2025-09-25T19:58:02.453500+00:00</updated><content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><body>
<div class="content2" style="text-align: center;">
<h1>=== The future of my blog ===</h1>
<p>
Alright I gonna be honest. I don't think I am going to write any blogs anymore. The truth is that I am not really good at writing them, I also have no idea about what to write!
I kinda tried to write reviews and I did not like doing it that much like even now I have no clue at all what to write I am not really good at blogs I always sucked at it my not good English skills are also not really helping this situation.
I will be not deleting my blog I will be still keeping it but for the last like few months I actually wrote nothing. Some people are born with a skill for writing long posts like this but I am sadly not one of them.
I will be of course keeping my site and still updating it but this will be probably abandoned sadly. People tell me that writing is a skill you aquaire but I don't think so I just plainly speaking suck at it :(
So yeah this is a short post but that's it and that's also one of the reasons I will be quitting writing blog posts I just can't write anything long enough. Maybe once I have some projects I will be writing about them, but for now this is it.
Big thanks to the people reading my blog (If there even are any lol) and hopefully cya when I maybe change my mind about this.
</p>
<br/>
<h3><a href="/blog/blog.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored © 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body></div></content><link href="https://purplebored.pl/blog/posts/2025/blog-future.xhtml"/><published>2025-09-25T21:57:52.085913+00:00</published></entry></feed>

View File

@@ -1,114 +0,0 @@
<?xml version='1.0' encoding='UTF-8'?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0"><channel><title>Purplebored Blog</title><link>https://purplebored.pl</link><description>A blog about snuff reviews and other thoughts.</description><docs>http://www.rssboard.org/rss-specification</docs><generator>python-feedgen</generator><language>en</language><lastBuildDate>Thu, 25 Sep 2025 19:58:02 +0000</lastBuildDate><item><title>My review of the Minecraft Movie</title><link>https://purplebored.pl/blog/posts/2025/my-review-of-the-minecraft-movie.xhtml</link><description>&lt;body&gt;
&lt;div class="content2" style="text-align: center;"&gt;
&lt;h1&gt;=== My Review of the "Minecraft Movie" ===&lt;/h1&gt;
&lt;p&gt;
Okay so I went to the cinema to watch the Minecraft movie. Gonna be honest I am terrible at writing reviews but I gonna try my best here.
&lt;br/&gt; &lt;br/&gt;
Gonna start off by saying at the end of the day it's a kids comedy. Like if y'all want to watch it don't expect a movie with a good story and mature humor you won't get it from there but even after this I am actually happily surprised. The CGI looked way worse in the trailers, and even I got a smirk on my face from a few of the jokes. The soundtrack was also decent, and somehow the casting was also pretty alright. The story over all was sadly really predictable and the entire plot was also meh. Like I don't know what else to say it was just alright I went and saw it with my younger brother and his friend since I needed to supervise them and they liked it. The children in the cinema also liked it and were laughing at the jokes, if y'all got a young brother and care enough to go to the cinema then yeah I would say it's worth it to see, but if you want to see it by yourself then I don't think it's worth it. So overall I do not regret the money spent the movie was actually fully fine. If they actually invested into the story a bit more I would actually say it's would be pretty amazing I don't know what else to say it was a decent movie, worth it to watch with a younger sibling but not worth it to watch by yourself.
&lt;br/&gt; &lt;br/&gt;
Also funny story I overheard some kids talking about how they liked it but they wished it was a animation and not live action. So yeah even the kids believe it shouldn't have been live action LMFAO.
&lt;br/&gt;
Solid 6/10 in my opinion could be worse.
&lt;/p&gt;
&lt;br/&gt;
&lt;h3&gt;&lt;a href="/blog/blog.xhtml"&gt;Back to the main page&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="footer"&gt;
Purplebored © 2023-2025 |
&lt;a href="https://git.ari.lt/purplebored/My-Personal-Website"&gt;Source code&lt;/a&gt; |
&lt;a href="/pages/contact.xhtml"&gt;Contact Me&lt;/a&gt; |
&lt;a href="/pages/mirrors.xhtml"&gt;Tor, Ygg &amp;amp; Mirrors&lt;/a&gt; |
&lt;a href="/pages/font.xhtml"&gt;Font&lt;/a&gt; |
&lt;a href="/pages/feeds.xhtml"&gt;RSS&lt;/a&gt; |
&lt;a href="https://status.purplebored.pl"&gt; Uptime / Status&lt;/a&gt; |
&lt;/div&gt;
&lt;/body&gt;</description><guid isPermaLink="false">https://purplebored.pl/blog/posts/2025/my-review-of-the-minecraft-movie.xhtml</guid><pubDate>Mon, 07 Apr 2025 00:00:00 +0000</pubDate></item><item><title>Red Bull snuff review</title><link>https://purplebored.pl/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml</link><description>&lt;body&gt;
&lt;div class="content2" style="text-align: center;"&gt;
&lt;h1&gt;=== Snuff review 1. Red bull snuff ===&lt;/h1&gt;
&lt;p&gt;
So the Red bull snuff is one of the most popular snuffs here in Poland. It's a also a very popular first snuff for many of people. For me it was the second snuff I ever tried and here is my small review after using it for around 3 weeks:
&lt;br/&gt;
Going to start of with saying it's very strong and has a nice minty eucalyptus taste to it. Personally I am really mixed about the taste I don't think it's bad but I do think it's overrated. I saw a lot of people praising it for being the best snuff and the best snuff for beginners which I totally don't agree with. It's in my opinion too strong to beginners and there are better option. Price wise I would say it's in the mid range. I won't be telling the price in my reviews since that changes a lot with the taxes on tobacco changing a lot of the time and they differ a lot by the country. The box it comes in is a average generic Pöschl Tabak box which in my opinion sucks. The boxes tend to open in the pockets sometimes and the clips tend to break off which is really annoying. The aroma at first is amazing but it tends to go away after a while since the box it comes in isn't really "tight" I don't know how to explain it. The snuff last for quite a long while I had my 10g pack for around 3 or maybe even 4 weeks by this point. It also really works well if you have a runny nose since it clears it real good.
&lt;br/&gt; &lt;br/&gt;
To summarize: I believe that Red bull is over all good but I also believe that it is way too overrated and very much not a good snuff for beginners. Overall in my opinion it's a big and strong 8/10. Good but not perfect. If you been taking snuff for a while already and never tried it you should try it BUT if you never tried snuff then I would choose a less stronger snuff like maybe OZONA stuff or GLETSCHER PRISE.
&lt;/p&gt;
&lt;br/&gt;
&lt;h3&gt;&lt;a href="/blog/blog.xhtml"&gt;Back to the main page&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="footer"&gt;
Purplebored © 2023-2025 |
&lt;a href="https://git.ari.lt/purplebored/My-Personal-Website"&gt;Source code&lt;/a&gt; |
&lt;a href="/pages/contact.xhtml"&gt;Contact Me&lt;/a&gt; |
&lt;a href="/pages/mirrors.xhtml"&gt;Tor, Ygg &amp;amp; Mirrors&lt;/a&gt; |
&lt;a href="/pages/font.xhtml"&gt;Font&lt;/a&gt; |
&lt;a href="/pages/feeds.xhtml"&gt;RSS&lt;/a&gt; |
&lt;a href="https://status.purplebored.pl"&gt; Uptime / Status&lt;/a&gt; |
&lt;/div&gt;
&lt;/body&gt;</description><guid isPermaLink="false">https://purplebored.pl/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml</guid><pubDate>Tue, 08 Apr 2025 00:00:00 +0000</pubDate></item><item><title>Ozona R-Type snuff review</title><link>https://purplebored.pl/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml</link><description>&lt;body&gt;
&lt;div class="content2" style="text-align: center;"&gt;
&lt;h1&gt;=== Snuff 2 review - Ozona R-type ===&lt;/h1&gt;
&lt;p&gt;
So the time finally came. I finished my 5grams of Ozona R-type. This was honestly a really hard snuff to review I have very mixed feelings about this. Well I am going to probably start off by saying it's very weak like probably the weakest one I tried so far. The taste is also pretty chemical but that doesn't mean it's bad it's still pretty good. I also gonna explain what the new "types" mean. Before they were called for example: Ozona Cherry, Raspberry, Orange, etc etc. But now they are called the first letter of the flavor. So Ozona R-type is Ozona Raspberry. It's a stupid and annoying change which I don't really like but you get used to it.
&lt;/p&gt;
&lt;img alt="A comparison between the old and new ozona r-type 5 gram packeging" height="200" src="/assets/images/blog/2025/ozonar.png" width="300"/&gt;
&lt;p&gt;
Above you can see the differences between the old and new packaging
&lt;br/&gt; &lt;br/&gt;
So the flavor is a pretty decent chemical raspberry. It also has some mint in it. Very very good for beginners. I gave it to some of my friends which don't take snuff and they quite liked it (Unlike Red Bull which was somewhat too strong for them.) I personally found it mid since I like stronger snuffs. The packaging is pretty neat so I gonna talk about it. It's a 5gram metal round thingy which you rotate until it opens a hole. It kept the scent for quite a long time, it was also very convenient to use AND easy to open if you want to add a different snuff to it. Honestly I like this type of packaging most. It's nice, small, good, and simply convenient. Honestly I don't know what else to say if you are a beginner searching for some good and weak snuff then you should give Ozona R-Type snuff a shot. But if you are already a snuff user and like stronger snuffs then I would avoid it.
&lt;br/&gt; &lt;br/&gt;
And here comes the hard part. Giving it a rating. It's really hard since the taste is good but it's weak which makes it good for beginners but pretty mediocre for people who already are taking snuff and are used to stronger ones. I think it's a strong 6/10 for people who already take snuff and like something stronger and a BIG STRONG 8/10 for new snuff takers.
&lt;/p&gt;
&lt;br/&gt;
&lt;h3&gt;&lt;a href="/blog/blog.xhtml"&gt;Back to the main page&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="footer"&gt;
Purplebored © 2023-2025 |
&lt;a href="https://git.ari.lt/purplebored/My-Personal-Website"&gt;Source code&lt;/a&gt; |
&lt;a href="/pages/contact.xhtml"&gt;Contact Me&lt;/a&gt; |
&lt;a href="/pages/mirrors.xhtml"&gt;Tor, Ygg &amp;amp; Mirrors&lt;/a&gt; |
&lt;a href="/pages/font.xhtml"&gt;Font&lt;/a&gt; |
&lt;a href="/pages/feeds.xhtml"&gt;RSS&lt;/a&gt; |
&lt;a href="https://status.purplebored.pl"&gt; Uptime / Status&lt;/a&gt; |
&lt;/div&gt;
&lt;/body&gt;</description><guid isPermaLink="false">https://purplebored.pl/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml</guid><pubDate>Wed, 14 May 2025 00:00:00 +0000</pubDate></item><item><title> BLOG TITLE </title><link>https://purplebored.pl/blog/posts/template.xhtml</link><description>&lt;body&gt;
&lt;div class="content2" style="text-align: center;"&gt;
&lt;h1&gt;=== BLOG TITLE ===&lt;/h1&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;br/&gt;
&lt;h3&gt;&lt;a href="/blog/blog.xhtml"&gt;Back to the main page&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="footer"&gt;
Purplebored © 2023-2025 |
&lt;a href="https://git.ari.lt/purplebored/My-Personal-Website"&gt;Source code&lt;/a&gt; |
&lt;a href="/pages/contact.xhtml"&gt;Contact Me&lt;/a&gt; |
&lt;a href="/pages/mirrors.xhtml"&gt;Tor, Ygg &amp;amp; Mirrors&lt;/a&gt; |
&lt;a href="/pages/font.xhtml"&gt;Font&lt;/a&gt; |
&lt;a href="/pages/feeds.xhtml"&gt;RSS&lt;/a&gt; |
&lt;a href="https://status.purplebored.pl"&gt; Uptime / Status&lt;/a&gt; |
&lt;/div&gt;
&lt;/body&gt;</description><guid isPermaLink="false">https://purplebored.pl/blog/posts/template.xhtml</guid><pubDate>Fri, 12 Sep 2025 23:19:11 +0000</pubDate></item><item><title> Future of my blog </title><link>https://purplebored.pl/blog/posts/2025/blog-future.xhtml</link><description>&lt;body&gt;
&lt;div class="content2" style="text-align: center;"&gt;
&lt;h1&gt;=== The future of my blog ===&lt;/h1&gt;
&lt;p&gt;
Alright I gonna be honest. I don't think I am going to write any blogs anymore. The truth is that I am not really good at writing them, I also have no idea about what to write!
I kinda tried to write reviews and I did not like doing it that much like even now I have no clue at all what to write I am not really good at blogs I always sucked at it my not good English skills are also not really helping this situation.
I will be not deleting my blog I will be still keeping it but for the last like few months I actually wrote nothing. Some people are born with a skill for writing long posts like this but I am sadly not one of them.
I will be of course keeping my site and still updating it but this will be probably abandoned sadly. People tell me that writing is a skill you aquaire but I don't think so I just plainly speaking suck at it :(
So yeah this is a short post but that's it and that's also one of the reasons I will be quitting writing blog posts I just can't write anything long enough. Maybe once I have some projects I will be writing about them, but for now this is it.
Big thanks to the people reading my blog (If there even are any lol) and hopefully cya when I maybe change my mind about this.
&lt;/p&gt;
&lt;br/&gt;
&lt;h3&gt;&lt;a href="/blog/blog.xhtml"&gt;Back to the main page&lt;/a&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="footer"&gt;
Purplebored © 2023-2025 |
&lt;a href="https://git.ari.lt/purplebored/My-Personal-Website"&gt;Source code&lt;/a&gt; |
&lt;a href="/pages/contact.xhtml"&gt;Contact Me&lt;/a&gt; |
&lt;a href="/pages/mirrors.xhtml"&gt;Tor, Ygg &amp;amp; Mirrors&lt;/a&gt; |
&lt;a href="/pages/font.xhtml"&gt;Font&lt;/a&gt; |
&lt;a href="/pages/feeds.xhtml"&gt;RSS&lt;/a&gt; |
&lt;a href="https://status.purplebored.pl"&gt; Uptime / Status&lt;/a&gt; |
&lt;/div&gt;
&lt;/body&gt;</description><guid isPermaLink="false">https://purplebored.pl/blog/posts/2025/blog-future.xhtml</guid><pubDate>Thu, 25 Sep 2025 21:57:52 +0000</pubDate></item></channel></rss>

134
index.html Normal file
View File

@@ -0,0 +1,134 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Open Graph shit -->
<meta name="og:url" content="https://purplebored.pl/" />
<meta name="og:title" content="Purplebored.pl" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="Just my personal website where I share cool stuff, the things I like, and the things I do :D" />
<meta name="description" content="Just my personal website where I share cool stuff, the things I like, and the things I do :D" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, murder drones, tobacco, md, nicotine" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="#0e0016" />
<meta name="author" content="Purplebored">
<link rel="stylesheet" href="assets/css/style.css">
<link rel="canonical" href="https://purplebored.pl/">
<link rel="icon" href="/favicon.png" type="image/png" />
<title>Purplebored</title>
</head>
<body>
<div class="content">
<div class="left">
<img src="assets/images/uzi.png" alt="Uzi" class="uzi">
</div>
<div class="middle">
<h1>Purplebored.pl</h1>
<p> Hi, I am a 17-year-old retard called Purplebored, also known as Niko o/. Right now you are on my own little website which I call my home on the World Wide Web! Nothing special, but I hope you like it :D</p>
<p> I like making simple websites, and I am also a privacy advocate. I also love tobacco, and I am a big nicotine addict. I speak Polish and English, but I am also learning Russian. Regarding programming, I currently only know basic HTML. From other stuff, I also know some Linux and quite a lot about Windows — especially the older versions like Windows 7.</p>
<!-- Badges -->
<div class="buttons">
<a href="https://purplebored.pl/" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/Purplebored_button.png" alt="Purplebored button" />
</a>
<a href="https://eclipse.cx" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/eclipsecx.png" alt="Eclipse Community button" />
</a>
<a href="https://aagaming.me/" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/aagaming.png" alt="AAgaming button" />
</a>
<a href="https://themcgovern.net" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/mcneb10.gif" alt="Mcneb10 button" />
</a>
<a href="https://moody.im/" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/georgemoody.png" alt="Georgemoody button" />
</a>
<a href="https://xameren.fsky.io" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/xameren.png" alt="Xameren button" />
</a>
<a href="https://fsky.io" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/fsky_night.png" alt="FSKY.io button" />
</a>
<a href="https://ari.lt/" title="ari-web badge" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/ari.png" alt="ari-web badge" />
</a>
<a href="https://telepath.im" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/telepath.png" alt="Telepath.im button" />
</a>
<a href="https://aleksey-kon-games.fsky.io/" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/aleksey.png" alt="Aleksey Kon Games button" />
</a>
<a href="https://k327.eu/" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/k327.png" alt="k327.eu button" />
</a>
<a href="https://vaporwavefox.neocities.org" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/trace.png" alt="Trace button" />
</a>
<a href="https://authenyo.xyz" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/authen.gif" alt="Authen button" />
</a>
<a href="https://greatsword.xyz" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/greatsword.png" alt="Greatsword button" />
</a>
<a href="http://[300:5506:25eb:d0d9::]" target="_blank" rel="noopener noreferrer">
<img src="assets/images/buttons/midgard.png" alt="Midgard button" />
</a>
</div>
</div>
</div>
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="clouds">
<img src="assets/images/clouds.png" alt="Clouds">
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<canvas id="night"></canvas>
<script src="assets/js/script.js" defer></script>
</body>
</html>

View File

@@ -1,90 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#"
xmlns:fb="https://www.facebook.com/2008/fbml" xml:lang="en"
lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Windows-1250" />
<!-- Stuff required for embeds and propper SEO -->
<!-- ^ who gives a shit -->
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="og:url" content="https://purplebored.pl/" />
<meta name="og:title" content="Purplebored.pl" />
<meta name="og:description" content="Just my personal website :-)" />
<meta name="description" content="Just my personal website :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<!-- End -->
<title>=Purplebored=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<!-- Sick ascii art/logo -->
<pre class="ascii-logo">
_____ _ _ _ _
| __ \ | | | | | | | |
| |__) | _ _ __ _ __ | | ___| |__ ___ _ __ ___ __| | _ __ | |
| ___/ | | | '__| '_ \| |/ _ \ '_ \ / _ \| '__/ _ \/ _` | | '_ \| |
| | | |_| | | | |_) | | __/ |_) | (_) | | | __/ (_| |_| |_) | |
|_| \__,_|_| | .__/|_|\___|_.__/ \___/|_| \___|\__,_(_) .__/|_|
| | | |
|_| |_|
</pre>
<!--As my very creative class name may suggest this is the CSS div for my "content". Nothing special.-->
<div class="content1">
<h3>=== About Me ===</h3>
<p>
Hi, I am Purplebored, o/ also known as Niko. Right now you are
on my own little website which I call my home on the World Wide
Web!
</p>
<p>
I like making websites like this. And I am also somewhat of a
privacy advocate. I also love tobaccoo and I really like nasal snuff. I even write a little bit about it but I am still very much a snuff newbie. I speak Polish and English but I am
also learning Russian. Regarding programming I currently only know
basic HTML. From
other stuff I also know some Linux! (Not much but enough to daily
drive it)
</p>
<!-- My projects-->
<h3>=== My Projects ===</h3>
<a href="/pages/projects/irc-discord-bridge.xhtml" target="_blank">
A Discord to IRC bridge (With userbot support.).
</a>
<br />
<a href="/blog/blog.xhtml" target="_blank">
Purpleblog
</a>
<br />
<a href="/pages/guides.xhtml" target="_blank">
A list of guides on how to use XMPP, IRC, PGP, etc.
</a>
<!-- "Cool stuff" Pretty much shit which did not belong to the stuff I am hosting nor my projects-->
<h3>=== Cool Stuff ===</h3>
<a href="/pages/stuff.xhtml">Stuff I like !!</a>
<br />
<a href="/pages/buttons.xhtml">Buttons!/88X31s !!</a>
<br />
<a href="/pages/snuff.xhtml">Nasal snuff !!</a>
<br />
<a href="/pages/music.xhtml">Music I like.</a>
<br />
<a href="/pages/host.xhtml">Things I host.</a>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>
<!-- Code for this website made with passion by Purplebored. https://purplebored.pl/ <3 -->

108
pages/about.html Normal file
View File

@@ -0,0 +1,108 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>About me</title>
<meta name="og:url" content="https://purplebored.pl/pages/about.html" />
<meta name="og:title" content="Purplebored - About me" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="A little bit about me :D" />
<meta name="description" content="A little bit about me.">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!--Navbar related code-->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>About me</h1>
<p>
Hi, Im <strong>Purplebored</strong>, also known as Niko. Welcome to my site and here are some information about me:
</p>
<p>
I like making simple websites like this, and I love self-hosting stuff when I can. I try to avoid most of the modern bloat out there, so that's why I have my own personal website instead of a social media account, or I use XMPP instead of using Discord.
I am also a privacy-minded person, so I try to avoid big tech shit as much as possible.
<br />
Oh, and the most important part I am Polish and I <strong>REALLY</strong> love my country. I am proud to be Polish, and if I had the chance to be born again I would choose Poland every day.
</p>
<h2>What I Do</h2>
<ul>
<li>Create small websites when I am bored (Like this one!)</li>
<li>Self-host services I like and use for example Mumble, or XMPP.</li>
<li>Create tiny shit from time to time like my Discord Userbot IRC bridge</li>
<li>Experiment with Linux, servers, and general sysadmin things</li>
<li>Fuck around with Windows (especially older versions like Windows 7)</li>
</ul>
<h2>Languages I Speak</h2>
<ul>
<li>Polish (native)</li>
<li>English (fluent in writing terrible in speaking.)</li>
<li>Russian (early stages of learning)</li>
</ul>
<h2>Random Facts About Me</h2>
<ul>
<li>I love tobacco and yes, I'm definitely a nicotine fien</li>
<li>I spend way too much time talking about nicotine and Poland</li>
<li>My favorite music band is Кино(Kino)</li>
</ul>
<br />
<a href="/">← Back to Home</a>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

View File

@@ -1,168 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/buttons.xhtml" />
<meta name="og:title" content="Buttons" />
<meta name="og:description" content="Purplebored 88x31s :-)" />
<meta name="description" content="Purplebored 88x31s :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, 88x31" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Buttons=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h3>=== Buttons ===</h3>
Ah yes 88x31 also known as buttons, a staple in personal websites
I would say. They are so cool in my opinion and I love having
them. I even have my own 88x31 which you can download
<a href="/assets/images/buttons/Purplebored_button.png" target="_blank">
Here!
</a>
<br />
(you can also just use that link instead of downloading the
button. That would be even better actually because if I update my
button it's going to automatically update on your website.)
<br />
<h4>Website 88x31s:<br /></h4>
<!-- All the website buttons -->
<!--My personal website button-->
<a href="https://purplebored.pl/" target="_blank">
<img src="/assets/images/buttons/Purplebored_button.png"
alt="My button"/>
</a>
<!--Unpato writing button-->
<a href="https://unpato.neocities.org/" target="_blank">
<img src="/assets/images/buttons/unpato.png"
alt="Unpato writing Button"/>
</a>
<!--tobskep button-->
<a href="https://tobskep.com/" target="_blank">
<img src="/assets/images/buttons/tobskep.gif"
alt="Tobskeep button."/>
</a>
<!--eclipse.cx button-->
<a href="https://eclipse.cx" target="_blank">
<img src="/assets/images/buttons/eclipsecx.png"
alt="Eclipse Comunity Button"/>
</a>
<!--aagaming button-->
<a href="https://aagaming.me/" target="_blank">
<img src="/assets/images/buttons/aagaming.png"
alt="AAgamings button." />
</a>
<!--mcneb10 button-->
<a href="https://themcgovern.net" target="_blank">
<img src="/assets/images/buttons/mcneb10.gif"
alt="Mcneb10 button." />
</a>
<!--georgemoody button-->
<a href="htttps://moody.im/" target="_blank">
<img border="1"
src="/assets/images/buttons/georgemoody.png"
alt="georgemoody button."/>
</a>
<!--Xameren button-->
<a href="https://xameren.fsky.io" target="_blank">
<img src="/assets/images/buttons/xameren.png"
alt="Xamern button." />
</a>
<!--fsky.io button-->
<a href="https://fsky.io" target="_blank">
<img src="/assets/images/buttons/fsky.png"
alt="FSKY.io button."/>
</a>
<!--ari button-->
<a href="https://ari.lt/"
title="ari-web badge"
rel="noopener noreferrer"
target="_blank">
<img src="/assets/images/buttons/ari.png"
alt="ari-web badge" />
</a>
<!--telepath button-->
<a href="https://telepath.im" target="_blank">
<img src="/assets/images/buttons/telepath.png"
alt="Telepath.im button"/>
</a>
<!--Nyx button-->
<a href="https://nyx.everypizza.im" target="_blank">
<img src="/assets/images/buttons/nyx.png"
alt="Nyx everypizza button."/>
</a>
<!-- Aleksey kon button -->
<a href="https://aleksey-kon-games.fsky.io/" target="_blank">
<img src="/assets/images/buttons/aleksey.png"
alt="aleksey kon games button" />
</a>
<!-- k327 button -->
<a href="https://k327.eu/" target="_blank">
<img src="/assets/images/buttons/k327.png"
alt="k327.eu button"/>
</a>
<!-- Trace button -->
<a href="https://vaporwavefox.neocities.org" target="_blank">
<img src="/assets/images/buttons/trace.png"
alt="Trace button"/>
</a>
<!-- Zayd button-->
<a href="https://zayd.fsky.io" target="_blank">
<img src="/assets/images/buttons/zayd.png"
alt="Zayd button" />
</a>
<!-- Authen button-->
<a href="https://authenyo.xyz" target="_blank">
<img src="/assets/images/buttons/authen.gif"
alt="Authen button" />
</a>
<!-- Midgard button (ygg)-->
<a href="http://[300:5506:25eb:d0d9::]">
<img src="/assets/images/buttons/midgard.png"
alt="Midgard button" />
</a>
<!-- End of the website buttons -->
<br />
(btw the midgard buttons links to the ygg site. So you need to have ygg setup to view it.)
<br />
<h4>Other buttons:</h4>
<!--Firefox button-->
<img src="/assets/images/buttons/firefox.gif"
alt="Tested on Firefox button" />
<!--Works on every browser button-->
<img src="/assets/images/buttons/any_browser.gif"
alt="Works on any browser button." />
<!--Made for dark mode button-->
<img src="/assets/images/buttons/dark-mode.gif"
alt="Made for darkmode button." />
<!--Runs on freeBSD button-->
<img src="/assets/images/buttons/freebsd.gif"
alt="Runs on FreeBSD button." />
<br />
<a href="https://airvpn.org/?referred_by=699005"
title="Air VPN - The air to breathe the real Internet"
target="_blank">
<img src="/assets/images/buttons/airvpn_userbar.png"
alt="Air VPN - The air to breathe the real Internet" />
</a>
<br />
<a href="/index.xhtml">Back to the main page</a>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
<!-- Code for this website made with passion by Purplebored. https://purplebored.pl <3 -->
</html>

89
pages/contact.html Executable file
View File

@@ -0,0 +1,89 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Contact</title>
<meta name="og:url" content="https://purplebored.pl/pages/contact.html" />
<meta name="og:title" content="Purplebored - Contact me" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="How to contact purplebored via email, IRC, XMPP, etc." />
<meta name="description" content="How to contact purplebored via email, IRC, XMPP, etc.">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>Contact Me</h1>
<p>You can contact me using those ways, but I would preffer if you used XMPP, or Email.</p>
<ul>
<li><strong>Email:</strong> <a href="mailto:root@purplebored.pl">root(at)purplebored.pl</a></li>
<li><strong>XMPP:</strong>pb@purplebored.pl</li>
<li><strong>Matrix:</strong>@purplebored@telepath.im</li>
<li><strong>IRC:</strong> <code>Purplebored</code> on <a href="https://telepath.im/irc" target="_blank">Telepath IRC</a></li>
<li><strong>Discord:</strong> niko2077 (Please avoid this!! Only use this if <i>really</i> need to! Even using email without PGP would be better!)</li>
</ul>
<p>If youre reporting a bug on this website, or one of my projects,
you can email me about it, OR if you have an account on my git you can also use that to report the issue.</p>
<p>
When using email if you can please encrypt it with PGP. <a href="/0CB52690CD644413EF66A21CAEF2F9A8C0334670.asc" target="_blank">You can get my public key here.</a>
</p>
<p>Messages in both English or Polish are okay :D</p>
<p>
<a href="/">← Back to home page</a>
</p>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

View File

@@ -1,52 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Contact" />
<meta name="og:description" content="Purplebored contacts :-)" />
<meta name="description" content="Purplebored contacts :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Contact Me=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== Contact Me ===</h2>
<h4>Here are some ways to get in touch with me.</h4>
Telegram: @purplebored
Matrix: purplebored:telepath.im<br />
Email: purplebored(at)posteo.com<br />
XMPP: niko(at)telepath.im<br />
<p>
Please avoid using Matrix since I don't really use it anymore and check it only a few times per week. I prefer to be contacted by XMPP or Email.
</p>
<p>
Also if you are contacting me over email or XMPP please use
PGP if you can in both cases!
<a href="/0CB52690CD644413EF66A21CAEF2F9A8C0334670.asc"
target="_blank">
You can get my public key here!
</a>
</p>
<br />
<h3><a href="/index.xhtml">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,43 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="RSS and Atom feeds" />
<meta name="og:description" content="RSS and Atom feeds." />
<meta name="description" content="RSS and Atom feeds." />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, feeds" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Feeds=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== My RSS and Atom feed for Purpleblog. ===</h2>
<p>
<a href="/feeds/feed.rss">RSS</a>
<br />
<a href="/feeds/feed.atom">Atom</a>
</p>
<br />
<img src="/assets/images/buttons/valid-atom.png" alt="Valid attom button" />
<img src="/assets/images/buttons/valid-rss.png" alt="Valid RSS button" />
<h3><a href="/">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,40 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Contact" />
<meta name="og:description" content="Purplebored contacts :-)" />
<meta name="description" content="Purplebored contacts :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Font=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== The font I am using ===</h2>
<p>
IBM VGA 9x16 font by VileR. (I found it on 4d2.org and really liked it lol)
<a href="https://int10h.org/oldschool-pc-fonts/#-">Link</a>
</p>
<br />
<h3><a href="/">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,56 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Contact" />
<meta name="og:description" content="Purplebored contacts :-)" />
<meta name="description" content="Purplebored contacts :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Purple Guides=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<!-- Sick ascii art/logo -->
<pre class="ascii-logo2" style="text-align: center; margin: 0 auto">
_____ _ _
/ ____| (_) | |
| | __ _ _ _ __| | ___ ___
| | |_ | | | | |/ _` |/ _ \/ __|
| |__| | |_| | | (_| | __/\__ \
\_____|\__,_|_|\__,_|\___||___/
</pre>
<div class="content2" style="text-align: center; margin: 0 auto">
<h3>=== Info ===</h3>
<p>
Below youll find all the guides Ive written. Each guide is
available for download as a PDF or .docx file. Download links
are located at the top of each guide.
</p>
<h3>=== Categories: ===</h3>
<h4><a>XMPP (Coming One day.)</a></h4>
<h4><a>PGP (Coming One day.)</a></h4>
<br />
<h3><a href="/index.xhtml">Back to the home page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>
<!-- Code for this website made with passion by Purplebored. https://purplebored.pl <3 -->

View File

@@ -1,49 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Contact" />
<meta name="og:description" content="Purplebored stuff he hosts :-)" />
<meta name="description" content="Purplebored stuff he hosts :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Things I host:=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== Things I host: ===</h2>
<a href="https://bin.purplebored.pl/" target="_blank">
My Private Pastebin instance.
</a>
(Slightly out ofdate)
<br />
Mumble - You can find it on mumble.purplebored.pl (Default port.). Simply connect with your mumble client and talk! You can also connect with ygg.
<br />
Soju (irc Bouncer) soju.purplebored.pl - For now it's for close "homies" only.
<br />
XMPP server. (Running Prosody 13.x.) - For now it's also for close "homies" only.
<a href="https://compliance.conversations.im/server/purplebored.pl/">My servers compliance. (95%)</a>
<br />
Gamja (Web IRC client.) - A web IRC client I host for my soju. <a href="https://soju.purplebored.pl/gamja">Link.</a>
<h3><a href="/">Back to the home page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,69 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Contact" />
<meta name="og:description" content="Purplebored contacts :-)" />
<meta name="description" content="Purplebored contacts :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Mirrors=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== Mirrors ===</h2>
<p>
Here is a list of my website mirrors.
</p>
Main URL:
<a href="https://purplebored.pl">https://purplebored.pl (Main site hosted by me)</a>
<br />
Mirror 1 URL:
<a href="https://niko.fsky.io">https://niko.fsky.io (Hosted on fsky.io)</a><br />
Ygg site:
<a href="http://[300:5506:25eb:d0d9:1000:1000:1000:1002]/">http://[300:5506:25eb:d0d9:1000:1000:1000:1002]/ (Hosted on Midgard)</a>
<br />
Ygg site 2:
<a href="http://[200:38ad:e575:f3c1:aba7:9e86:ae1e:4922]/">200:38ad:e575:f3c1:aba7:9e86:ae1e:4922 (Hosted by me.)</a>
Tor:
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/">
http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/ (Hosted on fsky.io)
</a>
<br />
Tor 2:
<a href="http://purplebored.midgardmvjfdvespsrfr3fmcyjwmnqhvsmiea7wqoyrrn5rpzp6zo5ad.onion/">
purplebored.midgardmvjfdvespsrfr3fmcyjwmnqhvsmiea7wqoyrrn5rpzp6zo5ad.onion/ (Hosted on Midgard)
</a>
<br />
I2P:
<a href="http://jn5qhsi2ucq4ibpef2blesd3ygkmluafbhavk43omi3bmgity3ba.b32.i2p/">
http://jn5qhsi2ucq4ibpef2blesd3ygkmluafbhavk43omi3bmgity3ba.b32.i2p (Hosted on Midgard)
</a>
<br />
Gopher:
<a href="gopher://worlio.com/1/~purplebored/">
gopher://worlio.com/1/~purplebored/ - My gopher site not really a mirror but I am going to still list it here.
</a>
<br />
<h3><a href="/">Back to the home page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

View File

@@ -1,66 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Music" />
<meta name="og:description" content="Purplebored favorite music :-)" />
<meta name="description" content="Purplebored favorite music :-)" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, music" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Music=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== My Favorite pieces of music. ===</h2>
<p>
Well I probably going to start off by listing my favorite tracks of all time. The order is random: (Those are jewtube links btw.)
<br />
<a href="https://www.youtube.com/watch?v=XeleGQFfbrs">My Yard - The Regular Bus / Мой Двор - Обычный Автобус, и все как обычно</a>
<br />
<a href="https://www.youtube.com/watch?v=6WyY1OAwjpY">Jacek Kaczmarski - "Szklana góra"</a>
<br />
<a href="https://www.youtube.com/watch?v=0dXTeQ8WLUs">HAPPYSAD - Od kiedy ropą</a>
<br />
<a href="https://www.youtube.com/watch?v=6kerTWSFBao">STRACHY NA LACHY - Radio Dalmacija</a>
<br />
<a href="https://www.youtube.com/watch?v=gvDKuRP8vRE">STRACHY NA LACHY - Czarny chleb i czarna kawa</a>
<br />
<a href="https://www.youtube.com/watch?v=8YKAHgwLEMg">Wilki - Urke</a>
<br />
<a href="https://www.youtube.com/watch?v=1YtRuAd7ti4">PIDŻAMA PORNO - Nikt tak pięknie nie mówił, że się boi miłości</a>
<br />
<a href="https://www.youtube.com/watch?v=lHBiAhiddJ8">Włóczęgi - Tylko we Lwowie</a>
<br />
<a href="https://www.youtube.com/watch?v=DIZ8549vE5o">Каскад - Кукушка</a>
<br />
<a href="https://www.youtube.com/watch?v=Ncfm6Fphhlo">Кино - Группа Крови</a>
<br />
<a href="https://youtu.be/SC6pqE7tKuM">Dzień Zwycięstwa - День Победы (Polish and Russian)</a>
<br />
<a href="https://www.youtube.com/watch?v=yL9FnYo7jlc">Edmund Fetting - A jednak mi żal</a>
<br />
<a href="https://www.youtube.com/watch?v=LwaDoEs0st4">JACEK KACZMARSKI - Korespondencja klasowa</a>
<br />
</p>
<br />
<h3><a href="/">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

82
pages/other.html Normal file
View File

@@ -0,0 +1,82 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Other</title>
<meta name="og:url" content="https://purplebored.pl/pages/other.html" />
<meta name="og:title" content="Purplebored - Other" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="Things which don't fit in anywhere else!" />
<meta name="description" content="Things which don't fit in anywhere else!">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>Some other pages!</h1>
<p>
Here you can find some other pages which I did not want to put in the navbar, or link somewhere.
</p>
<ul>
<li><a href="/pages/other/snuff.html">Nasal Snuff!</a></li>
</ul>
<p>
<a href="/">← Back to home page</a>
</p>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

115
pages/other/snuff.html Normal file
View File

@@ -0,0 +1,115 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Nasal snuff</title>
<meta name="og:url" content="https://purplebored.pl/pages/other/snuff.html" />
<meta name="og:title" content="Purplebored - Snuff" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="A few words about nasal snuff." />
<meta name="description" content="A few words about nasal snuff.">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>Snuff!</h1>
<h5>
MINISTER ZDROWIA OSTRZEGA: UŻYWANIE TYTONIU SZKODZI ZDROWIU.
<br />
THE MINISTER OF HEALTH WARNS: USING TOBACCO IS HARMFUL TO YOUR HEALTH.
<br />
I do not condone snuff taking or any other nicotine use. Snuff is a tobacco based product and contains nicotine which is known to be highly addictive. The content on this page is purley informational.
</h5>
<p>
Hey I first should maybe explain what nasal snuff is for the people who don't know, so
</p>
<h2>What's nasal snuff?</h2>
<p>
Snuff is a type of smokeless tobacco product made from finely ground or pulverized tobacco leaves. It is sniffed (also sometimes written as "snuffed".) into the nasal cavity, delivering nicotine and a flavored scent to the user.
<br />
Snuff is also <i>healthier</i> than normal smoking. BTW <strong>Healthier does not equal healthy!</strong>
Snuff is still a tobacco products and still carriers risks with it.
</p>
<h2>How did my journey with snuff start?</h2>
<p>
It started from pure curiosity, and from me being too poor to afford cigarettes. I saw a box of <code>Gletscher Prise</code> and decided to get it.
And holy fuck was I blown away by how good it was. The first time felt like breathing in 8K or something like that.
</p>
<h2>Why do I take snuff?</h2>
<p>
Mostly for the flavours it offers. Also, I just love the snuff culture I personally find it a lot more respectful and interesting then cigarette smoking.
Also, sometimes when I don't smoke for some reason, I like to use it to get that nicotine hit.
</p>
<h2>What's so interesting about snuff?</h2>
<p>
Snuff is weirdly fascinating because there are so many types fine, coarse, dry, menthol nukes, floral perfumes,
and blends that smell like someone emptied a spice cabinet. Half the fun is just figuring out what strange scent
youve opened this time and wondering who thought it was a good idea.
</p>
<p>
<a href="/">← Back to home page</a>
</p>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

114
pages/projects.html Normal file
View File

@@ -0,0 +1,114 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Projects</title>
<meta name="description" content="Purplebored's projects :D">
<meta name="keywords" content="purplebored, irc, discord, bridge, userbot, open source, purplebored.pl">
<meta property="og:url" content="https://purplebored.pl/projects/projects.html">
<meta property="og:title" content="Purplebored - Projects" />
<meta property="og:description" content="Purplebored's projects :D">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="description" content="Purplebored's projects :D">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>My Projects:</h1>
<p>
Hi and welcome to my projects page! For now I only have one project, but I am planning on making more of them. You can read about my only project bellow :D
</p>
<h2>= IRC to Discord Bridge =</h2>
<p>
A simple and modern IRC ↔ Discord userbot bridge written in Node.js, used to bridge Discord channels and group chats with IRC rooms.
</p>
<p> (Also worth explaining: a userbot &nbsp;sometimes called a selfbot &nbsp;is a bot that runs on a user account.) </p>
<p>
<a href="https://foundry.fsky.io/purplebored/Discord-userbot-to-irc" target="_blank">
Source code and setup instructions →
</a>
</p>
<h3>Features</h3>
<ul>
<li>Multi-Bridge Support — bridge multiple channels and rooms with one config.</li>
<li>Reactions Bridging — sends a message when a message is reacted to.</li>
<li>Attachments Bridging — automatically forwards images and files to IRC.</li>
<li>TLS/Non-TLS IRC Support — works with both secure and standard IRC ports.</li>
<li>Group Chat Bridges — supports Discord group chats via selfbot.</li>
<li>YAML Configuration — simple and human readable config file.</li>
</ul>
<h3>Why a Userbot Bridge?</h3>
<p> I wanted to stop using Discord, but still chat in a group chat — no other bridge supported that, so I decided to build my own.
It started as a small private project, but after making it stable enough and usefull enough for more people, I open sourced it for anyone who needs something similar. (Which I guess it's not a lot of people :P)</p>
<h3>Project Info</h3>
<ul>
<li>License: <a href="https://foundry.fsky.io/purplebored/Discord-userbot-to-irc/raw/branch/main/LICENSE" target="_blank">Apache 2.0</a></li>
<li>Language: Node.js</li>
<li>Developer: Just me (updates might be slow!)</li>
<li>Note: Using a userbot on Discord is against the ToS — though no bans have been reported so far, but still use at your own risk.</li>
</ul>
<p>
<a href="/">← Back to home page</a>
</p>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

View File

@@ -1,65 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/projects/irc-discord-bridge.xhtml" />
<meta name="og:title" content="IRC to Discord Bridge" />
<meta name="og:description" content="A project page for the open source IRC to Discord bridge with userbot support." />
<meta name="description" content="A project page for the open source IRC to Discord bridge with userbot support." />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, discord, irc, bridge, userbot, irc bridge, discord bridge" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=IRC to Discord Bridge:=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== IRC to Discord bridge (With userbot support.) ===</h2>
A simple, and modern IRC to Discord userbot bridge written in Node JS used to bridge Disocrd channels and Discord groupchats.
<br />
(Also worth to explain: A userbot (Or selfbot as I sometimes refer to it.) is a bot running on a user account.)
<br />
<a href="https://foundry.fsky.io/purplebored/Discord-userbot-to-irc" target="_blank"> Source code, and instructions how to run it.</a>
<h3>Features:</h3>
<ul>
<li>Multi-Bridge Support - You can bridge multiple channels with multiple IRC rooms all with one config.</li>
<li>Reactions Bridging - Sends a message when a message was reacted to.</li>
<li>Attachments Bridging - Automatically forwards links to images and attachments from Discord messages to IRC.</li>
<li>TLS/Non-TLS IRC Support - Works with both secure (TLS) and standard IRC ports.</li>
<li>Group chat bridges - Since this all works with a selfbot it means that you can bridge a Discord group chat to a IRC room.</li>
<li>YAML Configuration - Simple and a human readable config.</li>
</ul>
<h3>Using a userbot for a bridge why?</h3>
<p>
The why is actually pretty simple I wanted to stop using discord but I still wanted to chat in a discord group chat, but no other bridge supported bridging groupchats so I decided to "vibecode" my own bridge. I also added support for channels since I wanted to host some channels too and that's how this bridge came to life.
<br />
At first it was not even meant to be open source, but after I made it decent enough I decided to open source it since I am guessing other people might need a bridge like this too!
</p>
<h3>Some project info:</h3>
This project is licensed under the <a href="https://foundry.fsky.io/purplebored/Discord-userbot-to-irc/raw/branch/main/LICENSE" target="_blank">Apache 2.0 License.</a>
<br />
This project is written in Node.js
<br />
This project is only pretty much done by me and I am terrible at JS so updates will be quite slow.
<br />
This bridge can use a userbot on the Discord side. Userbots are againsts Discord ToS. No one has been banned yet for using it but it is a posibilty.
<h3><a href="/">Back to the home page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

144
pages/services.html Normal file
View File

@@ -0,0 +1,144 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Services</title>
<meta name="description" content="Stuff Purplebored hosts">
<meta name="keywords" content="purplebored, irc, open source, purplebored.pl, mumble, murmur, soju, dis4irc, irc, prosody, xmpp, gamja">
<meta property="og:url" content="https://purplebored.pl/projects/projects.html">
<meta property="og:title" content="Services | Purplebored.pl">
<meta property="og:description" content="Stuff Purplebored hosts">
<meta property="og:image" content="/assets/images/pfp.png">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="project-page services-page">
<h1>Services I Host</h1>
<p>Here are some public and semi-public stuff I run from my servers. I host my stuff from two servers. One named NL1 in the Netherlands and one named PL1 in Poland.
Some require trust to get an account, some are open, and others are on a case-by-case basis.</p>
<div class="service-card">
<h2>Mumble Server</h2>
<p>A privacy-friendly VOIP. No accounts needed, low latency, works even on potato (Polish) connections.</p>
<ul>
<li><strong>Server:</strong> mumble.purplebored.pl</li>
<li><strong>Port:</strong> 64738 (TLS)</li>
<li><strong>Access:</strong> Public</li>
<li><strong>Location:</strong>NL1</li>
</ul>
</div>
<div class="service-card">
<h2>Soju IRC Bouncer</h2>
<p>And pretty decent modern IRC bouncer. Only people I know quite a lot and who trust me, and I am them get an account.</p>
<ul>
<li><strong>Server:</strong> soju.purplebored.pl</li>
<li><strong>Port:</strong> 6697 (TLS)</li>
<li><strong>Access:</strong> Invite-only</li>
<li><strong>Location:</strong>NL1</li>
</ul>
</div>
<div class="service-card">
<h2>Gamja Web IRC Client</h2>
<p>Web IRC client for the Soju IRC bouncer I host.</p>
<ul>
<li><a href="https://soju.purplebored.pl/gamja/" target="_blank">Open Gamja Web IRC</a></li>
<li><strong>Location:</strong>NL1</li>
</ul>
</div>
<div class="service-card">
<h2>Jabber Server</h2>
<p>A federated chat protocol better than Discord IMO. Accounts available only to trusted friends. Until I get a second domain.</p>
<ul>
<li><strong>Server:</strong> purplebored.pl</li>
<li><strong>Access:</strong> Invite-only</li>
<li><strong>Software:</strong> Prosody 13.x</li>
<li><strong>Location:</strong>NL1</li>
</ul>
</div>
<div class="service-card">
<h2>Dis4IRC Bridge</h2>
<p>A bridge written in java (Not my software) that links Discord chats to IRC channels — request access if needed. (Supports webhooks)</p>
<ul>
<li><strong>Access:</strong> Case-by-case</li>
<li><strong>Location:</strong>NL1</li>
</ul>
</div>
<div class="service-card">
<h2>PrivateBin</h2>
<p>PrivateBin is a minimalist, online pastebin where the server has zero knowledge of stored data.</p>
<ul>
<li><strong>Access:</strong> Open to everyone</li>
<li><a href="https://bin.purplebored.pl" target="_blank">Open PrivateBin</a></li>
<li><strong>Location:</strong>PL1</li>
</ul>
</div>
<div class="service-card">
<h2>Vaultwarden</h2>
<p>An unofficial Bitwarden compatible server written in Rust</p>
<ul>
<li><strong>Access:</strong> Case-by-case</li>
<li><a href="https://pass.purplebored.pl" target="_blank">Open Vaultwarden</a></li>
<li><strong>Location:</strong>NL1</li>
</ul>
</div>
<p style="margin-top: 2rem;">
<a href="/">← Back to Home</a>
</p>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

View File

@@ -1,80 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="og:url" content="https://purplebored.pl/pages/buttons.xhtml" />
<meta name="og:title" content="Nasal Snuff" />
<meta name="og:description" content="Some of my yapps about nasal snuff" />
<meta name="description" content="Some of my yapps about nasal snuff" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, 88x31, tabaka, snuff, nasal snuff, tobbaco, tytoń" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=NASAL SNUFF=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center;">
<h2>=== SNUFF ===</h2>
<div class="snuff-warning">
<h4>
<strong>MINISTER ZDROWIA OSTRZEGA: UŻYWANIE TYTONIU SZKODZI ZDROWIU</strong><br />
<strong>THE MINISTER OF HEALTH WARNS: USING TOBACCO IS HARMFUL TO YOUR HEALTH</strong>
</h4>
<p>
So I am going to start off explaining what nasal snuff even is. Well, snuff is a smokeless tobacco product made from finely ground tobacco leaves. It is snuffed (snorted) into the nasal cavity, delivering nicotine and a nice flavored scent.
Snuff overall is also considered safer than smoking, BUT that does not mean snuff is healthy. Using snuff is still very harmful to your health and it's also 18+ in most countries.
</p>
<h3>List of Snuffs I tried (in order from the ones I tried first to last):</h3>
<ul>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Gletscher Prise</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Red Bull</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Ozona R-type</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Alpina</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> MED N.99</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Köningsprise</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> 41 White Elephant</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> GAWITH Original Snuff</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Ozona President snuff</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> JBR Snuff black</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Packard's Club snuff</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Mc Chrystal Aztec</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Mc Chrystal Sicilian Burst</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Bernard F Original</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Bernad's steife prise</li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> Ozona O-type</li>
</ul>
<p> How did I start taking snuff: Well it all started with me being too poor to afford tobacco to roll cigarettes. I saw a nice blue box on the shelf and asked about it. The clerk in the tobacco store explainded that it was snuff and how to take it etc etc. It was also cheap so I decided to give it a shot. Taking snuff for the first time was God damn amazing and after that I started getting more and more brands and watching content related to snuff and learning more about it. Now after taking snuff for a few months I really love it and I am even tempted to fully quit smoking and replace it with snuff. Nasal Snuff is far from a healthy alternative BUT it is better then regular smoking. It's also a lot cheaper. <br />
<br />
I also started to review some of the snuffs I tried so here is a list of the ones already reviewed and the ones I will review in the near future. <br />
Snuff reviews: </p>
<p><ul>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> <a href="/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml">Red Bull</a></li>
<li><label><input type="checkbox" checked="checked" disabled="disabled" /></label> <a href="/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml">Ozona R-type</a></li>
</ul>
</p>
</div>
<br /><br />
<a href="/index.xhtml">Back to the home page</a>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
<!-- Code for this website made with passion by Purplebored. https://purplebored.pl <3 -->
</html>

View File

@@ -1,45 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="og:url" content="https://purplebored.pl/pages/contact.xhtml" />
<meta name="og:title" content="Cool stuff" />
<meta name="og:description" content="Stuff Purple likes to do !!" />
<meta name="description" content="Stuff Purple likes to do !!" />
<meta name="keywords" content="purplebored, poland, polish, personal website, website, buttons, niko, self-hosted, open source, foss, contact, music" />
<meta name="color-scheme" content="dark" />
<meta name="theme-color" content="black" />
<title>=Stuff I like=</title>
<link rel="stylesheet" href="/assets/css/style.css" />
<link rel="icon" href="/favicon.png" type="image/png" />
</head>
<body>
<div class="content1" style="text-align: center; margin: 0 auto">
<h2>=== Stuff and things I like to do. ===</h2>
<p>
Well I probably going to start off by saying I really like tobacco products and especially snuff. I like snuff enough that I started writing snuff reviews lol. I also using old and obscure stuff just for fun when really bored.
<br />
I also quite like learning new languages currently learning Russian since I really like Russian music it's very fire.
<br />
Well I also like fishing I am still not very good at it and started recently but I am slowly learning !!
<br />
I also like mechanical watches and watches in general I currently daily drive a Russian Vostok amphibia and I am very happy with it. But I also own and sometimes wear a Casio F-91W.
</p>
<br />
<h3><a href="/">Back to the main page</a></h3>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.ari.lt/purplebored/My-Personal-Website">Source code</a> |
<a href="/pages/contact.xhtml">Contact Me</a> |
<a href="/pages/mirrors.xhtml">Tor, Ygg &amp; Mirrors</a> |
<a href="/pages/font.xhtml">Font</a> |
<a href="/pages/feeds.xhtml">RSS</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
</body>
</html>

119
pages/terms.html Normal file
View File

@@ -0,0 +1,119 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Terms of Service</title>
<meta name="og:url" content="https://purplebored.pl/pages/terms.html" />
<meta name="og:title" content="Purplebored - ToS" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="Terms of service for everything purplebored.pl related." />
<meta name="description" content="Terms of service for everything purplebored.pl related.">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="/pages/other.html">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>Terms of Service for purplebored.pl services</h1>
<p>
purplebored.pl is a personal project providing services to close friends and certain individuals.
By using purplebored.pl and it's services you agree to abide to those Terms of Service.
<br />
<strong>Last update: 29.11.2025</strong>
</p>
<br />
<h2>User Eligibility:</h2>
<p>
You are older than 16 years old (or the age of digital consent in your country of residence, if higher).
If you are under that age please do not use anything purplebored.pl provides, and do not ask for any accounts.
</p>
<h2>Community Standards</h2>
<ol>
<li>Abide by Polish and Dutch law.</li>
<li>Do not harras, stalk, or abuse anyone.</li>
<li>Distribute hate speech, extremist content, or call to violence</li>
<li>Send spam</li>
<li>Attempt to disrupt, attack, or intentionally overload the services</li>
<li>Distribute malware or attempt unauthorized access to systems</li>
<li>Possess, store, share, request, promote, or justify CSAM or child sexual exploitation in any form.</li>
</ol>
<strong>Violation of these terms may lead to account deletion. </strong>
<h2>User Responsibility</h2>
<p>
You and only you are responsible for keeping your login details confidential and must choose passwords that meet the highest security standards as allowed by the services and things I provide. I will never ask you to give me your password. Never give your passwords to anyone claiming to be me or someone from purplebored.pl.
</p>
<p>
By registering an account, you agree to take full responsibility for all the activities under your username and password.
You must immediately notify me using the contact details provided in this document if you believe that your account or login details may have been compromised, hacked, or stolen.
</p>
<h2>Service availability and disclaimer</h2>
<p>
This is a personal, hobby-run service. I do not guarantee good uptime, data retention, message delivery, or security. Use everything I provide at your own risk.
</p>
<h2>Account Termination</h2>
<p>
You can request deletion of your account at any time by contacting me with the relevant details.
</p>
<p>
<a href="/">← Back to home page</a>
</p>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

105
pages/ygg.html Normal file
View File

@@ -0,0 +1,105 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="color-scheme" content="dark">
<meta name="theme-color" content="#0e0016">
<title>Yggdrasil</title>
<meta name="og:url" content="https://purplebored.pl/pages/ygg.html" />
<meta name="og:title" content="Purplebored - Yggdrasil" />
<meta property="og:type" content="website">
<meta property="og:image" content="/assets/images/pfp.png">
<meta name="og:description" content="Info about the Yggdrasil network protocol, and stuff I host there." />
<meta name="description" content="Info about the Yggdrasil network protocol, and stuff I host there.">
<link rel="icon" href="/favicon.png" type="image/png">
<link rel="stylesheet" href="/assets/css/style.css">
</head>
<body>
<!-- Navbar related code. -->
<button class="mobile-nav-toggle" aria-label="Toggle menu">
</button>
<nav class="navbar">
<div class="navbar-top-icons">
<div class="icon-item">
<a href="http://niko.fsky42e4xj4o4q7xiyxzodqvd75iwgztywxtbugdmixamrmui5l4vhid.onion/" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/tor.png" alt="Tor Mirror">
<span class="icon-label tor-label">Tor</span>
</a>
</div>
<div class="icon-item">
<a href="/pages/ygg.html" target="_blank" rel="noopener noreferrer">
<img src="/assets/images/icons/ygg.png" alt="Information about Yggdrasil">
<span class="icon-label ygg-label">Ygg</span>
</a>
</div>
</div>
<ul>
<li><a href="/index.html">Home</a></li>
<li><a href="/pages/about.html">About me</a></li>
<li><a href="/pages/projects.html">Projects</a></li>
<li><a href="/pages/contact.html">Contact</a></li>
<li><a href="/pages/services.html">Services</a></li>
<li><a href="/pages/terms.html">Terms of Service</a></li>
<li><a href="#">Other</a></li>
</ul>
</nav>
<div class="content project-page">
<div class="middle">
<h1>Yggdrasil</h1>
<h2>What's Yggdrasil?</h2>
<p>
Citing from their website: "Yggdrasil is a new experimental compact routing scheme. It is designed to be a
future-proof and decentralised alternative to the structured routing protocols commonly used today on the
Internet, as well as an enabling technology for future large-scale mesh networks"
</p>
<h2>Why use Yggdrasil?</h2>
<p>
Yggdrasil is a completely separate network from the “normal” internet. It works as a global, encrypted
mesh network where every device becomes part of a huge, interconnected system. It doesnt rely on ISPs,
central servers, or big companies to function.
</p>
<h2>How to join Yggdrasil?</h2>
<p>
Check out the official installation page <a href="https://yggdrasil-network.github.io/installation.html">here.</a>
</p>
<h2>What I run on Yggdrasil</h2>
<p>
I host an Yggdrasil mirror of my website.
If youre on Ygg, you can reach ot using the link below:
</p>
<ul>
<li>My website on Ygg: <a href="http://[200:38ad:e575:f3c1:aba7:9e86:ae1e:4922]/"><code>http://[200:38ad:e575:f3c1:aba7:9e86:ae1e:4922]/</code></a></li>
<li>More stuff coming soon ;)</li>
</ul>
<p style="margin-top: 2rem;">
<a href="/">← Back to Home</a>
</p>
</div>
</div>
<div class="footer">
Purplebored &copy; 2023-2025 |
<a href="https://git.purplebored.pl/purplebored/purplebored.pl">Source code</a> |
<a href="/pages/contact.html">Contact Me</a> |
<a href="https://status.purplebored.pl"> Uptime / Status</a> |
</div>
<div class="clouds">
<img src="/assets/images/clouds.png" alt="Clouds">
</div>
<canvas id="night"></canvas>
<script src="/assets/js/script.js" defer></script>
</body>
</html>

View File

@@ -1,36 +1,11 @@
User-agent: * User-agent: *
Allow: /
Sitemap: https://purplebored.pl/sitemap.xml Sitemap: https://purplebored.pl/sitemap.xml
# Blocks AI Disallow: /assets/js/
Disallow: /assets/fonts/
Disallow: /assets/css/
Disallow: /assets/images/temp/
Disallow: /cgi-bin/
User-agent: YouBot Sitemap: https://purplebored.pl/sitemap.xml
User-agent: Omgili
User-agent: PerplexityBot
User-agent: CCBot
User-agent: facebookexternalhit
User-agent: Amazonbot
User-agent: ChatGPT-User
User-agent: ImagesiftBot
User-agent: AI2Bot
User-agent: GPTBot
User-agent: PetalBot
User-agent: Diffbot
User-agent: Bytespider
User-agent: ClaudeBot
User-agent: OAI-SearchBot
User-agent: Applebot-Extended
User-agent: cohere-ai
User-agent: Claude-Web
User-agent: ICC-Crawler
User-agent: VelenPublicWebCrawler
User-agent: Omgilibot
User-agent: anthropic-ai
User-agent: FriendlyCrawler
User-agent: Scrapy
User-agent: img2dataset
User-agent: Google-Extended
User-agent: Timpibot
User-agent: meta-externalagent
User-agent: FacebookBot
User-agent: Ai2Bot-Dolma
Disallow: /

View File

@@ -1,15 +0,0 @@
#!/bin/sh
set -eu
main() {
echo '<?xml version="1.0" encoding="UTF-8"?>'
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
echo '<url><loc>https://purplebored.pl/</loc><priority>1.0</priority></url>'
find pages/ blog/ -name '*.xhtml' -not -name 'template.xhtml' | while read -r file; do
echo "<url><loc>https://purplebored.pl/${file}</loc><priority>1.0</priority></url>"
done
echo '</urlset>'
}
main >sitemap.xml

View File

@@ -1,20 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url><loc>https://purplebored.pl/</loc><priority>1.0</priority></url> <url><loc>https://purplebored.pl/</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/pages/mirrors.xhtml</loc><priority>1.0</priority></url> <url><loc>https://purplebored.pl/pages/contact.html/</loc><priority>0.9</priority></url>
<url><loc>https://purplebored.pl/pages/host.xhtml</loc><priority>1.0</priority></url> <url><loc>https://purplebored.pl/pages/services.html/</loc><priority>0.8</priority></url>
<url><loc>https://purplebored.pl/pages/guides.xhtml</loc><priority>1.0</priority></url> <url><loc>https://purplebored.pl/pages/ygg.html/</loc><priority>0.8</priority></url>
<url><loc>https://purplebored.pl/pages/stuff.xhtml</loc><priority>1.0</priority></url> <url><loc>https://purplebored.pl/pages/terms.html</loc><priority>0.7</priority></url>
<url><loc>https://purplebored.pl/pages/contact.xhtml</loc><priority>1.0</priority></url> <url><loc>https://purplebored.pl/pages/projects.html/</loc><priority>0.7</priority></url>
<url><loc>https://purplebored.pl/pages/projects/irc-discord-bridge.xhtml</loc><priority>1.0</priority></url> </urlset>
<url><loc>https://purplebored.pl/pages/snuff.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/pages/music.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/pages/feeds.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/pages/font.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/pages/buttons.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/blog/posts/2025/snuff-review-2-ozona-r-type-snuff.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/blog/posts/2025/snuff-review-1-red-bull-snuff.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/blog/posts/2025/blog-future.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/blog/posts/2025/my-review-of-the-minecraft-movie.xhtml</loc><priority>1.0</priority></url>
<url><loc>https://purplebored.pl/blog/blog.xhtml</loc><priority>1.0</priority></url>
</urlset>