

Karaman Restaurant
WebA restaurant dashboard for menus, orders and courier operations.
LOCATION
A Beyoğlu studio building mobile apps, Unity games and web products since 2017, with Turkish payments, KVKK consent and location data solved in live projects.
SHORT ANSWER
AMG Software Studio is a software studio in Beyoğlu, Istanbul, founded in 2017 by computer engineer Ali Mert Güleç. We build iOS and Android apps, Unity mobile games, SaaS and web products. For Turkish clients we have shipped iyzico and Garanti POS payments, KVKK consent records and data for all 81 provinces and 973 districts. Meetings can be in person or online.
The studio runs three lines: mobile apps, mobile games and web. Apps and web have been running since 2017; games are the newest line. In that time we have delivered more than 200 projects. The portfolio keeps client work and our own products apart; FitZen, Viralance and Tilting Jar are among our own.
Most mobile projects ship to iOS and Android from one React Native and Expo codebase, with admin panels in Next.js and a Supabase or Firebase backend. An app rarely comes alone: Karaman got restaurant and admin panels, PeakUp an owner panel, and Garaj an admin panel where the client enters the vehicle catalogue themselves, each built in the same project as the mobile app.
Founder and owner Ali Mert Güleç leads the work directly. Larger projects bring in project-specific hires and dedicated designers and engineers, with team size planned alongside the scope. A simple MVP and a multi-role platform do not need the same team or the same timeline.
In the Karaman.com mobile app, ordering supports iyzico, Garanti POS and cash on delivery side by side. Each provider’s webhook runs in its own function (iyzico-webhook, garanti-webhook). The rule is strict: a successful online payment does not count as restaurant approval, so the order opens as pending and status changes are bound to the authorised role.
Delivery zones are validated server-side as PostGIS polygons and commission is computed on the order total. Existing karaman.com accounts map to a Supabase profile through a bridge function, so nobody signs up again. The project was handed over in September 2026 with source and setup notes.
Not every project takes cards. In PeakUp, cash payments carry no VAT and POS payments use a panel-configurable rate (20%), validated by the same schema on the client and in the database. On ozelokul.com, skipping a payment provider was the client’s call: the platform issues an invoice, the school reports the bank transfer from its panel, and on admin approval the invoice, subscription and audit record update in one transaction.
KVKK, Turkey’s data protection law, often gets reduced to a cookie banner and a disclosure page. In what we build, consent is traceable in the database.
consent_records with the user or anonymous session, the version of the text agreed to, the context (quote, appointment, newsletter, application and others), a timestamp and a revocation time. legal_texts stores each text by key and version, with exactly one current version.kvkk_consents migration plus separate data-export and data-deletion functions serve access and erasure requests.(legal) group.We do not give legal opinions; we build how the software records, stores and deletes consent.
For a product aimed at Türkiye, location and language are two things the schema has to know from day one.
On ozelokul.com, all 81 provinces and 973 districts are seeded and school records reference them as foreign keys, not text. On search, ilike did not handle Turkish: kadikoy returned 0 results and kadıköy returned 1, and anyone typing without diacritics saw no error either. A trigger-maintained search_text column with a trigram index fixed it, and the search term is normalised with the same rules. Calling unaccent inside the query would have bypassed the index, because a functional index needs an IMMUTABLE function.
PDF export has a similar trap: jsPDF’s built-in Helvetica has no ı, İ, ğ, Ğ, ş or Ş. Roboto was subset to the Turkish character ranges, cut from 515 KB to 39 KB per style, and embedded.
The same care shows up elsewhere: the Arayandan mobile app takes province and district data from a Turkey API, every PeakUp layer including cron runs on Europe/Istanbul time, and in Düzce Biz, our own product, the map is constrained to the city of Düzce.
The game line works in Unity and C#, for mobile. Our priority is that levels rest on measurable rules rather than hand-tuned guesswork.
Our own game, Tilting Jar, took seven months: 300 levels, 15 chapters and 12 distinct mechanics. Generation is deterministic; the seed is the level index, so every player gets the same level. It has four-layer procedural music, five languages and is live on the App Store.
For Wardlight, built for Hallowmark, the client wanted proof that every level is solvable. The generator builds a valid Hamiltonian path first and derives arrows, walls and locks from it, so each level is solvable by construction. A sweep of 3200 levels found 3200 solvable, and generating the same levels twice produces byte-identical output. The Wardlight.Core layer has no UnityEngine references, and 40 of 40 EditMode tests pass.
Ads and in-app purchases are scoped per project. We do not guarantee downloads, revenue or retention.
If you are in Istanbul we can meet in person; otherwise we meet online. Send a project or meeting request through the contact form, we review the need and agree a day and time by email. If you have existing code, designs or a competitor app, sharing them before the first call lets us spend it on open questions instead of introductions.
The proposal follows once the scope is clear. Proposals are in USD for every client, whatever the country, and there are no fixed prices or packages on the site. Payment is split into three stages: at the start, when the design is complete and before delivery. Amounts and dates are in the written proposal and every payment is invoiced. In Türkiye, contracts and invoices are issued by AMG Yazılım, the sole proprietorship of Ali Mert Güleç.
The design is shared for your approval before any code is written. App Store, Google Play, server and service accounts are opened in your name, and at delivery you receive the full source code, the design files and every credential.
Yes. The studio is in Beyoğlu, Istanbul; we meet clients in Istanbul in person and everyone else online. Send a meeting request through the form and we agree a day and time together by email. Sharing the product idea, target users and any existing code beforehand makes the first meeting far more useful.
USD. Proposals are prepared in USD once the scope is clear, wherever the client is based, and the site lists no fixed prices or packages. Payment is staged at the start, at design completion and before delivery. Amounts and dates are set out in the written proposal, and invoices in Türkiye are issued by AMG Yazılım.
Both can run in the same product. The Karaman.com mobile app supports iyzico, Garanti POS and cash on delivery together, with each provider’s webhook handled in its own function. Which one you use depends on your own provider agreements. Either way, a successful payment and an approved order are kept as separate states.
Yes. PeakUp’s live app was unusable; it was rewritten from scratch, keeping only the logo and colours, and shipped to iOS and Android as the 2.0.0 update to the existing store listing. The client’s 19-item request list served as acceptance criteria. Before taking over code we review it, and if a takeover does not make sense we say so.
We do not give legal opinions. We build the software side: versioned disclosure and consent texts, records of which text and context each consent was given for, revocation, data export and deletion functions, and automatic deletion when a retention period ends. We have built these pieces in ozelokul.com, Photonza and Macsug; the wording of the texts remains your decision.
No. Karaman.com is a city portal and Düzce Biz is our own product for the city of Düzce; neither is aimed at Istanbul. We also work with clients abroad: of our 11 Upwork reviews, five come from the USA, three from Türkiye, one from Canada and one from Hong Kong. Meeting times are planned around the client’s time zone.
You do. App Store and Google Play developer accounts, servers and service accounts are opened in your name. At delivery we hand over the full source code, the design files and every credential.
No. We design the user screens and the admin panel screens for your project and build them from scratch, so the panel follows your workflow.
RELATED STUDIO NOTES


A restaurant dashboard for menus, orders and courier operations.


Fitness studio management and member tracking in one app.


A private-school, college and university discovery platform with a parent centre and school panels.


A reverse marketplace: the buyer posts the listing, sellers make the offers.


Local places, offers and events in one city companion.


Escape a dark dungeon with one continuous line of light. Lantern flames are your lives.
It starts with an intro call. We define the scope and timeline together, then send you a written proposal.
hello@amgsoftwarestudio.com