Integrating Stripe Connect for Multi-Tenant Payments in NestJS
How we built per-artist Stripe Connect onboarding, checkout sessions with platform fees, webhook-driven fulfillment, and digital download delivery into our multi-tenant platform.
Learn Linux, Investing, and TypeScript with practical tutorials (no fluff, just receipts).
How we built per-artist Stripe Connect onboarding, checkout sessions with platform fees, webhook-driven fulfillment, and digital download delivery into our multi-tenant platform.
A beginner-friendly guide to reverse proxies, why we chose Caddy over Nginx, and how its automatic HTTPS and on-demand TLS let a small team handle infinite custom domains without a dedicated infrastructure engineer.
What started as a simple Prisma upgrade became a deep dive into Docker architecture, WebAssembly file handling, and TypeScript path resolution. Here's our complete journey from 7.2.0 to 7.5.0.
How we transformed 3-minute financial report load times into 20ms responses using pre-generation, database caching, and scheduled jobs.
How we built a reusable skeleton loading system in Next.js App Router that improved perceived performance by 40% and reduced bounce rates by 60% on financial reports.
A systematic portfolio rotation strategy using 70/20/10 factor weighting (valuation/quality/safety) to identify undervalued opportunities while managing risk through disciplined turnover.
We tried Fluent Bit + Lua to scrape Docker logs into OpenObserve, hit schema and parsing pain, and pivoted to emitting OpenTelemetry directly.
How to read valuation and shareholder yield with a simple point system that leans on sector medians, guards against one-offs, and keeps cash reality in focus.
Traffic to firgun.win briefly 302'd to a malicious Arweave link because a stray container had claimed port 3000. We rebuilt the app, pruned stale containers, and tightened post-deploy port checks.
A plain-English guide to quality and profitability metrics: what they mean, how they fit together, and how to read them without needing a finance background.
Keeping containers running isn't enough; you need to know they're actually healthy. Learn how to configure, observe, and act on Docker health checks with practical snippets you can lift into your own projects.
Block real HTTP calls in tests to keep them deterministic, fast, and safe by forcing every outbound request to be mocked.
A comprehensive overview of technologies powering modern web applications, from backend to deployment, and the reasoning behind our choices.
A beginner-friendly guide to using different API URLs for local development and Docker Compose, with clear environment file examples.
Use the AWS CLI to pick the latest Amazon Linux 2023 AMI, launch an EC2 instance with a 100 GB gp3 root volume, and connect over SSH.
End-to-end setup: Nginx on Amazon Linux 2023, Cloudflare DNS/proxying, and Let's Encrypt certificates via Certbot for Cloudflare Full (Strict).
A practical filter-first, then rank system: screen out unhealthy dividend stocks, score the survivors, and keep the 10 best.
A practical guide to project-level TypeScript declaration files like typings.d.ts, with examples for assets, globals, and third-party libraries.
Under XCTest teardown we hit a repeatable 'pointer being freed was not allocated' malloc crash when deallocating async/Combine-heavy DependencyContainer and view models. This post explains what was happening and why we fixed it by deliberately leaking those objects in DEBUG tests only.
After enabling stricter Swift concurrency checks, we started seeing main-actor isolation errors from @MainActor initializers that used default parameter values. This post explains why default parameter expressions are nonisolated and how to fix the pattern by moving defaults into the initializer body.
During test teardown we hit a repeatable 'pointer being freed was not allocated' crash while deallocating a @MainActor ObservableObject, and this post explains why we treated it as a Swift runtime edge case instead of rewriting our architecture.
SwiftUI silently ignored save error alerts once a second alert existed, and this post captures what we learned in the Advanced SwiftUI: Lessons From Mistakes series.
How we built ObservedOrStateObject to let SwiftUI views own or observe view models without duplicating code.
A step-by-step guide to building a modern SwiftUI Recipe Book app for iOS and macOS.
A step-by-step guide to creating a production-ready Kubernetes cluster
A list of key concepts that build a strong foundation for Phase 1 of the learning path.
In this article we will create a comprehensive learning path to take you from beginner to proficient in about 8-10 months with consistent daily practice.
In this article we will go over deploying microservices into a Kubernetes cloud. Part 1.
In this article we will be adding a shared local library to a monorepo.
In this article we will be setting up an OpenVPN client on OpenWrt.
Trusting all certificates allows anybody to do a man in the middle attack
Why do we need to inject dependencies and some tools that help with it...
XCTest expectations are great but it is not easy to use them.
It has become pretty common among Swift experts to always use [weak self] inside of a closure to avoid retain cycles ...
We started using Ghost when it was still in its very early stages ...
It is fairly easy to use UIScrollView with the AutoLayout on iOS 12+ but only if one follows the following steps ...
How to create a framework that uses C with Xcode
Symbolification is the process of mapping machine addresses into the source code. The tricky part is that by default .DSYM file is only generated for release builds.
RxSwift is a powerful framework and, as always, with power comes responsibility.
We needed a collection view cell that contained an image view and a label.
All we needed was a simple UICollectionView with just one cell that contained a label ...
RxSwift.Resources are being used to detect memory leaks during pre release tests. Solving Use of unresolved identifier 'Resources' error.
RSA verification process is similar to RSA encryption/decryption process with one major difference.
Picking your compilesdkversion, minsdkversion, targetsdkversion.
git remote prune origin
git rebase -i 95eeee3^
On iOS 10, a collection view embedded in a view has unexpected padding at the top.
While browsing our Node.js site logs we have noticed the following error...
Lawyers are the worst. An example of terms of use...
ne of our views that contains a UICollectionView started crashing once in a while...
Unfortunately stabilizing MySQL on our tiny server was not simple and in fact the only thing that helped was a SWAP file.
The power of ReactiveSwift lies within its operators!
According to the documentation, to use ReactiveSwift.playground the following steps must be performed...
A property in ReactiveSwift allows us to track its changes over time.
Collection view is highly optimized and works great out of the box.
The following code is causing a compiler crash when compiled with Swift 3 and Xcode 8...
In Xcode 8, it is no longer possible to create NSManagedObject subclasses...
Recently we had a need in a general way to catch calls that can throw an exception.
Debugging errors that are a result of observers being added to an object and not removed from it can be hard.
git rm -r --cached .
Shapefiles are technology from the past when desktops ruled supreme.
Decouple, separate, disengage, or dissociate (something) from something else.
A small button named 'Debug view hierarchy', displays current view hierarchy in 3D.
In Swift, we have a syntax candy called 'guard'..
While starting iOS 9 we have UIStackView, it is a little bit tricky to stack views vertically or horizontally.
Positioning views relative to one another with auto-layout was fairly tricky until...
Just a bunch of short expressions in Swift.
URI - the part of URL that comes after the domain (or IP/Port) name.
Renewing a certificate is not fun so it is better to use Let's Encrypt but if that is not an option...
After upgrading ubuntu pip started throwing the following error...
We needed to add Volley networking library into our project.
We all understand the frustration users experience when software malfunctions...
After upgrading to MySQL 5.6 from 5.5 we started getting an error: Incorrect MySQL client library version!
Rails is heavily using environment variables in its configuration files.
YAmazon S3 does not like dots in bucket names.
Digital Ocean has a great tutorial on how to install Nginx with Phusion Passenger, RVM, and RoR on Ubuntu.
A frequent mistake when playing a local video using [AVAudioPlayer initWithContentsOfURL:url] is to use URLWithString instead of fileURLWithPath.
Generating the path dynamically with NSSearchPathForDirectoriesInDomains.
Having a different application name for release and development builds.
Yosemite has Python 2.7.6 built in but for many reasons (one of them is sudo) we prefer a clean up-to-date install.
The update just failed every time I tried to install.
Keeping Ghost installation up-to-date is important not only because of new features added but also because of all the security updates.
Unfortunatrly, Homebrew breaks after an upgrade to OS X Yosemite.
By default all the apps (even compiled with Xcode 6 and iOS 8) will run in a scaled mode on both iPhone 6 & iPhone 6 plus.
Push notifications on iOS 8.
git tag -a prod-0.9.7 -m 'add analytics'
git checkout 6c1d1862 AppConsumer/Curbsidr.xcodeproj/project.pbxproj
Compiling Facebook SDK with Xcode 6 is not yet an option.
Converting a decimal number to a currency string is simple with NSNumberFormatter.
Somewhere a monkey just typed Shakespeare in TypeScript. Be the first to read the masterpieces (and the hilarious misfires) landing on the blog.