bafe8810-c42c-44a6-8466-b875847089c4 2025-03-13 19:27:24.141922894 +0000 UTC m=+1531.073500770 2025-10-13 10:40:50.898921943 +0000 UTC m=+4238473.990229036 .NET_s_Blazor_is_a_nightmare .NET’s Blazor is a nightmare
Let me explain.
- I like C#
- I like Razor templates
For those uninitiated, Razor is slightly questionable mix of HTML and C#. Here is an example:
@using SomeApp.Models
@model FooPageModel
@inject ISomething Something
<div class="row">
<div class="col-lg-4">
<h3><i class="fa fa-user"></i> @Model.Foo</h3>
<div>
<div>
It had some warts, but there was always a way to get Razor to work and be very productive with it. Even when you mixed it with something relatively unsuitable, e.g. AngularJS, it worked just fine.
Actually, they called it many different things over the years. Thanks for screwing up my search results, and it makes their deeply mediocre docs even worse. Oh yeah, and it also resulted in the file extension for Blazor being, drumroll:
.razor
If that last one seems like a bit of a stretch, then… yes. Nevertheless, it is the core concept behind Blazor. The .NET Core, if you will.
To make this happen, somebody decided to use compile time code generation to turn Blazor into a C# class with the “partial” keyword, then compile it into the backend.
Result:
Fatal flaw #1: Changing text on a website requires recompiling your entire app (and it takes way too long)
To mitigate this, there is a feature called hot reload in Visual Studio (and JetBrains Rider) that allows you to do a partial recompilation without actually restarting your app.
Or rather, it would in theory, if they had ever bothered to make that feature work properly with Blazor. Instead, 90% of the time I try to reload my changes, this operation fails. There is a gradient of bullshit on the reasons given. Here is some examples in order of ascending annoyance:
- Blazor code used an unsupported language feature under the hood (E.g. most of them, and also they spread like a pollution due to compilation dependencies)
- Runtime falsely assumes the reload works, but the app is broken afterwards.
- Complety bogus error that links you to a random file in the project. (?!)
- Visual Studio / Rider / .NET Runtime tries to hot reload but crashed in some way and needs to be killed (Cool)
Fatal flaw #2: The world’s worst data binding / input events
So upon finally completing that, you will find the most disgusting bugs in your implemention, because every keystroke goes into an event queue that takes seconds to update your dom, resulting in the most user-hostile troll textbox that you ever saw, which will lag and partially remove inputs, queue up inputs, and much more fun stuff.
These bugs might not show up in local testing btw. And they should never have happened if the designers of blazor had done their job and
- actually built and shipped an app that works
- moved their utilities into the blazor stdlib
- documented them properly
https://stackoverflow.com/questions/57533970/blazor-textfield-oninput-user-typing-delay
https://blog.jeremylikness.com/blog/an-easier-blazor-debounce/
The only documentation for some of this stuff that I found is inspecting the decompile source code of blazor. Which works fine but its nowhere close to state-of-the-art web frameworks which are designed for people who are actually productive and build websites quickly.
Related:
Anti-feature #2: Blazor Lexers are buggy and chokingly heavy, to a point where they don’t run properly on any machine
As a bonus, they also left some cool obvious bugs in there, such as the parser exploding when you have razor comments inside an HTML element (when you comment out an attribute).
Anti feature #5: Shitty JS Interop
The little cherry on top:
Anti-feature #99: Somebody decided that “Template not imported” is a warning
Ah yeah
I don’t even claim you can’t make cool stuff using blazor, but it’s just a huge pain and not even remotely worth learning. Never again.
2025-04-01 23:34:00 +0000 UTC 0 1
Let me explain.
- I like C#
- I like Razor templates
For those uninitiated, Razor is slightly questionable mix of HTML and C#. Here is an example:
@using SomeApp.Models
@model FooPageModel
@inject ISomething Something
<div class="row">
<div class="col-lg-4">
<h3><i class="fa fa-user"></i> @Model.Foo</h3>
<div>
<div>
It had some warts, but there was always a way to get Razor to work and be very productive with it. Even when you mixed it with something relatively unsuitable, e.g. AngularJS, it worked just fine.
Actually, they called it many different things over the years. Thanks for screwing up my search results, and it makes their deeply mediocre docs even worse. Oh yeah, and it also resulted in the file extension for Blazor being, drumroll:
.razor
If that last one seems like a bit of a stretch, then… yes. Nevertheless, it is the core concept behind Blazor. The .NET Core, if you will.
To make this happen, somebody decided to use compile time code generation to turn Blazor into a C# class with the “partial” keyword, then compile it into the backend.
Result:
Fatal flaw #1: Changing text on a website requires recompiling your entire app (and it takes way too long)
To mitigate this, there is a feature called hot reload in Visual Studio (and JetBrains Rider) that allows you to do a partial recompilation without actually restarting your app.
Or rather, it would in theory, if they had ever bothered to make that feature work properly with Blazor. Instead, 90% of the time I try to reload my changes, this operation fails. There is a gradient of bullshit on the reasons given. Here is some examples in order of ascending annoyance:
- Blazor code used an unsupported language feature under the hood (E.g. most of them, and also they spread like a pollution due to compilation dependencies)
- Runtime falsely assumes the reload works, but the app is broken afterwards.
- Complety bogus error that links you to a random file in the project. (?!)
- Visual Studio / Rider / .NET Runtime tries to hot reload but crashed in some way and needs to be killed (Cool)
Fatal flaw #2: The world’s worst data binding / input events
So upon finally completing that, you will find the most disgusting bugs in your implemention, because every keystroke goes into an event queue that takes seconds to update your dom, resulting in the most user-hostile troll textbox that you ever saw, which will lag and partially remove inputs, queue up inputs, and much more fun stuff.
These bugs might not show up in local testing btw. And they should never have happened if the designers of blazor had done their job and
- actually built and shipped an app that works
- moved their utilities into the blazor stdlib
- documented them properly
https://stackoverflow.com/questions/57533970/blazor-textfield-oninput-user-typing-delay
https://blog.jeremylikness.com/blog/an-easier-blazor-debounce/
The only documentation for some of this stuff that I found is inspecting the decompile source code of blazor. Which works fine but its nowhere close to state-of-the-art web frameworks which are designed for people who are actually productive and build websites quickly.
Related:
Anti-feature #2: Blazor Lexers are buggy and chokingly heavy, to a point where they don’t run properly on any machine
As a bonus, they also left some cool obvious bugs in there, such as the parser exploding when you have razor comments inside an HTML element (when you comment out an attribute).
Anti feature #5: Shitty JS Interop
The little cherry on top:
Anti-feature #99: Somebody decided that “Template not imported” is a warning
Ah yeah
I don’t even claim you can’t make cool stuff using blazor, but it’s just a huge pain and not even remotely worth learning. Never again.
1c628a2f-036a-4513-97f5-a16d7760bde6 2025-03-14 13:43:02.929113725 +0000 UTC m=+1880.966895158 2025-08-21 07:49:47.645130997 +0000 UTC m=+137138.785508902 meta_meta_starterkit_collection meta meta starterkit collection
better-t-stack sucks
0 0 projects
better-t-stack sucks 18dc56e9-7af1-4415-a8d8-d179ac800395 2025-04-02 09:11:39.840480525 +0000 UTC m=+48.238678300 2025-05-07 19:09:58.612090891 +0000 UTC m=+4173.772256599 Email_Friends Email Friends

