EngerekTech platform
Company site, AI-assisted blog and internal portal on a self-hosted stack.
- Role
- Full-stack engineering and operations
- Year
- 2026
- Links
- engerektech.com


Overview
- Angular SSR
- Spring Boot
- Java 25
- PostgreSQL
- Docker
- GitHub Actions
- nginx
- Claude API
The public website of my studio and the portal the team works in, built on Angular SSR and Spring Boot and run on a Linux server I manage. It publishes a bilingual blog with AI-assisted writing and translation, and gives the team analytics, a tester mailing tool and the question-bank editor for our apps.
A studio needs a site that sells, a blog that keeps it visible and an internal tool for everything else. I wanted all three on one codebase, cheap to run on a small server and easy to change every day.
From push to production
- 1git pusha commit on main starts the Build & deploy workflow
- 2GitHub Actionsbuilds the Angular SSR and Spring Boot images and pushes them to GHCR
- 3Linux serverpulls the new images over SSH and restarts them with Docker Compose
- 4nginx + TLSroutes the site, the API and analytics; Flyway migrates the database on start
A blog that writes and translates itself, with a human in charge
A scheduled job scans tech news every hour. When the team picks a story, the Claude API researches it and writes a sourced draft, a 15-point SEO check fixes what is missing and a branded cover image is drawn. Nothing is published without review.
Every published post gets an English version: a job translates one post a minute with structured output, keeps links and Markdown intact, maps internal links to their English pages and re-translates when the Turkish text changes, detected by a content hash.
Built to be found by people and by AI
- Server-side rendering, per-page metadata, hreflang pairs and a generated sitemap for both languages.
- FAQ and article structured data derived from the post content.
- WebMCP: the contact form and site tools are described so browser agents can use them; ARD and AI-catalog files point agents to an agent skill.
- Blog search, reading progress and share tools, in both languages.
The portal the team works in
- Google sign-in with an allowlist.
- Site visits from a self-hosted, cookieless Umami instance, for the last day, 7 days, 30 days or all time.
- Tester mailings whose release notes are written for users from the full commit history of each app.
- Push notifications to app users, and the question bank and subject catalog of KPSS Düello, published to Firestore.
Operations
- Runs on 1 vCPU and 2 GB of RAM with Docker Compose, host nginx and Let's Encrypt.
- Company email on a separate server with Mailu (Postfix, Dovecot, Rspamd, Roundcube), SPF, DKIM and DMARC, relayed through Amazon SES; a small forwarder rewraps shared mailboxes so they reach one inbox.
- Errors go to Sentry; uptime is checked by a scheduled workflow.
What I took away
- A small server goes a long way when the build does the heavy lifting.
- AI features earn their place when there is a clear review step and a cheap way to redo the work.