Decent Apps

decent apps post image

About

Over time, I made quite a few apps, so I thought I’d make a collection of the more useful web apps that can be published online and call them Decent Apps.

Some of them are dApps with a focus on privacy, security, and decentralization. For example, the C# Online Compiler runs entirely in your browser using WebAssembly, ensuring your code never leaves your device. Additionally, it uses Gun.js(decentralized database) for storage and live sharing of the code editor.

While others are just useful apps, such as the C# code map generator, 3D Mesh Optimizer, …

Most of the applications are Blazor WebAssembly PWA(progressive web apps) that you can download/install so you can use them offline.

In the post below, I’ll briefly go over each of the apps.

Table Of Contents

dApps (Decentralized Apps)

A dApp or decentralized application is an app that runs on a decentralized network (blockchain, DAG, or P2P), removing reliance on a CA(central authority or server).

For example, Bitcoin runs on a blockchain while IOTA or Hedera uses a DAG(directed acyclic graph) instead, then you have your P2P protocols, TOR, BitTorrent or GUN.js. These types of technologies give users more control, transparency, and resistance to censorship compared to traditional apps.

Key Features Of dApps
  1. No single point of control (not owned/run by one authority)
  2. Distributed execution or data storage
  3. Often permissionless access (anyone can use it)
  4. Sometimes (but not always) uses tokens or smart contracts

My experience building things with decentralized technologies

I always liked the idea of decentralization, hence why I have this blog instead of posting stuff on platforms like Medium or Hackster.io, and why I self-host a lot of stuff like I described in this post, Docker Containers I run In My Homelab/Server and why I host my own Home Assistant for my home automation setup with a lot of my own hardware. 

I got into Bitcoin mining way back in the day(2011 or 2012) when you could still use a GPU to do it. I even bought one of the first ASIC miners that I eventually tore down and reused the case to make a mini portable server. I mined Ethereum with my GPU before it went from PoW to PoS and a whole bunch of other cryptocurrencies.

Like I wrote in this blog post, about the DecentBin(Decentralized PasteBin Clone) app I was making, “I was planning to use/experiment with either Moralis(middleware for building web3 apps) or the SiaSkynet non-relational key-value pair database for storing the data. Then I was planning on using the SiaSkynet decentralized CDN to host and serve the app. In the end, SiaSkynet went bust(they didn’t get any more funding), so I kind of gave up on this little project and moved on to other stuff.” I eventually decided to redo/finish this project by using GUN.js, I’ll talk about it later in this post.

Additionally, I had the idea to make a decentralized IoT Gateway. For example, a manufacturer of an IoT device could use this IoT Gateway to set up the backend, then when their customer buys the product, they have this service and basically own their own data and infrastructure(backend data storage) without having to self-host it. This would give users full control over their privacy, data and functionality of the product.

The manufacturer couldn’t just discontinue the service, rendering the device useless (this has already happened many times). Additionally, the manufacturer of the IoT device wouldn’t have to worry about hosting and maintaining any infrastructure or worry about data protection, as they would have no data stored anyway.

I have abandoned this project because, as I mentioned above, I was relying on Sia Skynet Key-Value pair DB, but they went bust, and that project is pretty much dead. I could have used an alternative(we’ll look at some later), but the general idea was a bit too “idealistic” anyway, as in reality, unfortunately, the average user doesn’t care about their data/security/decentralization, while most manufacturers want the exact opposite, so they can harvest data and lock down the devices. So this idea would have a very niche product market fit.

Then I also did some other smaller projects that didn’t end up going anywhere(NFT game, Lbry protocol Portal, …). At some point, I found the GUN.js decentralized, peer-to-peer graph database, and decided to try it out. I used it for persistence of data and messaging in the dApps listed below.

After all of this stuff, I’m kind of out of the whole decentralized /crypto stuff. I still like the idea of decentralized technologies, and I’m very much still open to using them. But at the moment I’m focusing on other stuff.

The state of decentralized databases in 2026

Stuff I would avoid:

Back in the day, I was contributing some storage to both Storj and Sia.

1. Sia

Sia had another project, called Sia Skynet, that was a key-value pair database built on top of Sia. This was very useful for developers like myself, as databases are crucial and a needed layer on top of file storage if you want to make dApps. They went out of business a few years ago. This was very disappointing, and I lost interest in the project. At some point, I was even contemplating contributing to writing a C# library for it(someone actually did it).