2024-12-27 12:14:00 +0000 UTC 1 0 projects /uploads/18dc56e9-7af1-4415-a8d8-d179ac800395/email-friends.png
Quarantine incoming emails from unknown contacts
Quarantine incoming emails from unknown contacts
9d3e7920-1916-45c8-95de-adca5456b171 2025-05-06 14:56:07.296908231 +0000 UTC m=+7417.525726182 2025-05-06 14:56:14.774305566 +0000 UTC m=+7425.003123488 Trying_to_define__Good_developers_ Trying to define “Good developers”
0 0
5140a426-3229-42f3-a3b2-221b6f6f4732 2025-05-07 12:28:25.700085059 +0000 UTC m=+84955.928903010 2025-05-15 08:28:30.243465124 +0000 UTC m=+403519.718106230 Why_move_to_RSS Why move to RSS
I will make it easy for you by making a better dev.to subscription service with no ads etc, as a rest API
0 0
I will make it easy for you by making a better dev.to subscription service with no ads etc, as a rest API 72beaac8-2914-49de-80d0-f738e434fe5a 2025-05-08 18:29:33.964756794 +0000 UTC m=+6091.402019893 2025-05-08 18:53:38.532451365 +0000 UTC m=+7535.969714434 Email_Friends_Privacy_Policy Email Friends Privacy Policy
Overview
Email Friends (“we”, “us”, or “our”) respects your privacy and is committed to protecting your personal data. This privacy policy explains how we handle your data when you use our email management service.
Data We Process
- A key to access your account on gmail.com.
(You cancel access for this app in google settings) - Email metadata: sender, recipient, mail server, date.
- The email addresses of your gmail contacts: To check for which emails to filter)
Note: We do not read, store, or process the content of your emails.
How We Use Your Data
- To provide the services as described in our product offerings
- To edit your list of your contacts on gmail.com
- To generate daily digests of new contacts
Data Storage and Security
- All data is stored securely in the European Union
- We use industry-standard encryption for data in transit and at rest
- We only keep your data for as long as necessary to provide our service
- We never give your data to anyone
Your Rights
You have the right to:
- Access your personal data
- Correct your personal data
- Delete your personal data
- Export your personal data
- Withdraw consent at any time
Cookies
We only use essential cookies necessary for the functioning of our service. We do not use any tracking or advertising cookies.
Contact Us
If you have any questions or requests, please contact us at:
- Email: privacy@domi.ninja
- GitHub: https://github.com/domi-ninja/email-friends
2025-05-07 20:51:00 +0000 UTC 0 1 email friends
Overview
Email Friends (“we”, “us”, or “our”) respects your privacy and is committed to protecting your personal data. This privacy policy explains how we handle your data when you use our email management service.
Data We Process
- A key to access your account on gmail.com.
(You cancel access for this app in google settings) - Email metadata: sender, recipient, mail server, date.
- The email addresses of your gmail contacts: To check for which emails to filter)
Note: We do not read, store, or process the content of your emails.
How We Use Your Data
- To provide the services as described in our product offerings
- To edit your list of your contacts on gmail.com
- To generate daily digests of new contacts
Data Storage and Security
- All data is stored securely in the European Union
- We use industry-standard encryption for data in transit and at rest
- We only keep your data for as long as necessary to provide our service
- We never give your data to anyone
Your Rights
You have the right to:
- Access your personal data
- Correct your personal data
- Delete your personal data
- Export your personal data
- Withdraw consent at any time
Cookies
We only use essential cookies necessary for the functioning of our service. We do not use any tracking or advertising cookies.
Contact Us
If you have any questions or requests, please contact us at:
- Email: privacy@domi.ninja
- GitHub: https://github.com/domi-ninja/email-friends 101bad1a-90b4-4b1b-bef3-9a7c037e8e7b 2025-05-08 18:55:12.956148868 +0000 UTC m=+7630.393411987 2025-05-08 19:02:45.465074929 +0000 UTC m=+8082.902338039 Email_Friends_Terms_of_Service Email Friends Terms of Service
1. Agreement to Terms
By using Email Friends (“the Service”), you agree to these Terms of Service. If you disagree with any part of these terms, please do not use the Service.
2. Service Description
Email Friends is an email management service that:
- Connects to your Gmail account
- Filters emails from unknown contacts
- Provides daily digests of new contacts
- Manages your email contact list
3. User Responsibilities
You agree to:
- Maintain the security of your account credentials
- Use the Service in compliance with applicable laws
4. Service Limitations
- The Service is provided “as is” without warranties
- We may experience occasional downtime for maintenance
5. Modifications to Service
We reserve the right to:
- Modify or discontinue the Service
- Update these terms with reasonable notice
- Change features or functionality (as long as they don’t conflict with the privacy statement)
6. Limitation of Liability
The Service is not liable for:
- Indirect or consequential damages
- Loss of data
- Service interruptions
- Third-party actions
8. Contact
For questions about these terms:
- Email: privacy@domi.ninja
- GitHub: https://github.com/domi-ninja/email-friends
2025-05-07 21:02:00 +0000 UTC 0 1
1. Agreement to Terms
By using Email Friends (“the Service”), you agree to these Terms of Service. If you disagree with any part of these terms, please do not use the Service.
2. Service Description
Email Friends is an email management service that:
- Connects to your Gmail account
- Filters emails from unknown contacts
- Provides daily digests of new contacts
- Manages your email contact list
3. User Responsibilities
You agree to:
- Maintain the security of your account credentials
- Use the Service in compliance with applicable laws
4. Service Limitations
- The Service is provided “as is” without warranties
- We may experience occasional downtime for maintenance
5. Modifications to Service
We reserve the right to:
- Modify or discontinue the Service
- Update these terms with reasonable notice
- Change features or functionality (as long as they don’t conflict with the privacy statement)
6. Limitation of Liability
The Service is not liable for:
- Indirect or consequential damages
- Loss of data
- Service interruptions
- Third-party actions
8. Contact
For questions about these terms:
- Email: privacy@domi.ninja
- GitHub: https://github.com/domi-ninja/email-friends 9a1bfa57-2715-4cb5-9a90-157c541775eb 2025-07-07 14:17:20.749767251 +0000 UTC m=+13934.381168184 2025-08-07 14:11:21.180240058 +0000 UTC m=+441229.784236674 Vibe_coding_Security_in_Convex Vibe_coding_Security_in_Convex
tags: [“convex”, “security”, “development”, “lessons-learned”]
Security Issues with Ease of Development Tools
Remember Firebase from a few years back? Cool tool, but it had this nasty habit of exposing all your data over the API by default if you didn’t click the right buttons in their UI. I recently used Supabase, a Firebase clone, and had the same issue - you had to be super careful to configure the project properly to avoid accidentally exposing your entire database to the world.
It also makes me uncomfortable that many extremely popular dev tools, such as vercel,
Convex
First off, read a bit about what convex.dev is, if you do not know. I am not covering this here and this post assumes familiarity with their platform.
I’m often working with Convex for my side projects. Here is what I have come up with:
The security rule for Convex backend functions
For every backend API function that does something non-public or user-specific:
- Get the user
- Do an ownership check
Getting the user happens automatically via their auth system in a well-defined way - not having to build my own auth system is a huge benefit of their framework. Then doing the ownership check is just a single line of business logic with a throw if it fails.
A Real Oopsie
I was building a calendar sync solution for my Nextcloud instance. I configured a crontjob to sync everything I ever had in my calendar every 2 minutes so that my remote dev environment would stay up to the date.
This was significantly more data than I thought it would be, and as a result, I got a $50 bill from Convex for 50GB of high-speed database traffic. The lesson: always test data-heavy operations with small datasets first.
0 1
tags: [“convex”, “security”, “development”, “lessons-learned”]
Security Issues with Ease of Development Tools
Remember Firebase from a few years back? Cool tool, but it had this nasty habit of exposing all your data over the API by default if you didn’t click the right buttons in their UI. I recently used Supabase, a Firebase clone, and had the same issue - you had to be super careful to configure the project properly to avoid accidentally exposing your entire database to the world.
It also makes me uncomfortable that many extremely popular dev tools, such as vercel,
Convex
First off, read a bit about what convex.dev is, if you do not know. I am not covering this here and this post assumes familiarity with their platform.
I’m often working with Convex for my side projects. Here is what I have come up with:
The security rule for Convex backend functions
For every backend API function that does something non-public or user-specific:
- Get the user
- Do an ownership check
Getting the user happens automatically via their auth system in a well-defined way - not having to build my own auth system is a huge benefit of their framework. Then doing the ownership check is just a single line of business logic with a throw if it fails.
A Real Oopsie
I was building a calendar sync solution for my Nextcloud instance. I configured a crontjob to sync everything I ever had in my calendar every 2 minutes so that my remote dev environment would stay up to the date.
This was significantly more data than I thought it would be, and as a result, I got a $50 bill from Convex for 50GB of high-speed database traffic. The lesson: always test data-heavy operations with small datasets first.
b71a7a83-56b8-43da-8e76-8ec59545dcec 2025-07-10 08:32:11.691289345 +0000 UTC m=+135964.726314145 2025-07-10 08:32:11.691289395 +0000 UTC m=+135964.726314195 How_to_hack_convex How_to_hack_convex
1
55749ed0-540e-4bad-afca-55a7320efcd5 2025-07-31 10:01:48.764851129 +0000 UTC m=+1955741.799875929 2025-07-31 10:01:59.496069235 +0000 UTC m=+1955752.531094075 Our_planet_will_not_survive_lazy_developers_adopting_LLMs Our planet will not survive lazy developers adopting LLMs
0 0
6cf47eca-009a-4d67-a2e1-716d0fc97bd4 2025-08-01 22:16:48.249339615 +0000 UTC m=+18.397590745 2025-08-01 22:16:48.249339745 +0000 UTC m=+18.397590875 correct-frontends correct-frontends
The correct way to do
When building frontends for most projects, simplicity and maintainability should be your top priorities. Start with a clear structure: separate your components, styles, and logic.
.png)
Use a modern framework like React or Vue only if your project truly needs it; otherwise, plain HTML, CSS, and minimal JavaScript can be more efficient.
Focus on accessibility and responsive design from the beginning. Avoid overengineering—choose tools that solve your actual problems, not hypothetical ones. Document your code and keep dependencies to a minimum. This approach ensures your frontend remains easy to understand, update, and scale as your project grows.
So what??!
1
The correct way to do
When building frontends for most projects, simplicity and maintainability should be your top priorities. Start with a clear structure: separate your components, styles, and logic.
.png)
Use a modern framework like React or Vue only if your project truly needs it; otherwise, plain HTML, CSS, and minimal JavaScript can be more efficient.
Focus on accessibility and responsive design from the beginning. Avoid overengineering—choose tools that solve your actual problems, not hypothetical ones. Document your code and keep dependencies to a minimum. This approach ensures your frontend remains easy to understand, update, and scale as your project grows.
So what??! 870d5b8c-2846-4114-a64c-97c12a54b647 2025-08-01 22:27:25.265061441 +0000 UTC m=+655.413312531 2025-08-03 14:37:28.240937272 +0000 UTC m=+97196.844933878 Infrastructure_vibe_coding_for_side_projects Infrastructure vibe coding for side projects
Rationale:
I have some side projects. Let me figure out some infrastructure as code patterns with the help of an LLM in --yolo mode and test how practical it is to use an IAC framework for a single confused person such as me. Maybe it is not even worth the complexity and I should just keep clicking things by hand.
Plan:
- Use claude model
- Get some keys for existing infra providers
- Have claude figure out our existing infra, either via the IAC tool of our choice (e.g. terraform) or random scripts it can make
- Shove everything, including the credentials, into claude and tell it to replicate the existing infra as IAC, e.g. terraform variables file.
- Tell it to run and debug it as well. Check if maybe all data in your project was lost because something decided to recreate the prod DB. This is why the title says “side projects”.
- Audit and understand how our IAC works, request refactorings and changes from claude as needed. Make sure your changes to the IAC code files are actually applied.
- Move our API keys into their own IAC config file. Ignore that file in git.
- Rotate our API keys and stop using claude on your IAC. Are we happy?
Vibe Refactoring my IAC
Restructuring an IAC when you have no clue what you are doing is more annoying than building it from scratch.
TODO
I excluded credentials files from all my LLM tools, and then begged them (especially claude) in the global instructions not to read the credential files anyway by doing funny bash tricks instead of their regular ways of grepping files. That way I might not leak your credentials to the ai companies every time. In my experience, it works to tell them to assume the creds are always correct. Otherwise they will always feel the need to read them to debug stupid mistakes it made.
This is not a good good system, I need to start using a secrets store. Will edit this post in-place when I figure that out.
A simple example
I have my domains on namecheap for whatever reason. Their website for managing the DNS record is slow and sucks in other ways. So I did the steps above and migrated to three terraform scripts to manage them. Works great!
1 0
Rationale:
I have some side projects. Let me figure out some infrastructure as code patterns with the help of an LLM in --yolo mode and test how practical it is to use an IAC framework for a single confused person such as me. Maybe it is not even worth the complexity and I should just keep clicking things by hand.
Plan:
- Use claude model
- Get some keys for existing infra providers
- Have claude figure out our existing infra, either via the IAC tool of our choice (e.g. terraform) or random scripts it can make
- Shove everything, including the credentials, into claude and tell it to replicate the existing infra as IAC, e.g. terraform variables file.
- Tell it to run and debug it as well. Check if maybe all data in your project was lost because something decided to recreate the prod DB. This is why the title says “side projects”.
- Audit and understand how our IAC works, request refactorings and changes from claude as needed. Make sure your changes to the IAC code files are actually applied.
- Move our API keys into their own IAC config file. Ignore that file in git.
- Rotate our API keys and stop using claude on your IAC. Are we happy?
Vibe Refactoring my IAC
Restructuring an IAC when you have no clue what you are doing is more annoying than building it from scratch.
TODO
I excluded credentials files from all my LLM tools, and then begged them (especially claude) in the global instructions not to read the credential files anyway by doing funny bash tricks instead of their regular ways of grepping files. That way I might not leak your credentials to the ai companies every time. In my experience, it works to tell them to assume the creds are always correct. Otherwise they will always feel the need to read them to debug stupid mistakes it made.
This is not a good good system, I need to start using a secrets store. Will edit this post in-place when I figure that out.
A simple example
I have my domains on namecheap for whatever reason. Their website for managing the DNS record is slow and sucks in other ways. So I did the steps above and migrated to three terraform scripts to manage them. Works great!
17527970-33b8-4f26-88c1-79a76e259f59 2025-08-01 23:12:17.986962899 +0000 UTC m=+3348.135214059 0001-01-01 00:00:00 +0000 UTC More_thoughts_on_C__to_golang More thoughts on C# to golang
0
5a42732e-f16b-4fe2-b705-ae35750e20cc 2025-08-02 08:50:14.681854388 +0000 UTC m=+38024.830105517 2025-08-02 08:51:36.14121634 +0000 UTC m=+38106.289467481 Convex_Drive Convex Drive
I built this in 4 days to give convex.dev a real-world spin.
Try it out here!
https://github.com/domi-ninja/convex-drive



