The General Data Protection Regulation (GDPR) fundamentally changed how software companies handle user data in the EU. Whether you're building SaaS platforms, mobile apps, or custom software, GDPR compliance isn't optional—it's the law.
What is GDPR?
GDPR is a comprehensive data protection law that applies to any organization processing personal data of EU residents, regardless of where the company is based. Key principles include:
- Lawfulness, fairness & transparency: Be clear about data collection
- Purpose limitation: Only collect data for specified purposes
- Data minimization: Collect only what you actually need
- Accuracy: Keep data up to date and correct
- Storage limitation: Don't keep data longer than necessary
- Integrity & confidentiality: Protect data with appropriate security
When Does GDPR Apply to Your Software?
GDPR applies if you:
- Have EU-based customers or users
- Process personal data of EU residents
- Monitor behavior of EU residents (analytics, tracking)
- Offer goods or services to EU residents
Location of your company doesn't matter—if you serve EU users, GDPR applies.
Technical Implementation Requirements
1. Consent Management
Implement granular cookie consent with opt-in (not opt-out) for non-essential cookies:
interface CookieConsent {
necessary: boolean; // Always true
analytics: boolean; // Requires consent
marketing: boolean; // Requires consent
}
function saveCookieConsent(prefs: CookieConsent) {
const consent = {
preferences: prefs,
timestamp: new Date().toISOString(),
version: '1.0',
};
localStorage.setItem('cookie-consent', JSON.stringify(consent));
// Only initialize after consent
if (prefs.analytics) {
initializeAnalytics();
}
if (prefs.marketing) {
initializeMarketing();
}
}2. Privacy by Design
Build privacy into your architecture from the start:
- Default to minimal data collection
- Encrypt personal data at rest and in transit
- Implement access controls and authentication
- Use pseudonymization where possible
- Design for data portability and deletion
3. Data Subject Rights Implementation
Users have specific rights under GDPR. Your software must support:
// Right to Access
export async function getUserData(userId: string) {
const user = await db.user.findUnique({
where: { id: userId },
include: {
profile: true,
orders: true,
settings: true,
},
});
return {
personalData: user,
exportedAt: new Date().toISOString(),
format: 'JSON',
};
}
// Right to Erasure (Right to be Forgotten)
export async function deleteUserData(userId: string) {
await db.$transaction([
db.userSessions.deleteMany({ where: { userId } }),
db.userLogs.deleteMany({ where: { userId } }),
db.user.delete({ where: { id: userId } }),
]);
// Anonymize instead of delete for audit logs
await db.auditLog.updateMany({
where: { userId },
data: { userId: 'ANONYMIZED', userEmail: 'REDACTED' },
});
}
// Right to Data Portability
export async function exportUserData(userId: string) {
const data = await getUserData(userId);
const csv = convertToCSV(data);
return csv; // Or JSON, XML, etc.
}Audit Trails and Logging
Maintain audit trails for data processing activities:
interface AuditLogEntry {
timestamp: Date;
userId: string;
action: 'CREATE' | 'READ' | 'UPDATE' | 'DELETE';
resource: string;
changes?: Record<string, any>;
ipAddress: string;
userAgent: string;
}
async function logDataAccess(entry: AuditLogEntry) {
await db.auditLog.create({ data: entry });
// Retain audit logs for compliance (typically 2-7 years)
// Auto-delete logs older than retention period
}Data Processing Agreements (DPAs)
When using third-party services (AWS, Google Analytics, Stripe, etc.):
- Ensure they have GDPR-compliant DPAs in place
- Only use processors with adequate data protection
- Document all data processors in your privacy policy
- Verify data transfer mechanisms for non-EU processors
Privacy Policy Requirements
Your privacy policy must include:
- Identity and contact details of data controller
- Data Protection Officer (DPO) contact if required
- Purposes of data processing and legal basis
- Legitimate interests pursued
- Recipients or categories of recipients of data
- International data transfers
- Retention periods
- Rights of data subjects
- Right to withdraw consent
- Right to lodge a complaint with supervisory authority
Security Measures Checklist
Implement these technical safeguards:
- ✅ HTTPS/TLS for all data transmission
- ✅ Database encryption at rest
- ✅ Strong authentication (MFA where appropriate)
- ✅ Role-based access control (RBAC)
- ✅ Regular security audits and penetration testing
- ✅ Incident response plan
- ✅ Regular backups with encryption
- ✅ Secure development practices (OWASP Top 10)
Data Breach Notification
If a breach occurs, you have 72 hours to notify authorities. Prepare:
interface BreachResponse {
detection: {
discoveredAt: Date;
detectedBy: string;
severity: 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL';
};
assessment: {
affectedUsers: number;
dataTypes: string[];
potentialImpact: string;
};
containment: {
actionsTaken: string[];
systemsIsolated: string[];
vulnerabilityPatched: boolean;
};
notification: {
authoritiesNotified: boolean;
authoritiesNotifiedAt?: Date;
usersNotified: boolean;
usersNotifiedAt?: Date;
};
}Common GDPR Mistakes to Avoid
- ❌ Pre-checked consent boxes (must be opt-in)
- ❌ Bundling consent for multiple purposes
- ❌ Making service conditional on unnecessary data
- ❌ Not having a legal basis for processing
- ❌ Sharing data with third parties without consent
- ❌ Not providing easy way to withdraw consent
- ❌ Keeping data longer than necessary
- ❌ Not documenting data processing activities
GDPR Compliance Checklist for Software Teams
- □ Privacy policy published and accessible
- □ Cookie consent banner implemented
- □ Data mapping completed (know what you collect)
- □ Legal basis documented for all processing
- □ User rights endpoints implemented (access, delete, export)
- □ Encryption implemented for personal data
- □ Access controls and authentication in place
- □ Audit logging implemented
- □ DPAs signed with all data processors
- □ Breach notification procedure documented
- □ Regular security audits scheduled
- □ Staff training on GDPR completed
Penalties for Non-Compliance
GDPR fines can reach:
- €10 million or 2% of global revenue (whichever is higher) for certain violations
- €20 million or 4% of global revenue for serious violations
Beyond fines, non-compliance damages trust and reputation.
How Aivoma Ensures GDPR Compliance
At Aivoma, we build GDPR compliance into every project from day one:
- Privacy by design architecture
- Granular consent management systems
- Comprehensive audit trails
- Secure data handling and encryption
- User rights implementation (access, delete, export)
- Regular compliance audits
Need help making your software GDPR-compliant? Our Performance, Quality & Compliance pillar bundles DPIA notes, consent management, WCAG 2.2 remediation, and Core Web Vitals hardening into outcome-based sprints.
Contact us for a compliance assessment and implementation roadmap.
Compliance
GDPR Readiness Checklist (2025 edition)
Step-by-step operator checklist for product, engineering, and legal teams shipping in the EU.
Download the checklistRequires double opt-in so the audit trail stays intact.