| Tool / Project | Type / Architecture | UI / Dashboard | CLI / API | Multi‑node / Clustering | Auto TLS / SSL / ACME | Zero‑downtime / Rolling Deploy | Preview / PR Environments | Team / Permissions | Volume / Backup Support | Open Source / License | Heroku‑style Compatibility | Pros / Strengths | Cons / Caveats / Weaknesses |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dokku | Single‑server (extensions for multi) | Minimal (no central UI, though plugins exist) | CLI, plugin APIs | Via community / plugin / custom setups | Yes (Let’s Encrypt plugin) | Via Docker techniques / plugin | Limited, requires extra setup | Basic (single admin; community plugins) | Plugin / manual (e.g. volume backups) | MIT (fully open source) | Good: git push, buildpack style, plugins add DB, etc. | Very stable, mature, lots of community extensions | Scaling / multi‑node is manual; UI is weak; managing many apps / teams is harder |
| Dokploy | Multi‑node / cluster (Docker Swarm) | Yes (built‑in UI) | CLI + AP |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import { z } from "zod"; | |
| const Post = z.object({ | |
| id: z.string(), | |
| slug: z.string(), | |
| content: z.string(), | |
| title: z.string() | |
| }) | |
| export function createAPIClient() { |
This gist is a simple no-brainer description of the 3 ways (actually 2.5) the Web handle events.
The declarative inline HTML event listener is mostly an indirection of DOM Level 0 events, meaning this simply uses the equivalent of tag.onclick = listener behind the scene.
click meThis is a user story template that you can use to document user stories for your software development projects. User stories follow the "As a [role], I want [an action or feature], so that [a reason or benefit]" format, and they help define the functionality and requirements of a feature or improvement.
- Copy the template below:
**As a [role],**
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <Project> | |
| <PropertyGroup> | |
| <TargetFramework>netcoreapp3.1</TargetFramework> | |
| <OutputType>Exe</OutputType> | |
| <OutDir>build/bin</OutDir> | |
| <BaseIntermediateOutputPath>build/obj</BaseIntermediateOutputPath> | |
| </PropertyGroup> | |
| <Target Name="PrepareProgram" BeforeTargets="BeforeBuild"> | |
| <PropertyGroup> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using System; | |
| using System.Threading.Tasks; | |
| namespace System.Collections.Concurrent | |
| { | |
| public static class ConcurrentDictionaryExtensions | |
| { | |
| /// <summary> | |
| /// Provides an alternative to <see cref="ConcurrentDictionary{TKey, TValue}.GetOrAdd(TKey, Func{TKey, TValue})"/> that disposes values that implement <see cref="IDisposable"/>. | |
| /// </summary> |
uce vs lit-element
A very simple comparison table between these two libraries.
| uce | lit-element | |
|---|---|---|
| version | 1.11.9 | 2.4.0 |
| license | ISC (simplified MIT) | BSD-3-Clause License |
| language | JS w/ TS definition | TS w/ JS transpilation |
| size ( brotli ) | 9437b ES5 / 6811b ES2015+ | 8634b ES5 / 6708b ES2015+ |
a gist to recap the current status, also available as library picker!
do one thing only and do it well
- µhtml (HTML/SVG auto-keyed and manual keyed render)
- augmentor (hooks for anything)
- wickedElements (custom elements without custom elements ... wait, what?)
NewerOlder