I checked the stats for Sia, and they have like 2.7PB of data on the network. For example, I have 6*16TB in my small home lab NAS. Now let’s say we take a 4U server with 36 bays, and use a bit bigger 24TB HDDs, this means 3-4 4U servers can host all the data currently stored on the network. All of this would fit into a single server rack with room left to spare. So yeah, the network is not doing that well.

2. Storj

Then there’s Storj, which isn’t decentralized as they act as a CA. You have to register, and they give you an “identity” key that can be revoked. So it isn’t decentralized. I don’t see them claiming it decentralization now, but they certainly were falsely claiming it back in the day(you can check waybackmachine). Back in the day, I remember it was a pain in the ass to set up the app provided for Qnap NAS devices, which didn’t work properly, and if I remember correctly, you could only host one drive/pool per identity.

3. BigchainDB

BigchainDB is another decentralized database I was looking into years ago that seems dead now.

Currently useful stuff:

1. IPFS/FileCoin

IPFS (InterPlanetary File System) IPFS is not a blockchain—it’s a distributed data protocol. It uses content-based addressing(files identified by hashes), making data verifiable and tamper-resistant.
FileCoin is the blockchain part. It adds token incentives and cryptographic proofs to ensure those files stay persistently stored across the network.

Here are some useful things that I found years ago when Sia Skynet shut down, and I was looking to migrate my IoT Gateway project to a new decentralized DB.

A useful video: Store IPFS Assets on Ethereum Smart Contracts | Solidity, Moralis, Remix, IPFS, good post about IOT and Web 3.0, this was a very nice IOT Weather Station project built on IPFS(video presentation), and here’s the ESP32 IPFS Library. However, it doesn’t seem to be maintained anymore.

2. Arweave/WeaveDB

Arweave, “The Arweave network is like Bitcoin, but for data: A permanent and decentralized web inside an open ledger. Permanent storage has many applications: from the preservation of humanity’s most important data, to the hosting of truly decentralized and provably neutral web apps.”

If I remember correctly, Odysee/Lbry moved to this persistence layer after the SEC lawsuit bankrupted Lbry.

WeaveDB, Decentralized NoSQL DB on Arweave. “Mathematically-proven database with cloud performance and permanent storage. Zero-knowledge proofs enable queries from any blockchain. The verifiable data layer AI agents need.”

3. Gun.js

GUN.js(GitHub repo), is an open-source, real-time, decentralized graph database written in JavaScript.
  • Realtime p2p state synchronization via WebRTC.
  • Graph data lets you use key/value, tables, documents, videos, & more.
  • Local-first, offline, and decentralized with end-to-end encryption.
gun.js architecture layers
Source: https://github.com/amark/gun

4. Other

I didn’t research these in depth, but they seem like relevant DBs in the decentralized space today: LumeIceFireDBStoracha.

dApps

C# Online Compiler

This is an online C# compiler that runs directly in your browser. So, your code won’t be sent to a backend server to be compiled. This is achieved by utilizing Blazor WASM(WebAssembly), which allows us to make and run C# apps(including the Roslyn compiler APIs) in a browser. I decided to use GUN.js(decentralized graph database) to store the data and live share the code editor. The account and its data are saved to the GUN.js decentralized database. 

Find out more about the technical aspect of it in this dedicated post I made.

Github repo: CsharpOnlineCompiler
Link to the app:  C# Online Compiler

Decent Paste

This is an old project I revived. In fact, I wrote about abandoning the idea of making a decentralized pastebin clone in this post. At the time, I was trying to create a simple dApp(decentralized application) using Sia Skynet as I was planning to use it for another project. Then Sia Skynet shut down, and I abandoned both projects.

However, I recently made an online C# compiler and decided to use GUN.js(decentralized graph database) to store the data and live share the code editor. This gave me the idea to take some of the code from there, make just a few changes to it and use it for the decentralized pastebin dApp.

Github repo: DecentPaste
Link to the app:  Decent Paste

Decent Diff

