# Artem Daniliants > Growth marketer and agency founder based in Tallinn. I run Daniliants Ventures, helping companies grow with SEO, growth marketing, and AI training. ## Live threat map URL: https://daniliants.com/tools/live-threat-map/ Every computer connected to the internet gets scanned. Constantly. Automated bots crawl IP addresses looking for open ports, known vulnerabilities, anything they can exploit. This happens 24/7, to every server, everywhere. Modern operating systems handle most of it quietly. You just never see it. I recently bought a dedicated server for some projects I am working on this year, and I thought: what if I could actually visualize all of this in real time? Show just how relentless these scans are? So I built a live threat map. A globe that lights up every time someone probes my server looking for a way in. The numbers # The server has been online for two days. In that time: 21,600+ total bans 17,400+ in the last 24 hours alone 40+ countries sending probes And that is just one server. How it works # The server runs fail2ban, which detects and blocks malicious connection attempts. Every ban event gets logged with the source IP, which is geolocated and pushed to the frontend in real time. The globe renders each event as a light arc from the attacker’s location to the server. Try it # Open the live threat map - best experienced in Chrome, Edge, or Safari. --- ## Setting up Hugo with TailwindCSS v4 URL: https://daniliants.com/blog/setting-up-hugo-with-tailwindcss-v4/ Hugo’s native TailwindCSS v4 integration through css.TailwindCSS eliminates the need for external build tools. Here’s how to set it up properly. Why this stack? # Hugo handles Markdown content and templating. TailwindCSS handles styling. Together, they produce a fast static site with minimal tooling overhead. The key insight: Hugo v0.128+ includes native TailwindCSS v4 support via css.TailwindCSS. No PostCSS config, no separate build step, no Webpack. The setup # 1. Enable build stats # In your hugo.toml, enable buildStats so TailwindCSS knows which classes are used: [build] [build.buildStats] enable = true 2. Create your CSS entry point # In assets/css/main.css: @import "tailwindcss"; @source "hugo_stats.json"; 3. Process in templates # Use Hugo Pipes to process, minify, and fingerprint: {{ with resources.Get "css/main.css" | css.TailwindCSS }} <link rel="stylesheet" href="{{ .RelPermalink }}"> {{ end }} Production optimizations # In production, add fingerprinting for cache busting and SRI for security. The result: a single CSS file with only the classes you actually use, fingerprinted for immutable caching. --- ## Why I build in public URL: https://daniliants.com/blog/why-i-build-in-public/ There’s a growing movement of founders and builders who share their journey openly - revenue numbers, user metrics, failures, and pivots. I’ve been doing this for years, and here’s why I think it matters. The fear of transparency # Most business owners guard their numbers jealously. Revenue is a secret. Failures are hidden. The public persona is always “crushing it.” But here’s the thing: nobody believes that anymore. Audiences are sophisticated enough to spot performative success, and they’re drawn to authenticity instead. What I share (and what I don’t) # I share project status honestly - including failures and shutdowns. I share the reasoning behind decisions, the lessons from mistakes, and occasionally specific metrics that illustrate a point. What I don’t share: client data, team members’ personal information, or anything that could harm someone else. The unexpected benefits # Trust compounds - People who see your failures trust your successes Accountability - Public commitments are harder to abandon Community - Other builders connect when they see real stories Content - Your journey is the content Getting started # You don’t need to share revenue dashboards on day one. Start small: share what you’re working on, what challenges you’re facing, and what you’re learning. The rest follows naturally. --- ## 5 lessons from a failed startup URL: https://daniliants.com/blog/5-lessons-from-a-failed-startup/ In 2017, I shut down an e-commerce venture after 18 months. It was painful, expensive, and one of the best things that happened to my career. Here’s what I learned. 1. Validate before you build # We spent three months building before talking to a single potential customer. By the time we launched, we’d built features nobody asked for and missed features everyone needed. The fix: Talk to 20 potential customers before writing a single line of code. If you can’t find 20 people willing to talk about the problem, you don’t have a market. 2. Physical products are a different beast # Software is forgiving - you can deploy a fix in minutes. Physical inventory is not. One wrong order and you’re sitting on thousands of euros of unsellable stock. The fix: If you’re a software person entering physical products, partner with someone who has supply chain experience. 3. Market timing matters more than execution # We were building for a market that wasn’t ready. The infrastructure, the consumer behavior, the ecosystem - none of it was there yet. Three years later, competitors succeeded with the exact same model. The fix: You can’t will a market into existence. Read the signals honestly. 4. Burn rate is a countdown timer # Every month you’re spending money without revenue, the clock is ticking. We had a comfortable runway and it made us complacent. Urgency is a feature, not a bug. The fix: Set a hard deadline. If you haven’t found product-market fit by X date, make a decision. 5. Failure is data, not identity # Shutting down felt like a personal failure. It took time to reframe it as information - data points that would inform better decisions. Every successful project I’ve built since carries lessons from this failure. The fix: Document what went wrong while it’s fresh. Future-you will thank present-you. --- ## Pinverno URL: https://daniliants.com/ventures/pinverno/ What it does # A side venture with my business partner Tommi. We make hot sauces for the European market - mild-to-medium, because not everyone wants to suffer. Started from a home kitchen, now building toward retail distribution. This one is pure fun. And the chips sell surprisingly well. --- ## GigaVolt URL: https://daniliants.com/ventures/gigavolt/ What it does # Estonian company, 100% owned by Daniliants Ventures. Handles specific investment and holding activities separate from agency operations. --- ## Immodan URL: https://daniliants.com/ventures/immodan/ What it does # Immonen & Daniliants Oy - a Finnish company I co-founded (50/50) for furnished apartment rentals. Ran it for 8 years, exited in 2026. Learned a lot about property management, Finnish bureaucracy, and why you should always read the fine print. --- ## Daniliants Ventures URL: https://daniliants.com/ventures/daniliants-ventures/ What it does # My main thing. A team of 10+ people across Finland, Estonia, and Ukraine doing growth marketing for startups, e-commerce, and B2B companies. We’ve worked with companies like Oura, Acon, Trombia Technologies, and Fondion. Our clients span SaaS, e-commerce, healthcare, hospitality, and construction across Finland, Estonia, Germany, Bulgaria, the US, and Canada. What we do: SEO strategy and technical audits (my core for 15+ years) Growth marketing plans and execution AI workshops and training (Claude, automation, practical AI for business) Website strategy, redesigns, and conversion optimisation International expansion planning Paid acquisition (Google Ads, paid social) What makes us different # I come from a technical background. I’ve written code, managed servers, and built products. When I say something will work, I’ve usually built something like it before. We don’t sell what we can’t deliver. Work with us → --- ## About URL: https://daniliants.com/about/ The short version # I’ve spent 20 years in Finland and 16 years building a marketing agency. I teach companies how to grow, and increasingly, how to use AI to do it faster. Based in Tallinn, Finnish citizen, technical background. I’d rather show you the data than give you a pitch. The longer version # I grew up between Russia and Finland, spent 20 years in Finland, and moved to Tallinn a few years back. I started programming in 7th grade - Delphi, Linux servers, the works. Studied business and IT at the University of Oulu (didn’t finish - started a company instead). In 2010 I founded Daniliants Ventures, a growth marketing agency. What started as a one-person SEO consultancy is now a team of 10+ people working with clients across 6 countries. We do growth marketing for startups, e-commerce, and B2B companies - mostly in the Nordics, but increasingly international. What I actually do day to day # I’m still hands-on. I lead strategy, review technical SEO audits, scope projects, and run workshops. I write proposals, talk to clients, and occasionally argue with Google’s algorithm. I also build internal tools - our invoicing system, news digest pipeline, and CRM are all things I built with Claude Code because existing tools annoyed me. Teaching # Teaching has become a bigger part of what I do. I run workshops on marketing, AI tools, and digital strategy for companies and organisations across Finland, Estonia, and Georgia. Recent topics: AI for business - how to actually use Claude, not just demo it. Excel analysis, content creation, meeting notes, presentations. Growth marketing - SEO, paid acquisition, conversion optimisation. What works in 2026, what’s a waste of money. LinkedIn & social media - strategy workshops for teams who want results, not vanity metrics. Digital skills for career professionals - practical tools for job search, remote work, and professional development. I teach in English, Finnish, and Russian. If your … --- ## Contact URL: https://daniliants.com/contact/ Best way to reach me depends on what you need. Work with us # If you’re looking for growth marketing, SEO, AI workshops, or training for your team - email me with a brief description of what you need. I’ll get back to you within a few days. Email: artem@daniliants.ventures Prefer to just book a call? Pick a time that works: Book a 60-minute call → Quick questions # For shorter questions, Telegram is fastest. Telegram: @artem_daniliants Where to find me # LinkedIn X / Twitter Bluesky YouTube GitHub Timezone # I’m based in Tallinn, Estonia - EET (UTC+2) / EEST (UTC+3) in summer. I travel frequently, but email and Telegram work regardless of timezone. What to include in your message # If you’re reaching out about a project: What your company does (one sentence is fine) What you need help with Rough timeline and budget if you have one No pitch deck needed. I’d rather have an honest paragraph than a polished PDF. --- ## Uses URL: https://daniliants.com/uses/ Last updated: March 2026. Everything here is what I actually use, not what I’m paid to recommend. Hardware # Workstations # Mac Studio M4 Max (128 GB RAM, 512 GB SSD) - primary home workstation. Overkill for marketing work, perfect for running local LLMs and Docker containers alongside everything else. MacBook Pro 16" M1 Pro (32 GB RAM, 2 TB SSD) - travel laptop. Still excellent. The 2 TB SSD means I carry my entire second brain with me. Mobile # iPhone Air (eSIM only) - primary phone. Went eSIM-only and haven’t looked back. iPhone 12 Pro Max - backup device. iPad Air - reading, light work, travel entertainment. Travel kit # GL.iNet GL-AXT1800 (Flint) - WiFi 6 travel router running AdGuard, VPN, and Tor. Every hotel WiFi goes through this. The Mac Studio runs Content Caching (300 GB) behind it when I’m traveling with multiple devices. Server & homelab # Tank server (Helsinki) # Self-hosted on bare metal in Helsinki, connected via Tailscale mesh to all my devices. Hardware: Intel Core i9-9900K, 128 GB RAM, Ubuntu 24.04 Orchestration: Docker Swarm, managed through Dokploy Running: Ollama - 12 local LLM models (~64 GB). For when I want to run things without sending data to the cloud. FESS + OpenSearch - full-text search with OCR across all my documents (PDFs, spreadsheets, markdown). My entire knowledge base is searchable. Manticore Search - email search index. Faster than Gmail search, works offline. Forgejo - private Git hosting. All my code lives here, not on GitHub. Syncthing - file sync across all devices. Replaces Dropbox/iCloud for anything important. SilverBullet - wiki/note-taking (experimenting). PostgreSQL - shared database for various tools. Uptime Kuma - monitoring. Umami - privacy-respecting analytics for daniliants.com and client sites. Homepage - dashboard for all services. FileBrowser - web file manager for remote access. daniliants.com - this website, self-hosted. Why self-host? Control, privacy, learning. Running your own … ---