2025-06-24 02:00:00 +0000 UTC 1 1 projects /uploads/5a42732e-f16b-4fe2-b705-ae35750e20cc/Screenshot 2025-06-05 102150.png
I built this in 4 days to give convex.dev a real-world spin.
Try it out here!
https://github.com/domi-ninja/convex-drive



b7ad8a60-ec13-4d62-8f93-d62ced6c0b7d 2025-08-03 09:25:49.038555669 +0000 UTC m=+78497.642552284 2025-08-03 09:33:35.77847765 +0000 UTC m=+78964.382474265 Google_sucks_too_hard_and_I_am_done_with_them Google sucks too hard and I am done with them
Apparently google is now rummaging through your documents and deleting them if some ai is flagging on them.
Now, hear me out: If some other company did this, I would expect them to make it right. But google, amazon, microsoft and apple are the special brand of sucky giant
via @pheonix@fosstodon.org
https://maerossi.com/ claims to be a romance writer.
I guess I will make a venture into pushing open source or self-developed cloud services.
0 0
Apparently google is now rummaging through your documents and deleting them if some ai is flagging on them.
Now, hear me out: If some other company did this, I would expect them to make it right. But google, amazon, microsoft and apple are the special brand of sucky giant
*via @pheonix@fosstodon.org*
https://maerossi.com/ claims to be a romance writer.
I guess I will make a venture into pushing open source or self-developed cloud services. b0f699cc-6872-47aa-a903-b39504e01d85 2025-08-03 14:33:47.448123855 +0000 UTC m=+96976.052120471 2025-08-03 14:33:50.542109201 +0000 UTC m=+96979.146105777 Better_Nextcloud_Task_Project Better Nextcloud Task Project
0 0 projects
a1b625de-dedc-4bf0-958f-84622012dde4 2025-08-04 12:16:44.388165094 +0000 UTC m=+175152.992161710 0001-01-01 00:00:00 +0000 UTC programming_sustainably programming sustainably
This is not to say that our ai coded, bloated, unoptimized, horrible node_modules mess of a code culture is correct – i can feel myself wanting rethink that stuff in the face of global warming and supply chain crisis. I see a distinct possibility that we will have to downgrade web servers to a raspi-pi like hardware in the future, and then run a lighter web stack on there.
But i have been
0
This is not to say that our ai coded, bloated, unoptimized, horrible node_modules mess of a code culture is correct — i can feel myself wanting rethink that stuff in the face of global warming and supply chain crisis. I see a distinct possibility that we will have to downgrade web servers to a raspi-pi like hardware in the future, and then run a lighter web stack on there.
But i have been 3118ce7f-3e23-4351-a19c-b076119472ee 2025-08-07 14:11:30.069232979 +0000 UTC m=+441238.673229596 2025-08-07 14:11:44.478148494 +0000 UTC m=+441253.082145070 hellpot hellpot
https://c.im/@domi/114987857541318959
0 0 projects
https://c.im/@domi/114987857541318959
70fea016-8e97-4da7-91a8-bd50699604d5 2025-08-18 13:04:23.138244873 +0000 UTC m=+340987.729334477 0001-01-01 00:00:00 +0000 UTC my_fav_way_to_work_with_ my fav way to work with
0
d7375899-57ec-411a-b128-5b7cb0d544c9 2025-08-21 07:49:27.909768358 +0000 UTC m=+137119.050146263 0001-01-01 00:00:00 +0000 UTC tooter_usability tooter usability
what even is the point? thoughts go here
0
what even is the point? thoughts go here cf9f56e2-0523-4b0d-bf4c-9202382d345a 2025-08-21 08:40:22.071265906 +0000 UTC m=+420.506223986 2025-08-21 08:40:33.549343956 +0000 UTC m=+431.984301996 websites.fail websites.fail
https://github.com/domi-ninja/websites.fail/
2025-08-21 10:40:00 +0000 UTC 1 0 projects
https://github.com/domi-ninja/websites.fail/ 542bd42a-66fe-4c8e-b231-33d400faa689 2025-08-22 15:39:53.798257805 +0000 UTC m=+111992.233215885 2025-08-25 07:01:13.290242947 +0000 UTC m=+340071.725201027 Low-code_will_always_suck__Reasoning Low-code will always suck: Reasoning
Low-code tool development is a high skill programmer job
- A low-code tool is basically a debugger. Making debuggers, especially ones that don’t suck, is really hard [citation not needed]
- High skill programmers don’t need (or dogfood) low-code tools.
Maybe low-code refactoring?
- But your dont have search & replace
0 0
Low-code tool development is a high skill programmer job
- A low-code tool is basically a debugger. Making debuggers, especially ones that don’t suck, is really hard [citation not needed]
- High skill programmers don’t need (or dogfood) low-code tools.
Maybe low-code refactoring?
- But your dont have search & replace 1cd97581-6fca-4ce9-a128-04aa7102e161 2025-09-02 11:18:37.047155966 +0000 UTC m=+698344.012983142 2025-09-02 11:19:02.272716176 +0000 UTC m=+698369.238543353 cleaner_code cleaner code
https://c.im/@domi/115134408146745382
0 0
https://c.im/@domi/115134408146745382 944c0b42-8035-4388-b5f3-920f30e44e3c 2025-09-05 13:23:09.395111964 +0000 UTC m=+965016.360939151 2025-09-05 13:32:15.078026248 +0000 UTC m=+965562.043853434 my_current_projects my current projects