I often use online diff tools to compare code snippets and text files, so I decided to make my own. I already used the Monaco editor in other projects(online C# compilerDecent Paste), so I knew it had a diff editor as well. Additionally, I already had the code to save and share the editor using GUN.js(decentralized graph database).

Github repo: DecentDiff
Link to the app:  Decent Diff

Decent Chat

When I first started using Gun.js the first tutorial in their documentation is making a chat application, so I decided to to take that example a bit further and make a secure, peer-to-peer chat application. The account and its data are saved to the GUN.js decentralized database. Your data security depends on keeping your password and private keys secure.

Key features include:

  • Decentralized: Messages and room data are stored across a network of Gun peers, not a central server.
  • End-to-End Encrypted: All messages and room keys are secured using cryptographic secrets derived from shared encryption keys.
  • Session Management: Users can add/remove network peers, and all application state (rooms, invites) is linked to your cryptographic identity.
  • Multimedia Support: Supports sending encrypted images and downloadable files (including 3D models).

Github repo: Decent-Chat
Link to the app: Decent Chat

Other Apps

GDS Viewer

This is a free and open source online GDSII file viewer/editor. It allows you to view GDS files in 2D/3D, edit them in 2D or directly via a text editor. I made this after I took a course on designing ASICs, where I found out a bout the file format and thought I could make an online viewer for the format as I couldn’t find any.

Find out more about the technical aspect of it in this dedicated post I made.

Github repo: GDS Viewer
Link to the app: GDS Viewer

Graph DB Viewer

Work in progress, will update it soon.

This is a tool to visualize and interact with your graph databases like Cosmos DB or Apache ThinkerPop using the Gremlin syntax.

I made this because I was working with graph databases for another project and realized there weren’t many good tools that you can quickly set up. I found this project, but it requires it to be set up as a Docker container. While my app can be run directly in the browser without having to instal/seup anything. Additionally, it offers 2D/3D visualization of the nodes/edges.

Github repo: GraphDBViewerWeb
Link to the app: Graph DB Viewer 

3D Mesh Optimizer

This is a tool for simplifying 3D geometries of .obj files.

I quickly threw this together with code from another project of mine, while I got the mesh optimization code from this post here. I thought I’d put it online in case someone finds it useful.

Github repo: MeshOptimzer
Link to the app: Mesh Optimzer

Verilog Flow

Generate Verilog from a schematic of logic gates. You can manually drag and drop logic gates onto the canvas and connect them, or you can use AI to convert a schematic to a layout. At the end, you can get the Verilog output for your design.

I wanted to make a similar app for some time, but I never got to it. Now with all the AI tools out there, I thought I’d try and see how quickly I can vibe code it. I used Google AI Studio. At first, it went quite well, but as the app got slightly bigger and the context window got larger, it became basically impossible to add any new feature without it breaking something else that was working before.
 
To avoid this, you would have to open up this project in an IDE with one of the AI extensions and take a more hands-on on granular approach to building the app. This means giving the AI smaller, more specific tasks. Additionally, you should take the “spec-driven development” approach with something like Spec Kit or some other similar tool. I didn’t bother with this, as this is just a little toy app I wanted to make while also testing out AI tools.
 

Github repo: Verilog_Flow
Link to the app: Verilog Flow

Schematic2KiCad

This app uses AI to automatically extract components and connections from hand-drawn or printed schematic images, giving you the BOM and allowing you to export the schematic directly to .kicad_sch format. As expected, with AI “vibe-coded” apps, it’s kinda flakey. You will not get a deterministic result. So if you upload the same image twice, it might give you the correct schematic once and a wrong one the next time(or wrong both times).
 
Github repo: Schematic2KiCad
Link to the app: Schematic2KiCad
This is the result after importing it into KiCad. I guess it looks close enough for being generated by a vibe code AI slop app.

C# Code Diagram Generator

I wanted to get a diagram of some C# code I was working on. Visual Studio offers this as a feature called Code Map, but it’s only available for the enterprise edition. So I quickly cobbled together this project by reusing some code from other projects I made and “vibe coded” the rest with AI(so I don’t guarantee code quality or that it’s without bugs).

Github repo: CsharpCodeDiagramGenerator
Link to the app: C# Code Diagram Generator

Image Compare

I made this tool when I was writing about an issue I had with my DIY weather station’s anemometer PCB. I wanted a way to visually compare the PCB and thermal camera images and toggle between them to see where the overheating components were. So I thought I could quickly vibe code or “prompt engineer” a simple image comparison tool to do that.

GitHub repo: ImageCompare
Link to the app: Image Compare

Leave a Reply

Your email address will not be published. Required fields are marked *

The following GDPR rules must be read and accepted:
This form collects your name, email and content so that we can keep track of the comments placed on the website. For more info check our privacy policy where you will get more info on where, how and why we store your data.