{"id":988637,"date":"2026-10-06T17:00:00","date_gmt":"2026-10-06T17:00:00","guid":{"rendered":"https:\/\/croncodestudio.com\/en\/?post_type=croncode_post&#038;p=988637"},"modified":"2026-09-08T22:58:43","modified_gmt":"2026-09-08T22:58:43","slug":"security-questions-before-you-sign","status":"publish","type":"croncode_post","link":"https:\/\/croncodestudio.com\/en\/journal\/security-questions-before-you-sign\/","title":{"rendered":"Security Questions Before You Sign"},"content":{"rendered":"<div class=\"vgblk-rw-wrapper limit-wrapper\">\n<p>Security questions belong in the same week as the quote, not after the first production key leaks into Slack. You are hiring a team that will see your repo, your store, and maybe your users. At <a href=\"\/en\/\">Croncode<\/a> we expect to answer these. We also ask them of you. This is not a pentest report. It is the minimum paper. Handover later uses the same list: <a href=\"\/en\/journal\/how-to-handover-a-codebase-to-a-studio\/\">handover<\/a>.<\/p>\n<blockquote class=\"croncode-kisa-cevap\">\n<p>Before you sign, ask where secrets live, who holds Apple roles, what data classes exist, and how access ends. A vibe and an NDA are not a security review.<\/p>\n<\/blockquote>\n<h2>What should you ask about accounts?<\/h2>\n<ol>\n<li>Who is Apple Account Holder? <a href=\"\/en\/journal\/who-owns-the-app-store-account\/\">Ownership<\/a>.<\/li>\n<li>Where do signing certificates and push keys live?<\/li>\n<li>Which company emails have Git and host admin?<\/li>\n<li>What is the offboarding step when a person leaves?<\/li>\n<\/ol>\n<p>Istanbul diligence includes entity and overlap: <a href=\"\/en\/journal\/hiring-an-app-team-in-istanbul-what-to-check\/\">hiring checklist<\/a>. References: <a href=\"\/en\/journal\/how-to-check-istanbul-studio-references\/\">check references<\/a>. We are Croncode LLC in Albuquerque, not croncodetech.com. <a href=\"\/en\/journal\/croncode-llc-official-identity-not-croncodetech\/\">Identity<\/a>.<\/p>\n<h2>What should you ask about data?<\/h2>\n<table>\n<thead>\n<tr>\n<th>Class<\/th>\n<th>Ask<\/th>\n<th>Related<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Photos, journals, bookings<\/td>\n<td>Where stored, who can export<\/td>\n<td><a href=\"\/en\/journal\/data-deletion-requests-in-small-apps\/\">Deletion<\/a><\/td>\n<\/tr>\n<tr>\n<td>Analytics IDs<\/td>\n<td>Which SDK, why<\/td>\n<td><a href=\"\/en\/journal\/choosing-analytics-without-surveillance\/\">Analytics<\/a><\/td>\n<\/tr>\n<tr>\n<td>Model prompts<\/td>\n<td>Logged or not<\/td>\n<td><a href=\"\/en\/journal\/how-to-scope-an-ai-feature-that-can-fail-safe\/\">Fail-safe AI<\/a><\/td>\n<\/tr>\n<tr>\n<td>Staff tools<\/td>\n<td>Same binary or not<\/td>\n<td><a href=\"\/en\/journal\/client-app-and-internal-tool-same-codebase-risks\/\">Shared codebase<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Creep line: <a href=\"\/en\/journal\/ai-personalization-without-creepiness-where-consumer-apps-cross-the-line\/\">personalization<\/a>. Brief: <a href=\"\/en\/journal\/how-to-brief-an-ai-app-studio\/\">AI brief<\/a>.<\/p>\n<h2>When is an NDA enough?<\/h2>\n<p>Never as the only control. An NDA does not rotate a key. It does not remove a personal Apple Admin. Put access and deletion clocks in the statement of work. Commercial shape: <a href=\"\/en\/journal\/fixed-price-vs-retainer-for-app-work\/\">fixed price vs retainer<\/a>. Quote packet: <a href=\"\/en\/journal\/what-to-send-when-requesting-a-software-quote\/\">what to send<\/a>.<\/p>\n<p>People who will be on paper: <a href=\"\/en\/team\/goktug-unver\/\">Goktug Unver<\/a>, <a href=\"\/en\/team\/yusufhan-sokur\/\">Yusufhan Sokur<\/a>, <a href=\"\/en\/team\/ozgur-ismet-ozkan\/\">Ozgur Ismet Ozkan<\/a>. Do not invent extra staff. Roster: <a href=\"\/en\/journal\/meet-the-croncode-team\/\">meet the team<\/a>.<\/p>\n<h2>How do consumer apps change the questions?<\/h2>\n<p>Ask whether the studio\u2019s own apps follow the same rules. Ours are separate listings: <a href=\"\/en\/app\/yourstyle-ai-stylist-outfit\/\">YourStyle<\/a>, <a href=\"\/en\/app\/numira-navigate-lifes-choices-with-numira\/\">Numira<\/a>, <a href=\"\/en\/app\/spylie-uncover-the-truth-with-spylie\/\">Spylie<\/a>, <a href=\"\/en\/app\/luviport-flawless-journeys-the-premium-experience\/\">Luviport<\/a>. We do not share a client user graph with them. Catalog: <a href=\"\/en\/journal\/what-croncode-builds-mobile-ai-human-centered\/\">what Croncode builds<\/a>. What we refuse: <a href=\"\/en\/journal\/what-croncode-will-not-build\/\">will not build<\/a>.<\/p>\n<h2>What answers should make you walk?<\/h2>\n<ul>\n<li><strong>\u201cWe use a shared Apple ID on Slack\u201d:<\/strong> walk.<\/li>\n<li><strong>\u201cProduction dump in the ticket\u201d:<\/strong> walk.<\/li>\n<li><strong>\u201cThe intern has Admin everywhere\u201d:<\/strong> walk.<\/li>\n<li><strong>\u201cWe will add deletion after launch\u201d:<\/strong> walk if you have accounts.<\/li>\n<\/ul>\n<p>Choose a studio: <a href=\"\/en\/journal\/how-to-choose-a-custom-software-studio-for-ios\/\">choose an iOS studio<\/a>. Models: <a href=\"\/en\/journal\/software-studio-vs-freelancer-vs-agency\/\">studio vs freelancer<\/a>. Hire: <a href=\"\/en\/hire-software-studio\/\">hire<\/a>. Custom: <a href=\"\/en\/custom-software\/\">custom software<\/a>. Contact: <a href=\"\/en\/contact-us\/\">contact<\/a>. Journal: <a href=\"\/en\/journel\/\">\/en\/journel\/<\/a>. Shipping: <a href=\"\/en\/journal\/how-croncode-ships-ai-consumer-apps-from-istanbul\/\">how we ship<\/a>.<\/p>\n<h2>What should a kickoff demo prove about security?<\/h2>\n<p>A staging build, no production secrets on screen, and a named vault. Sprint demo: <a href=\"\/en\/journal\/what-a-sprint-demo-should-show-a-client\/\">sprint demo<\/a>. Support mailbox on a company domain: <a href=\"\/en\/journal\/support-email-as-a-product-surface\/\">support<\/a>. Site host access is a separate list: <a href=\"\/en\/journal\/php-cpanel-deploys-for-product-marketing-sites\/\">cPanel<\/a>.<\/p>\n<p>We will not claim we are \u201cbank grade\u201d as a slogan. We will write where keys live. Paywalls and privacy labels are part of this week, not decoration: <a href=\"\/en\/journal\/in-app-paywalls-that-do-not-lie\/\">honest paywalls<\/a>. Ask how backups are encrypted and who can restore them. Ask whether staging uses a copy of production users. If the answer is \u201cwe use the live database to test,\u201d stop. A small consumer app can still leak a closet photo or a decision journal. Size is not a shield. Write the restore test as a rehearsal, the same way you rehearse deletion.<\/p>\n<p>Ask who can export a user. Ask whether that export is logged. A small app still needs a name on that action. If the answer is \u201canyone with the admin site,\u201d tighten it before you collect the first closet photo or the first decision journal. Access is a product decision, not a later IT ticket. Write that owner name in the SOW.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Do I need a security questionnaire PDF?<\/h3>\n<p>A short written list is enough for a small consumer app. A long PDF helps if you already have compliance staff. Empty forms waste both sides.<\/p>\n<h3>Can the studio use personal laptops?<\/h3>\n<p>Ask about disk encryption, lock screens, and whether production keys sit in chat. The laptop brand is not the question.<\/p>\n<h3>Will you sign our vendor security addendum?<\/h3>\n<p>We can review a reasonable addendum. We will not sign fiction about a 200-person SOC team we do not have.<\/p>\n<h3>What about payment card data?<\/h3>\n<p>Prefer Apple and established processors. Do not ask a small studio to store PAN. Ecommerce: <a href=\"\/en\/journal\/ecommerce-app-development-what-moves-revenue\/\">revenue<\/a>.<\/p>\n<h3>Who answers these at Croncode?<\/h3>\n<p>The founder on the contract, usually <a href=\"\/en\/team\/goktug-unver\/\">Goktug Unver<\/a>, with engineering named in the SOW.<\/p>\n<\/div>\n<p><!-- .vgblk-rw-wrapper --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Security questions to ask a software studio before you sign: secrets, Apple roles, data classes, and who can still log in after the project ends.<\/p>\n","protected":false},"featured_media":988638,"template":"","croncode_category":[48],"croncode_author":[47],"class_list":["post-988637","croncode_post","type-croncode_post","status-publish","has-post-thumbnail","hentry","croncode_category-studio","croncode_author-yusufhan-sokur"],"_links":{"self":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_post\/988637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_post"}],"about":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/types\/croncode_post"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/media\/988638"}],"wp:attachment":[{"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/media?parent=988637"}],"wp:term":[{"taxonomy":"croncode_category","embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_category?post=988637"},{"taxonomy":"croncode_author","embeddable":true,"href":"https:\/\/croncodestudio.com\/en\/wp-json\/wp\/v2\/croncode_author?post=988637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}