so uh
https://blog.domi.ninja/post/?id=6a667ee0-6efc-4b1a-809f-3b8fc5d72924 this works but i dont really know why i built it – maybe i will turn it into a cached frontend for my nextcloud instance sometime and wrap the webdav shit there so that tis faster and stops being annoyign on the android app (its supposed to auto upload my photos but making problems at the moment)
email-friends was my attempt to do what https://mail.superhuman.com/ does but it turns out thats a pain in the ass so nevermind that
google for me and spider are prototypes for what it turns out is already a big business, which is remote controlling puppeteer instances using ai.. pretty sure i will also leave this to the bigger fish
j-calendar is my vibe coded frontend prototype for my nextcloud caldav instead of webdav (calendar+contacts vs files) SO i guess i tried that twice or whatever
Anyhow
rss.domi.ninja will go on that subdomain sometime and be a little feed of cool stuff from mastodon and wherever i cross post it from
security-test-app was me thinking about convex + vibe code security, i want to go through a cool post they made and see if i agree
penumbra is me trying to start vibe coding an umbraco but i think fuck that
projects-mindmap is this thing its a vibe coded tree editor which im consdiering using instead of this
ai text adventure is a thing i started making because i was annoyed how shit the ai-enabled text adventures are, and it would be easy to do a better job, but im not motivated to make games unfortunately
typestone is this its a mostly vibecoded hearthstone clone with multiplayer via convex, where i want to experiment with a gameplay where the user types in the effect of a card, and then the ai goes and builds and compiles the code for the new card and puts it into the game
https://websites.fail is my most serious project, it is meant to become a better version of https://uptimerobot.com/ because that one loads slowly 
0 0
      
