2024-11-26 20:19:00
Hi all,
Welcome to thanksgiving issue of BetterDev. Hope everyone had a safe and warm thanksgiving. It’s getting so cold these days. If you are in warzone such as Ukraina or Gaza, I really hope thing will become better.
AI field has been evolve quite fast this month with a lot of amazing tooling. I added many of them in self-hosted section to help you try them out.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
This article explores the historical development of memory in computing, from the early innovations in storage to the evolution of modern memory technologies. It reflects on the forgotten milestones in memory history and their impact on current computing.
why Windows 95 setup goes through three operating systems: MS-DOS, Windows 3.1, and then Windows 95. Why not go from MS-DOS straight to Windows 95?
Border Gateway Protocol (BGP) is the routing protocol for the Internet. Much like the post office processing mail, BGP picks the most efficient routes for delivering Internet traffic. In this post, we’re exploring the intra-day shenanigans with an eye to finding some of the ridiculous things that go on out.
Why using /tmp to store file is a usually a bad idea.
Learn how CloudFlare use formal verification to mathematically prove properties about DNS addressing behavior, even when different systems (owned by different teams) at Cloudflare have contradictory views on which IP addresses should be returned.
This blog post from Micron explores the transformative role of DRAM (Dynamic Random Access Memory) in the evolution of technology. It highlights DRAM’s impact on everything from personal computing to cloud infrastructures and its continued importance in the development of modern devices.
After reading this article, you’ll learn about the techniques we use to analyze SQL query performance when dealing with millions of queries per day and monitoring hundreds of PostgreSQL servers.
The OpenStreetMap (OSM) database builds almost 750GB of location data from a single file download. OSM notoriously takes a full day to run. A fresh open street map load involves both a massive write process and large index builds. It is a great performance stress-test bulk load for any Postgres system. I use it to stress the latest PostgreSQL versions and state-of-the-art hardware. The stress test validates new tuning tricks and identifies performance regressions.
In this easy-to-follow tutorial, you will learn how to build your own voice assistant Siri with the LLAMA-3 AI Model.
In this series of articles, I would like to talk about Linux Page Cache. I believe that the following knowledge of the theory and tools is essential and crucial for every SRE. This understanding can help both in usual and routine everyday DevOps-like tasks and in emergency debugging and firefighting. Page Cache is often left unattended, and its better understanding leads to the following:
We’re going to build a tiny 1000 line implementation of a GraphRAG algorithm originally invented by Microsoft. I consistently hear people talk about this algorithm at meetups, but it appears there are several orders of magnitude of people talking about it than actually using it or implementing it. Likely because the reference implementation is enormous and rather complex. So let’s break it down and see if there’s any merit to the hype around this approach.
High-performance HTML5 parser for Ruby based on Lexbor, with support for both CSS selectors and XPath. A drop-in replacement for Nokogiri.
Mittsu is a 3D Graphics Library for Ruby, based heavily on Three.js
Go toolkit for clean, composable, channel-based concurrency
a simple expression parser written in JavaScript. It can parse JavaScript expressions but not operations. The difference between expressions and operations is akin to the difference between a cell in an Excel spreadsheet vs. a proper JavaScript program.
small, safe, and great commonmark (optionally gfm) compliant markdown parser
Creating beautiful plots of data maps
Embed an SQLite database in your PostgreSQL table. AKA multitenancy has been solved.
performance tool compatible with all PostgreSQL versions (down to 9.4) allowing to collect, aggregate and purge statistics gathered from multiple PostgreSQL instances from various Stats Extensions.
Pretty fancy and modern terminal file manager
An Open-source LTE Downlink/Uplink Eavesdropper
Track the RAM usage of a process and its descendants in real time
Ovault is an open-source tool designed to securely store OAuth credentials for applications. It offers encrypted storage, helping developers manage sensitive tokens without compromising security.
Automate browser-based workflows with LLMs and Computer Vision
An extensible text editor framework that does things differently. At somepoint you would definetely need a JS text editor, having another option is great.
2024-10-21 20:19:00
Hi all,
Welcome to another issue of BetterDev! This week I come across Colmi, a smart ring where you can write your own software to interact with it. It’s also have a $12.51 deal on AliExpress so very affordable to toy around with hardware.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
WarpStream is a drop-in replacement for Apache Kafka that has no interzone networking fees, no disks to manage and requires zero cross-account IAM access, so raw data never leaves your environment. You’ll never again have to do things like partition or broker rebalancing, deal with snapshot replication issues or worry about over-provisioning, as auto-scaling is automatic and you’re always right-sized. Join customers that have saved over 80% by replacing self-hosted Kafka and MSK with WarpStream. Sign up for a free WarpStream account and get $400 in credits that never expire.
The first public analysis of the security and privacy properties of MMTLS, the main network protocol used by WeChat, an app with over one billion monthly active users. While they were unable to develop an attack to completely defeat WeChat’s encryption, the implementation is inconsistent with the level of cryptography you would expect in an app used by a billion users, such as its use of deterministic IVs and lack of forward secrecy.
Colmi is a cheap (as in $20) “smart ring” / fitness wearable that includes the following sensors: Accelerometer, sleep tracking, gestures, heart rate and blood oxygen. The coolest thing is you can write your own client to interact with it through bluetooth.
How cool it’s to setup a website run on solar powered at home? Follow this journey.
Uber upgraded their databae from 5.7 to 8.0. If you had use Uber app, you can use the app is no joke. Routing driver, provide real time upgrade etc. A very complicated app. The strategy that they used to upgraded it is worth a read for us. One important point is not being able to rollback once a v8.0 node is promoted to primary. There is risk and they careful testing to accept that risk.
SQLite got a lot of attention recently. If you ever try to use it for some high load you most likely disappointed at its performance. In this post we will look at a few sensible default to help that.
Many a beginner falls into the trap of trigger recursion at some point. Usually, the solution is to avoid recursion at all. But for some use cases, you may have to handle trigger recursion. This article tells you what you need to know about the topic. If you were ever troubled by the error message “stack depth limit exceeded”, here is the solution.
There are two classes of breakage that can occur when applying database migrations: Migrations that make incompatible changes to the schema, breaking client applications, Migrations that lock a database object for an unacceptable amount of time, causing the application to become unavailable as reads and writes start to fail. Today we’re going to talk about the second type of breakage: how long running queries together with DDL statements can lock out reads and writes from a table, causing application downtime.
Resolve DNS on k8s is a bit messy. For convenience there is a few way to hit a servie with just a name, a name and namespace or the cluster domain. What is the rule there?
After Turkey banned Discord, I had to jump through some hoops, fix my VPN, and learn a bit about how DNS works. Today I’m here to share what I have learned while trying to… you know. Find a way to use Discord again. Surprisingly, this ban ended up being a positive experience for me.
In this tutorial, we’ll build a simple chat interface that allows users to upload a PDF, retrieve its content using OpenAI’s API, and display the responses in a chat-like interface using Streamlit. W
Electronics programming in Ruby
A Rust crate for cooking up terminal user interfaces (TUIs)
allows users to spin up a quick Go project using a popular framework
With new of Bitwarden moving to close source, this is an alternative client for the Bitwarden® platform, created to provide the best user experience possible.
a modular, cross-platform, general-purpose Virtual Machine Monitor (VMM), written in Rust.
Trippy combines the functionality of traceroute and ping and is designed to assist with the analysis of networking issues.
a PostgreSQL extension to use Groonga as index. PGroonga makes PostgreSQL fast full text search platform for all languages!
If you ever want a way to export and load parquet file like how BigQuery does it, this finally happens for PostgreSQL.
A new DSL and server for AI agents and multi-step tasks
2024-10-14 20:19:00
Hi all,
Welcome to another issue of BetterDev! I’ve been exploring LLMs more and, while they’re not perfect or likely to replace programming jobs, they’re great for pattern recognition and repetitive tasks. I see LLMs becoming as common as email, with most people using providers and a few hosting their own. That’s why I’m sharing more LLM content, focusing on first principles to help programmers understand and build them from scratch.
Don’t worry, this newsletter isn’t turning into AI “hype.” I simply want to share useful tools and insights with our audience
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Unlock unparalleled insights with the improved Amplitude app for HubSpot. This integration empowers you to seamlessly sync user data and behavior insights, ensuring real-time analytics at your fingertips. Elevate your customer engagement with advanced segmentation, allowing marketers to identify product qualified leads. Try the app and start optimizing your strategies today
Have you ever feel overwhelm with all the news about LLM? what is these 70B 4B or 3.5 4.0? Or when you go and check out the code of some project, it’s super short and simple, where is the logic? In this link, we go back to that root to understand how to build an LLM by using Pytorch.
Have you ever feel like iCloud drive, Google Drive or Dropbox app is magic? What power them? It’s pretty much FUSE behind the scene. Can we turn random data available through RPC into a file system?
Cloud storage is ubiquitous: Google Drive, Dropbox, and OneDrive are household names. However, these services do not provide end-to-end encryption (E2EE), meaning that the provider has access to the data stored on their servers. The promise of end-to-end encrypted cloud storage is that users can have the best of both worlds, keeping control of their data using cryptographic techniques, while still benefiting from low-cost storage solutions.
QRCode is everywhere nowsaday. However, they doesn’t need to be just square black and white box. How can we generate QRcode that looks artsy while still readable to the decoder?
With a small team and in a few monthes, imblue trained a 70B parameter model from scratch on their own infrastructure that outperformed zero-shot GPT-4o on reasoning-related tasks. They’re sharing an end-to-end guide for setting up the required infrastructure: from bringing up the initial cluster and installing the OS, to automatically recovering from errors encountered during training.
what if I told you that simply reordering your columns could reduce the size of your tables and indexes by 20%? This isn’t some obscure database trick — it’s a direct result of how Postgres aligns data on disk.
This article is a look at how ngrok, a platform to enable you expose local service on your laptop to internet, built their data platform. Given their team size of 1 engineer, this maybe more useful and relevant to us more than scale of big corp(where there are hundred engineers building a data platform).
Threads and the general concept of concurrency are among the most widely misunderstood and confusing topics for newer developers. This series is meant to help clarify some of these concepts and provide a better understanding of how they work.
a very high level discussion of how Netflix improve and evolve their websocket infrastructure to perform many kind of tasks. There isn’t much technical discussion on this post, but more about concept and system design.
Nearest neighbor search for Rails.
code-based qr code generator.
Fast, cross-platform Node.js access to ExifTool.
an awesome qr code generator in Rust. Go beyond the normal QR Code, it can generate animation QR code as well. By the same author of above qrframe package.
Minimal LLM inference in Rust
Running Llama locally with minimal dependencies
A music manager with a virtual filesystem.
an advanced Layer 7 reverse proxy server written in Go
Video and audio player themes built with Media Chrome, for every web player and every web app framework.
is an simulator/emulator of the Sony PlayStation™ console, focusing on playability, speed, and long-term maintainability. The goal is to be as accurate as possible while maintaining performance suitable for low-end devices. “Hack” options are discouraged, the default configuration should support all playable games with only some of the enhancements having compatibility issues.
A Python script that automatically checks in to your Southwest flight 24 hours beforehand.
Certain workflows require sharing the entire screen (usually due to switching through multiple applications), but if the presenter has a much larger display than the audience it can be hard to see what is happening. DeskPad creates a virtual display that is mirrored within its application window so that you can create a dedicated, easily shareable workspace.
AI & parametric QR code generator. View the actualy deployment on https://qrbtf.com
Add streaming capabilities to Postgres.
A Git GUI branch management tool. Support Linux/Mac/Window. Build with Tauri/Rust/TypeScript so it won’t be as slow as Electron. If you’re a visual person, give it a try.
Command line interface for DuckDB, LibSQL, MariaDB, MySQL, PostgreSQL, Redshift, Snowflake, SQLite3 and SQL Server
2024-09-30 20:19:00
Hi all,
Welcome to another issue of BetterDev. This week PostgreSQL 17 is released. It has a lot of amazing feature. Time to update and look over the release note. If you are a Postgres user, consider subscribe to Postgres Weekly as well
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Developing AI Trust, hosted by Snyk on October 8-9. With 20+ sessions and 5 themed tracks, DevSecCon 2024 is packed with DevSecOps lessons and hands-on experiences from industry trailblazers. For all our developers, here’s one that you just can’t miss: Leonardo Zanivan from Okta, who will be discussing how to Secure Node.js Applications from Supply Chain Attacks. Register today!
Have you been trying to learn how compilers and programming languages work? Then come along! Let’s make a compiler that goes all the way from source to assembly from scratch—no shortcuts This book will teach you enough compiler theory and assembly programming to get going. It uses a subset of TypeScript that reads like pseudocode and targets ARM 32-bit instruction set.
Imagion composing a BMP image by hand, or writing a executable file manually? What kind of knowledge need to do that? Mastery of computer programming unlocks power, flexibility, speed, and debugging prowess across all of your work. We will learn in depth what you use every day, by exploring memory, instructions, syscalls, functions, structure and cognition.
In my security research I often come across weird quirks and behaviours that aren’t particularly useful beyond a neat party trick. It’s always a good idea to keep track of them though, perhaps one day they’ll be just the missing piece you need.
Have you ever want a search to find similar image? In this blog we’ll build a basic image search engine using Postgres. We’ll use a pre-trained model to generate embeddings for images and text, then store those embeddings in Postgres. The pgvector extension will enable us to conduct similarity searches on these embeddings using both images and raw-text as queries.
Part 6 of an AI Engineering open-source models tutorial series. We focus on RAG on this article. A RAG pipeline is what allows your AI model(s) to leverage the knowledge of your private/corporate data in its inference. It consists of the following stages: loading, indexing, storing, querying and evaluation.
In JavaScript, more often that not you may want to cancel a request? Imagine an auto-completed, when user type more, you may want to cancel the previous request, there is no point to get them. AbortController is a global class in JavaScript that you can use to abort these fetch request. And also anything else, not just http request.
Parent-child relationship happens a lot in context of web dev. Even harder when it’s nested. Example, nested comment. In this shortarticle we look at the ltree
Postgres extension to store and retreive that data type.
This post is part of an ongoing series about Chrome’s efforts to improve the DevTools Performance panel. Learn about these tools to help analyze performance of our front-end app. In this post we’ll take a closer look at each of the new features: Real-time local Core Web Vitals performance, Real-user experience data, Recommendations to configure your local environment, Information to help you reproduce issues.
Websocket bandwidth is especially chatty for Discord because they need to broadcast the message to all connection client. Also, decreasing bandwidth usage would lead to a more responsive experience.
Rapid, easy full-stack web development starter kit in Go
A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp.
Ruby PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more. Also, if you’re a Rails dev, checkout the rails-pg-extras
The Grammar Checker for Developers. Can be think of your own Grammarly replacement.
Visualizing Weather Forecasts Through Landscape Imagery. Traditional weather stations often display sensor readings as raw numerical data. Navigating these dashboards can be overwhelming and stressful, as it requires significant effort to locate, interpret, and visualize specific parameters effectively.
Type safe SQL builder with code generation and automatic query result data mapping
🔥 ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint. Use by a lot of other Go project to lint their Go code.
Open source ngrok alternative designed for teams. Tunnel http, tcp or websocket connections.
Visualizing and understanding PostgreSQL EXPLAIN plans made easy.
Have you ever feel tedious and risky when you acquire prod db credential, to run some kind of data modification query? Or feel wrong when giving someone access to a postgres db user and have to follow up when revoke/rotate password? Bytebase might solve these pain points. A single place to track change, query db, manage access. Bill itself World’s most advanced database DevOps and CI/CD for Developer, DBA and Platform Engineering teams.
Podman desktop companion
an event calendar focused on covering the needs of modern web apps: responsive design, internationalization, and extensibility. You can ship it with default settings in a matter of minutes. Surely come in handy when you need some sort of calendar-ish displaying for your app
2024-09-23 20:19:00
Hi all,
Welcome to another issue of BetterDev. This week we will learn about some crypto, a topic many time we are taugh to just use a library instead of writing our own. Therefor, it’s great to dive deep into the concept.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
However, most GTM teams still struggle to understand how customers are using their products. Now, teams can combine the power of HubSpot and Amplitude’s customer behavior data to accelerate growth.
The new and improved Amplitude app for HubSpot allows you to uncover your most qualified leads using product usage insights. Now, marketers can use key product signals for personalized lead nurturing, pass qualified leads to Sales, and work with Service to re-ignite at-risk customers.
Try the improved app today to enrich your HubSpot customer data with Amplitude’s product usage data
Alfred Menezes, a professor in the Department of Combinatorics and Optimization, Faculty of Mathematics, at the University of Waterloo in Canada. His research field is cryptography. He has made quite a few of his lecture available for free, both of slide, video, exercises and handout.
Engineer no doubt encounters the term entropy quite a bit when it come to randomess. But what is it? how to define it? This is the draft to a book about that exact topic. And here is the introduction post by author.
WebAssembly, or WASM for short, is a new technology for running portable programs in a safe and efficient manner primarily aimed at the web platform. Similarly to ASM.js, WASM aims at a low level-of abstraction suitable as an intermediate representation of a higher-level program — i.e. WebAssembly code is intended to be generated by compilers rather than being written by humans. T
Developers tend to treat tracing as deep magic, and OpenTelemetry is no exception. OpenTelemetry may be even more mysterious given how many concepts your are exposed to even with beginning examples. They are likely a lot simpler than you expect! Once you peel back the layers, I find a useful mental model of tracing looks like “fancy logging” combined with “context propagation” a.k.a “passing some IDs around”. The examples are JS code but the concept can be applied to your favorite language SDK given OpenTelemetry popularity.
If you always confuse with ssh remote port, local port forwarding this visualization might help.
On Mastodon, an opensource platform that is similar to Twitter. People can define custom emoji. The op library call emoji-picker-element
is used to render the picker. It’s choke with 19k emoji. How can we improve performance here to render a bunch of emojis as fast as possible.
Your database is configured for the needs of your day-to-day application activity, but what if you need to run complex analytics queries against your application data? Let’s look at how you can optimise your database for an analytics workload without compromising the performance of your application.
Installing software by piping from curl to bash is obviously a bad idea and a knowledgable user will most likely check the content first. So wouldn’t it be great if a malicious payload would only render when piped to bash? A few people have tried this before by checking for the curl user agent which is by no means fail safe - the user may simply curl the url on the commandline revealing your malicious code. Luckily the behaviour of curl (and wget) changes subtely when piped into bash. This allows an attacker to present two different versions of their script depending on the context :)
Lets learn how to encryption and decrypt with AES. You will learn stuff like AES-CBC or AWS-GCM. It uses Go as the language but the idea can be applied to your favorite langugage.
Replication being slow—replication lag—is a common complaint, but MySQL replication is actually really fast. Let’s run a controlled experiment and peek inside the Performance Schema and binary logs to see why.
In other words, LLM-powered applications are a lot like other modern cloud-native applications: they require excellent support for REST and RPC protocols, concurrency and performance. These just so happen to be the areas where Go excels, making it a fantastic language for writing LLM-powered applications. This blog post works through an example of using Go for a simple LLM-powered application. It starts by describing the problem the demo application is solving, and proceeds by presenting several variants of the application that all accomplish the same task, but use different packages to implement it. All the code for the demos of this post is available online.
a Go library designed to ensure fairness in the resource-constrained environments. It helps distribute the limited resources (e.g., database/blob storage throughput, job execution resources etc.) evenly across multiple clients during the time of shortage, preventing over-allocation and starvation based on client behavior.
Compile-time HTML templates for Rust
Generate your next Rails app interactively! This template includes production-ready recommendations for testing, security, developer productivity, and modern frontends. Plus optional Vite support! ⚡️
a Ruby gem for working with the io_uring API. IOU provides a simple and idiomatic API for working with io_uring.
a low-latency and high-quality end-to-end speech interaction model built upon Llama-3.1-8B-Instruct, aiming to achieve speech capabilities at the GPT-4o level.
WordLlama is a fast, lightweight NLP toolkit that handles tasks like fuzzy-deduplication, similarity and ranking with minimal inference-time dependencies and optimized for CPU hardware.
An edge-side LLM that surpasses GPT-3.5-Turbo.
your ultimate web application reconnaissance suite, designed to supercharge the recon process for security pros, pentesters, and bug bounty hunters. It is go-to web application reconnaissance suite that’s designed to simplify and streamline the reconnaissance process for all the needs of security professionals, penetration testers, and bug bounty hunters
an open-source Chrome extension that leverages AI to enhance your writing directly in your browser. It’s designed to be a more customizable and privacy-respecting alternative to Grammarly.
a database management tui for postgres
a suite of tools for running tests in isolated micro-containers locally on your machine or distributed across arbitrarily large clusters. Maelstrom currently has test runners for Rust, Go, and Python, with more on the way.
A native menubar app to track friends, teammates or city time zones on macOS.
Simple and flexible tool for managing secrets. Used to be managed by Mozilla but become a community project now.
Automate Browser-based workflows using LLMs and Computer Vision
3D Reconstruction with Spatial Memory
2024-09-16 20:19:00
Hi all,
Welcome to another issue of BetterDev. This week we will learn about making SWIFT payment, imagine you don’t have to rely on Stripe, and just be able to make payment right from your bank through SWIFT Protocol.
If you enjoy BetterDev, please spread the word by sharing it with your friends. And if you’d like to support my work, buying me a coffee would be much appreciated.
Hear from John Hammond & Daniel Miessler on some of the critical strategies and prescriptive DevSecOps approach needed to build and maintain trust in the age of AI-powered development. Save your spot
SWIFT is the most widely used international payment method in the world. In this tutorial we will be going over how to send a SWIFT wire programatically to your bank, what information you might need about your recipient to allow the payment to clear successfully, and the software you might need to do so. The following example can be implemented in code using iso20022.js.
A tale of how not renewing domain allow one to register and control an endpoint, lead to RCE. Another reminder that if you ever has a domain in use, then stopping using it, don’t let it expired. Also, yet another story to stick with traditional TLD such as .com, .net etc
B-trees are used by many modern DBMSs. Learn how they work, how databases use them, and how your choice of primary key can affect index performance.
A very hand-on comparison of SLO functionality on 3 platforms. Really good and detail write up if you’re evaluating these observability platfor.
CSS is getting better and better recently with ton of of highly-requested CSS features delivered.
Today, we will looks into the :has
pseduo class and share some of the most interesting real-world use cases I’ve found so far, along with some truly mindblowing experiments.
In recent years, you may notice we started to use SSH key with ED25519 instead of RSA. You will notice the key length is much shorter, but more secure. Another Two cryptographic algorithms that have become increasingly popular are x25519. AWS has optimized the x25519 and Ed25519 cryptographic algorithms in their AWS LibCrypto library, improving both performance and security and they share the benchmark and how we can use it here.
If you ever want to get the SHA of the Github commit in a Github action. You will quickly realize depend on pull request or branch push, the data path to get the SHA is different. In this we will demystify it
To create git commit, we use Git high-level commands (also known as Porcelain commands) like git add, and git commit. However, there is another group of Git commands, known as Plumbing commands, that handle the low-level operations. In this blog post, we want to create a Git commit using these low-level operations, and not the git commit command.
There are character that looks the same. But depending on where one type the message, it may be a different unicode code of the underlying data. So today we will learn the tail of hyphen and hyphen-minus.
Using SQL’s Turing Completeness to Build Tetris
Make use of recursive queries in Rails when using Postgresql or SQLite to retrieve tree-based data.
Adds comments summarizing the model schema or routes in your. Really good codebase to learn how to parse and insert code into the existing files
Efficient Portrait Animation with Stitching and Retargeting Control
Instead of cluttering up your computer with Docker, Prometheus, Grafana or even K8S just to monitor a Go app’s heap size, use this package to Monitor a Go app’s performance. Note that, it’s build mainly for local dev
Fast and exact implementation of the C++ from_chars functions for number types: 4x to 10x faster than strtod, part of GCC 12, Chromium, Redis and WebKit/Safari. C++ is the language I never wrote, but I do plan to read to understand how float parse from characters works.
to provide a fast, lightweight 2D library that works across all devices. The PixiJS renderer allows everyone to enjoy the power of hardware acceleration without prior knowledge of WebGL. Also, it’s fast. Really fast.
🐘 Effortless PostgreSQL backups with a user-friendly web interface! 🌐💾
A multi-platform (Flutter) application for reading your emails, with your favorite devices, using the JMAP protocol!
Powerful SVG-Editor for your browser
A notifications library and a CLI to send notification to multiple services such as discord, slack, telegram and more.