146 posts
(*) — Journal
Journal.
Notes on web, automation and AI from our team.
(01)
Choosing a tech stack in 2026 — stop optimizing for greenfield
Tech stack debates assume greenfield. Real projects inherit existing code, team expertise, infrastructure decisions made years ago. Picking the "best" stack in 2026 is mostly about matching what your team already knows. The shiny new framework rarely wins.
→
(02)
From dev to prod in 15 minutes — small-team release engineering
Many small teams take hours to ship a single PR — manual checks, slow CI, fragile deploys, on-call coordination. Getting commit-to-prod under 15 minutes is achievable with focused decisions on each pipeline stage.
→
(03)
CI/CD on GitHub Actions for boutique studios — under 50 lines
Most boutique studio CI/CD is overengineered: hundreds of YAML lines, complex caching, custom runners, monthly debugging of pipeline issues. A simpler setup under 50 lines handles 90% of needs reliably.
→
(04)
Secrets management without a vault platform
HashiCorp Vault, AWS Secrets Manager, Doppler — paid vault platforms are great, and overkill for small teams. Smaller teams can handle secrets cleanly with simpler tooling that fits within their cloud provider and developer workflow.
→
(05)
Database backups that actually restore — testing 3-2-1 in practice
Most database backups exist but have never been tested. A scary fraction won't actually restore when the database burns down. The 3-2-1 strategy plus quarterly restore drills is the minimum for any production database.
→
(06)
Observability for a 5-person team — Sentry, Grafana, plain logs
Enterprise observability stacks (Datadog, New Relic, full OpenTelemetry pipelines) cost $50K+/year and require dedicated ownership. Small teams can build effective observability for under $200/month with Sentry, Grafana Cloud, and structured logs.
→
(07)
Postgres tuning for small SaaS — settings that matter
Default Postgres configuration is conservative — designed to run on any machine without falling over. For a small SaaS on dedicated hardware, defaults leave 50-200% performance on the table. A small set of well-chosen settings makes a big difference.
→
(08)
Serverless cost traps and how to avoid them
Serverless promises pay-only-for-what-you-use. Real bills frequently surprise teams: 50x estimated cost from unexpected patterns. The traps are predictable and avoidable if you know what to look for.
→
(09)
Edge functions in 2026 — Cloudflare, Vercel, Deno — what's worth it
Edge functions promised global low-latency compute close to users. Three years in, the real-world performance picture is mixed. Practical guide to which platforms deliver, which workloads benefit, and which should stay regional.
→
(10)
From monolith to modular monolith — when to skip microservices
Microservices were the default architectural answer for a decade. In 2026 most teams that adopted them are walking back. The modular monolith is a saner middle ground for teams of 5-50 engineers.
→
(11)
Internal AI assistants — building them right vs the usual mess
Every company in 2026 is building "our internal ChatGPT." Most end up as expensive abandonware within a year. A few become indispensable productivity tools. The difference is in five engineering decisions made at the start.
→
(12)
Automating B2B email outreach without ending up in spam
Cold email is still effective for B2B in 2026 — when done right. Done wrong, it lands in spam, damages domain reputation, and gets your IPs blacklisted. Practical guide to scaling outreach while staying inbox-friendly.
→
(13)
Building a privacy-respecting analytics stack post-GA4
GA4 dominated by default, but GDPR/ePrivacy compliance, cookie consent friction, and customer trust have driven many teams to alternatives. Plausible, Umami, PostHog, self-hosted — what actually works in 2026.
→
(14)
ETL with dbt for a small data team — practical patterns
A 1-3 person data team can build maintainable analytics with dbt and avoid the typical mess of ad-hoc SQL. Practical patterns for project structure, testing, documentation, and CI without over-engineering.
→
(15)
Real-time analytics for SMBs — Snowflake vs ClickHouse vs DuckDB
Snowflake costs $50K+ per year and overkills most SMBs. ClickHouse is free and powerful but requires operations expertise. DuckDB is shockingly fast for the right scale. Practical comparison for SMB analytics in 2026.
→
(16)
Vector search vs full-text — when to use which
Vector search is the hot new thing, but full-text search remains the right answer for many use cases. Where each shines, where they fail, and why hybrid almost always beats either alone.
→
(17)
Choosing between open-source LLMs and API providers in 2026
OpenAI, Anthropic, Google APIs vs self-hosted Llama, Mistral, Qwen. The decision used to be mostly about cost. In 2026 it's about latency, privacy, controllability, compliance, and lock-in. Practical framework for choosing.
→
(18)
AI code review — does it catch bugs or just add noise
AI code review tools promise to catch bugs and security issues automatically. In practice, half their comments are noise and the other half miss the real problems. When AI code review pays off and when it just trains engineers to ignore PRs.
→
(19)
RAG over corporate docs — what teams underestimate
RAG looks simple in demos: index documents, retrieve chunks, ask LLM. Production RAG over real corporate knowledge is harder than demos suggest. Teams underestimate data quality, chunking strategy, evaluation, and ongoing maintenance.
→
(20)
LLM-powered customer support without making it worse than humans
AI customer support is everywhere in 2026, and most of it is worse than the human alternative — slower, evasive, hallucinating, frustrating. A short guide to building LLM support that customers actually prefer over hold music.
→
(21)
Discovery phase deliverables that justify their cost
Clients reluctantly pay for discovery. They want "just start building." A real discovery phase saves 3-10x its cost by catching scope problems early. The trick is producing tangible deliverables that justify the spend.
→
(22)
Knowledge transfer between contractors and in-house teams
Contractors leave. In-house teams inherit. The handoff is usually a 30-page Confluence page nobody reads, followed by 6 months of slow rediscovery. Practical patterns for transfers that actually preserve institutional knowledge.
→
(23)
Async vs sync work in distributed teams — when to switch
Async-first is the right default for distributed teams. But "everything async" creates its own dysfunctions: decisions take weeks, conflict festers, alignment drifts. Practical rules for when to switch to synchronous and why.
→
(24)
Communicating across 8 time zones without burning out the team
When your team is in 6 time zones and clients in 4, every status meeting becomes someone's 23:00 or 06:00. Without structure, distributed teams burn out within a year. Practical patterns for staying productive without sacrificing personal lives.
→
(25)
Payment friction across borders in 2026 — SWIFT, Wise, crypto, local banks
Getting paid across borders in 2026 is messier than five years ago. SWIFT works but slowly. Wise is restricted by route. Crypto is fast but volatile and tax-complex. A practical breakdown of what actually works for international contractors.
→
(26)
NDA and IP transfer in software contracts — what foreign clients actually need
Foreign clients often demand boilerplate NDAs and full IP assignment without understanding the implications. Bad NDAs waste lawyers' time, bad IP clauses block the contractor from reusing common patterns. Practical guide to clauses that protect both sides.
→
(27)
Building a niche reputation — how a 5-person studio beats agencies of 50
Agencies sell capacity. Boutiques sell judgment. A 5-person studio focused on a specific vertical can charge 3-5x the rates of generalist agencies and book six months out. Practical playbook for building niche reputation.
→
(28)
Fixed price vs time-and-materials for custom builds — when each works
Fixed price gives clients certainty but punishes both sides when scope shifts. T&M gives flexibility but spooks budget-conscious buyers. The right model depends on how well the requirements are understood — not on what the client prefers.
→
(29)
Pricing strategy for boutique web studios in 2026
Hourly rates lose money on senior work. Fixed prices lose money when scope shifts. Value-based pricing works only with the right clients. Practical guide for studios of 3-15 people: how to structure prices that actually sustain a sustainable business.
→
(30)
Working with Russian clients as a foreign developer — practical guide
Russian B2B clients have a distinct operating style: detailed specs, formal contracts, longer decision cycles, but reliable payments once trust is established. Practical notes for foreign developers entering this market in 2026.
→
(31)
AppMetrica vs Firebase Analytics: migrating mobile app analytics
By mid-2026 Firebase Analytics in Russia is unreliable: events stop coming, remote config drops. Here is what to switch to and how to migrate without losing data.
→
(32)
Task queues: RabbitMQ vs Redis Streams vs Yandex Message Queue
Three common ways to separate "accept request" from "do the work" in Russian projects in 2026. Practical differences, what to pick for the load and for the team.
→
(33)
HTMX in production: where it works and where it falls apart
HTMX promises SPA without SPA: attributes on HTML, server returns HTML fragments. Three production projects later — here is where it really is simpler and where it hit the wall.
→