so uh
https://blog.domi.ninja/post/?id=6a667ee0-6efc-4b1a-809f-3b8fc5d72924 this works but i dont really know why i built it — maybe i will turn it into a cached frontend for my nextcloud instance sometime and wrap the webdav shit there so that tis faster and stops being annoyign on the android app (its supposed to auto upload my photos but making problems at the moment)
email-friends was my attempt to do what https://mail.superhuman.com/ does but it turns out thats a pain in the ass so nevermind that
google for me and spider are prototypes for what it turns out is already a big business, which is remote controlling puppeteer instances using ai.. pretty sure i will also leave this to the bigger fish
j-calendar is my vibe coded frontend prototype for my nextcloud caldav instead of webdav (calendar+contacts vs files) SO i guess i tried that twice or whatever
Anyhow
rss.domi.ninja will go on that subdomain sometime and be a little feed of cool stuff from mastodon and wherever i cross post it from
security-test-app was me thinking about convex + vibe code security, i want to go through a cool post they made and see if i agree
penumbra is me trying to start vibe coding an umbraco but i think fuck that
projects-mindmap is this thing its a vibe coded tree editor which im consdiering using instead of this
ai text adventure is a thing i started making because i was annoyed how shit the ai-enabled text adventures are, and it would be easy to do a better job, but im not motivated to make games unfortunately
typestone is this its a mostly vibecoded hearthstone clone with multiplayer via convex, where i want to experiment with a gameplay where the user types in the effect of a card, and then the ai goes and builds and compiles the code for the new card and puts it into the game
https://websites.fail is my most serious project, it is meant to become a better version of https://uptimerobot.com/ because that one loads slowly  5f05bcf8-02b6-4ba6-a657-c17456f5ceb4 2025-09-09 11:52:21.832422884 +0000 UTC m=+1305168.798250030 2025-09-09 11:52:28.609375624 +0000 UTC m=+1305175.575202811 illustrating_software_dev illustrating software dev

0 0
01acf6ad-f169-42c9-bcc3-3e03a896490d
2025-09-18 12:28:07.181437799 +0000 UTC m=+2084914.147264986
2025-09-18 12:52:39.710686621 +0000 UTC m=+2086386.676513808
The_Internet_will_never_die__keep_writing_cool_posts
The Internet will never die, keep writing cool posts
der vortrag gester war noch recht inspirierend weil einfach ein akademiker mich in meinen meinungen bestätigt hat und mir gleichzeitig einen coping mechanismus gegeben hat, der dazu führt, das es mir ein bisschen besser geht jetzt, was wiederum heisst das ich jetzt ein bisschen schlau über themen nachdenken kann, die mich beschäftigen 😄 zb habe ich den verdacht das wir irgendwann in den nächsten jahrzehnten einen kleinen technischen rückschritt machen werden müssen. Ich glaube wir zwei hatten auch mal so etwas diskutiert und du warst mehr auf der optimistischen seite, aber ich finde es ein spannendes feld Man kann da auch mit software und hardware herzige sachen machen bisschen vage ich weiss, aber muss ich mal in ruhe darüber nachdenken nächstes jahr 🧠 w_ayne — 2:49 PM vorträge die einem zum hirnen bringen findi no nice dominic — 2:50 PM jah sehr!
Es ist ein Fakt das viele software so ein misthaufen von abstraktionen ist die aufeinander gekackt werden. Man müsste mal die ganze scheisse wegreissen und neu bauen. Das würde ausversehen dazu führen das es am ende 1000x schneller läuft und du auf jedem benutzten einweg-vape arbeiten könntest literal garbage computer Image hat so ein bisschen rim world vibes https://www.cnx-software.com/2025/09/16/converting-a-disposable-vape-into-a-web-server/ CNX Software - Embedded Systems News Converting a disposable vape into a web server - CNX Software BogdanTheGeek has managed to run a web server on a disposable vape powered by a cheap Puya PY32 Arm Cortex-M0+ microcontroller. Converting a disposable vape into a web server - CNX Software sorry das ist ein bisschen viel für hier, ich habe zuviel kaffe getrunken. Ich sollte das mal in meinen blog kopieren anstatt zu dir haha
All the current troubles for the open web are real, and it will probably get much worse.
But let’s look at something that
In the same way that
Slow Apocalypse Scenarios might herald a new dawn for real content inside a few decades
Let us be honest for a second: The future of humanity is troubled. The climate crisis is real. Entire countries might collapse in the future because some fungus ate all rubber plants, the next pandemic struck and NPM got hacked again. ;)
Given such a scenario, this would disrupt a lot of supply chains worldwide. What would happen to society if individuals could not afford to buy new computers anymore?
People would go back to listening to the AM/FM radio, because those are easily constructed in a garage from literal spare parts. They would go back to slower internet speeds. They would go back to sharing desktop PC machines and reading blog posts because those will actually load.
2025-12-09 11:58:00 +0000 UTC 0 1
der vortrag gester war noch recht inspirierend weil einfach ein akademiker mich in meinen meinungen bestätigt hat und mir gleichzeitig einen coping mechanismus gegeben hat, der dazu führt, das es mir ein bisschen besser geht jetzt, was wiederum heisst das ich jetzt ein bisschen schlau über themen nachdenken kann, die mich beschäftigen 😄 zb habe ich den verdacht das wir irgendwann in den nächsten jahrzehnten einen kleinen technischen rückschritt machen werden müssen. Ich glaube wir zwei hatten auch mal so etwas diskutiert und du warst mehr auf der optimistischen seite, aber ich finde es ein spannendes feld Man kann da auch mit software und hardware herzige sachen machen bisschen vage ich weiss, aber muss ich mal in ruhe darüber nachdenken nächstes jahr 🧠 w_ayne — 2:49 PM vorträge die einem zum hirnen bringen findi no nice dominic — 2:50 PM jah sehr!
Es ist ein Fakt das viele software so ein misthaufen von abstraktionen ist die aufeinander gekackt werden. Man müsste mal die ganze scheisse wegreissen und neu bauen. Das würde ausversehen dazu führen das es am ende 1000x schneller läuft und du auf jedem benutzten einweg-vape arbeiten könntest literal garbage computer Image hat so ein bisschen rim world vibes https://www.cnx-software.com/2025/09/16/converting-a-disposable-vape-into-a-web-server/ CNX Software - Embedded Systems News Converting a disposable vape into a web server - CNX Software BogdanTheGeek has managed to run a web server on a disposable vape powered by a cheap Puya PY32 Arm Cortex-M0+ microcontroller. Converting a disposable vape into a web server - CNX Software sorry das ist ein bisschen viel für hier, ich habe zuviel kaffe getrunken. Ich sollte das mal in meinen blog kopieren anstatt zu dir haha
All the current troubles for the open web are real, and it will probably get much worse.
But let’s look at something that
In the same way that
Slow Apocalypse Scenarios might herald a new dawn for real content inside a few decades
Let us be honest for a second: The future of humanity is troubled. The climate crisis is real. Entire countries might collapse in the future because some fungus ate all rubber plants, the next pandemic struck and NPM got hacked again. ;)
Given such a scenario, this would disrupt a lot of supply chains worldwide. What would happen to society if individuals could not afford to buy new computers anymore?
People would go back to listening to the AM/FM radio, because those are easily constructed in a garage from literal spare parts. They would go back to slower internet speeds. They would go back to sharing desktop PC machines and reading blog posts because those will actually load. df28ed85-ef5f-4758-a7a4-44ab41f6a066 2025-09-22 10:53:33.393589579 +0000 UTC m=+2424840.359416765 2025-09-22 11:09:11.452781972 +0000 UTC m=+2425778.418609148 github_is_fun_if_you_dont_touch_the_website github is fun if you dont touch the website
I also just vibe coded a script that cleans up my aspirational forks, projects that I thought I could contribute to but eventually realized it is not necessary.
0 0
I also just vibe coded a script that cleans up my aspirational forks, projects that I thought I could contribute to but eventually realized it is not necessary.
e229b10f-bc55-4e19-9e24-a05abf30e40b 2026-01-13 12:05:04.009670452 +0000 UTC m=+766123.010050441 2026-01-13 12:05:59.753855959 +0000 UTC m=+766178.754235938 lazygit_is_the_best_and__you__should_adopt_it lazygit is the best and you should adopt it
0 0