Terms for The Good Habits iOS app

Last updated: August 24, 2026

These Terms of Use (“Terms”) govern your use of The Good Habits iOS application (“App”), developed and operated by Viorel Petrea (“we,” “us,” or “our”). By downloading or using the App, you agree to be bound by these Terms. If you do not agree, do not use the App.


1. Eligibility

You must be at least 13 years old to use the App (or 16 if you are located in the European Union). By using the App you confirm that you meet this requirement. If you are under 18, you confirm that a parent or guardian has reviewed and agreed to these Terms on your behalf.


2. Your Account

The App uses Sign in with Apple for authentication. You are responsible for keeping your Apple ID secure. We are not responsible for any loss or damage arising from unauthorised access to your account.

You may only create one account per Apple ID. You may not impersonate another person or use a name that is offensive or misleading.


3. Subscriptions & Payments

Free Plan

The App is free to download and use with the following limits:

  • Up to 4 active habits at a time
  • Up to 10 friends
  • Last 2 completed habits in your archive
  • Check-in history for the last 30 days

Premium Plan

A Premium subscription unlocks unlimited habits, unlimited friends, full archive access, and complete check-in history. Premium is available as:

  • Annual: $39.99 per year, with a 14-day free trial for new subscribers
  • Monthly: $6.99 per month

Prices are displayed in your local currency at the time of purchase and may vary by region.

Billing & Auto-Renewal

Subscriptions are billed through your Apple ID account via the App Store. Payment is charged to your Apple ID at confirmation of purchase. Subscriptions automatically renew at the end of each period unless cancelled at least 24 hours before the renewal date. Your account will be charged for renewal within 24 hours prior to the end of the current period.

Free Trial

The Annual plan includes a 14-day free trial for users who have not previously subscribed to Premium. The trial converts to a paid subscription automatically at the end of the trial period unless cancelled beforehand. Only one free trial is available per Apple ID.

Cancellation

You can cancel your subscription at any time through iOS Settings → Your Name → Subscriptions. Cancelling stops future renewals; you retain Premium access until the end of the current billing period. We do not offer refunds for unused portions of a subscription period, except where required by applicable law.

Restore Purchases

If you reinstall the App or use a new device, tap “Restore purchase” on the paywall screen to reinstate your active subscription.

Price Changes

We may change subscription prices at any time. Apple will notify you of any price increase before it takes effect and ask for your consent to continue. If you do not consent, your subscription will be cancelled at the end of the current period.


4. User-Generated Content

The App allows you to create and share content including habit check-ins, notes, photos, and wall posts (“User Content”). By posting User Content you:

  • Confirm you have the right to share it
  • Grant us a limited, non-exclusive licence to store and display it within the App to you and the friends you have connected with
  • Agree that your User Content will not violate these Terms or any applicable law

We do not claim ownership of your User Content. You retain all rights to it.

Prohibited Content

You must not post content that:

  • Is unlawful, harmful, threatening, abusive, harassing, defamatory, or obscene
  • Infringes any third-party intellectual property or privacy rights
  • Contains spam, malware, or deceptive material
  • Depicts or promotes violence, self-harm, or illegal activity

We reserve the right to remove any content that violates these Terms and to terminate the accounts of repeat offenders.


5. Acceptable Use

You agree not to:

  • Reverse-engineer, decompile, or attempt to extract the App’s source code
  • Use the App to harass, stalk, or harm other users
  • Attempt to gain unauthorised access to other users’ data or our backend systems
  • Use automated tools (bots, scrapers) to interact with the App
  • Resell or sublicence access to the App or Premium features
  • Use the App for any commercial purpose without our written consent

6. Intellectual Property

The App, including its design, code, graphics, and content (excluding User Content), is owned by Viorel Petrea and protected by copyright, trademark, and other intellectual property laws. You are granted a limited, non-exclusive, non-transferable licence to use the App for personal, non-commercial purposes in accordance with these Terms.

Nothing in these Terms transfers any ownership of our intellectual property to you.


7. Privacy

Our Privacy Policy explains how we collect and use your personal data and is incorporated into these Terms by reference. By using the App you agree to our Privacy Policy.


8. Third-Party Services

The App uses third-party services including Apple (authentication and payments), Google Firebase (data storage), and Apple CloudKit (photo storage). Your use of the App is also subject to their respective terms and policies. We are not responsible for the practices of these third parties.


9. Disclaimers

The App is provided “as is” and “as available” without warranties of any kind, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement.

We do not warrant that:

  • The App will be uninterrupted, error-free, or free of viruses
  • Any data stored in the App will never be lost or corrupted
  • The App will produce any particular health, fitness, or behavioural outcome

The App is a habit-tracking tool only. It is not a medical device and does not provide medical, psychological, or professional advice.


10. Limitation of Liability

To the maximum extent permitted by applicable law, Viorel Petrea shall not be liable for any indirect, incidental, special, consequential, or punitive damages, including but not limited to loss of data, loss of profits, or loss of goodwill, arising out of or in connection with your use of (or inability to use) the App.

In no event shall our total aggregate liability to you exceed the amount you paid us in the twelve months preceding the claim, or €10 (whichever is greater).

Some jurisdictions do not allow the exclusion or limitation of certain warranties or liability, so some of the above may not apply to you.


11. Termination

We may suspend or terminate your access to the App at any time, without notice, if you breach these Terms or if we discontinue the App. You may stop using the App at any time.

On termination, your licence to use the App ends immediately. Sections 6, 9, 10, and 12 survive termination.


12. Governing Law

These Terms are governed by the laws of Romania, without regard to conflict-of-law principles. Any dispute arising from these Terms shall be subject to the exclusive jurisdiction of the courts of Romania, unless applicable consumer-protection laws in your country require otherwise.


13. Changes to These Terms

We may update these Terms from time to time. When we do, we will update the “Last updated” date at the top. For material changes we will notify you within the App. Continued use of the App after changes take effect constitutes your acceptance of the updated Terms.


14. Contact

If you have any questions about these Terms, please contact:

Viorel Petrea
📧 petrea_viorel@yahoo.com

Privacy policy for The Good Habits iOS app

Last updated: August 24, 2026

The Good Habits (“we,” “us,” or “our”) is built and operated by Viorel Petrea. This Privacy Policy explains what information we collect, why we collect it, and how we protect it when you use The Good Habits iOS app.

By using the app you agree to the practices described in this policy. If you do not agree, please do not use the app.


1. Information We Collect

Account Information

We use Sign in with Apple for authentication. When you sign in, Apple shares:

  • A unique, stable Apple User ID (used only to identify your account)
  • Your name — only on the first sign-in; we store it so your profile has a default display name
  • An email address or Apple’s private relay address (only if you choose to share it)

Your Apple credentials are stored securely in your device’s Keychain. We never store your Apple ID password.

Habit & Check-In Data

When you create and track habits, we store:

  • Habit name, emoji, summary, start and end dates
  • Allowed and not-allowed rules you define
  • Daily check-in records (date, optional text note, optional photo)
  • Missed-day records and notes
  • Streak and consistency statistics derived from your check-ins

Profile Information

  • Display name and initials you set during onboarding
  • Profile color you choose
  • Optional tagline
  • Optional profile photo

Social & Friends Data

  • Your unique friend code (e.g. “ALEX42”) — visible only to people you share it with
  • Friend connections you establish by exchanging codes
  • Friend requests (sent and received)
  • Habit membership — which of your habits you share with which friends

Wall Posts

When you post to a shared habit’s wall:

  • Your display name, initials, and color are shown alongside the post
  • Post text and optional photo are stored
  • Reactions (fire, muscle, heart, party) and counts are stored

Subscription Status

We record whether you have an active Premium subscription. This is verified in real time through Apple’s StoreKit framework. We never see or store your payment card details — all billing is handled entirely by Apple.

Device & Technical Data

To protect our backend from unauthorized access we use Firebase App Check, which generates a device attestation token. This token confirms that requests come from a legitimate copy of the app. It contains no personal information and is not used for advertising or tracking.


2. Information We Do NOT Collect

  • Location data — we never request or access your device location
  • Contacts — we use a manual friend-code system; we never scan your address book
  • Advertising identifiers (IDFA) — we run no ads and do no ad tracking
  • Analytics — we do not use Firebase Analytics or any other behavioral analytics SDK
  • Microphone or audio data

3. How We Use Your Information

  • Provide the service — sync your habits, check-ins, and social features across devices
  • Display your profile — show your name and avatar to friends inside shared habits
  • Enable social features — connect you with friends, show the wall, and deliver reactions
  • Verify your subscription — unlock Premium features if you subscribe
  • Secure the backend — block unauthorized API access via App Check

We do not sell, rent, or share your personal data with third parties for advertising or marketing purposes.


4. Third-Party Services

Apple (Sign in with Apple & StoreKit)

Authentication and all payment processing are handled by Apple. Apple’s Privacy Policy applies: apple.com/legal/privacy

Google Firebase (Firestore & App Check)

Your habit, social, and wall data is stored in Cloud Firestore, a Google Firebase service. Firebase App Check is used to verify device integrity. Google’s Privacy Policy applies: policies.google.com/privacy

Firebase data is stored in Google’s US data centers. If you are located in the EU/EEA, this constitutes a transfer of data to the United States under Google’s Standard Contractual Clauses.

Apple CloudKit

Profile photos and check-in photos are stored in Apple CloudKit, which is tied to your Apple ID and subject to Apple’s iCloud Terms and Privacy Policy.


5. Photos & Camera Access

The app requests access to your photo library or camera only when you explicitly tap to attach a photo to a check-in or set a profile photo. Photos are stored in CloudKit (profile) or Firebase Firestore / CloudKit (check-in photos) and are visible only to members of the habit you posted them in.

You can revoke photo access at any time in iOS Settings → The Good Habits → Photos.


6. Data Retention

We retain your data for as long as your account is active. If you delete your account, your habits, check-ins, posts, and profile are permanently deleted from our servers within 30 days. Keychain credentials are removed immediately on device.

Subscription records are maintained by Apple and governed by their policies.


7. Children’s Privacy

The Good Habits is not directed at children under 13 (or under 16 in the EU). We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us and we will delete it promptly.


8. Your Rights

Depending on where you live you may have the right to:

  • Access the personal data we hold about you
  • Correct inaccurate data
  • Request deletion of your data (“right to be forgotten”)
  • Object to or restrict processing
  • Data portability

To exercise any of these rights, or to request account deletion, contact us at the address below. We will respond within 30 days.


9. Security

We take reasonable technical and organizational measures to protect your data, including:

  • All data in transit is encrypted via HTTPS/TLS
  • Firestore security rules restrict access so users can only read data they are authorized to see
  • Firebase App Check blocks non-app clients from accessing our backend
  • Sensitive credentials are stored in the iOS Keychain, not in plain storage

No method of transmission over the internet or electronic storage is 100% secure. We cannot guarantee absolute security.


10. Changes to This Policy

We may update this Privacy Policy from time to time. When we do, we will update the “Last updated” date at the top. For significant changes we will notify you inside the app. Continued use of the app after changes constitutes acceptance of the updated policy.


11. Contact Us

If you have questions about this Privacy Policy or want to request data deletion, please contact:

Viorel Petrea
📧 petrea_viorel@yahoo.com

Privacy Policy for Astrobit

Last updated: July 9, 2026

Astrobit (“the App”) is a mobile game developed by Viorel Petrea. This Privacy Policy explains what information is collected when you play Astrobit and how it is used.

⸻

1. Information We Collect

Data Stored Locally on Your Device

Astrobit saves the following data directly on your device using Apple’s standard UserDefaults system. This data never leaves your device and is not accessible to us:

• Best score and best bit count from your runs

• Total bits collected across all sessions

• Number of times your player has died (used to decide when to show an ad)

• Your game settings and preferences

Data Collected Automatically via Third-Party SDKs

The App uses the following third-party services that may collect data independently:

Google AdMob (Advertising)

Astrobit displays banner and interstitial advertisements provided by Google AdMob. AdMob may collect:

• Advertising identifiers (IDFA/GAID)

• IP address

• Device information (model, OS version)

• General location (country/region derived from IP)

• Ad interaction data (impressions, clicks)

This data is used to serve relevant advertisements. You may limit ad tracking through your device’s privacy settings (Settings → Privacy & Security → Tracking).

Firebase Analytics

The App uses Firebase Analytics to understand how players interact with the game. The following in-game event is logged:

• player_death — recorded each time your character dies, along with a running death count

Firebase Analytics collects standard analytics data including device identifiers, app version, and session information.

⸻

2. Advertising and Tracking

Astrobit contains advertising and uses tracking technologies operated by Google. Depending on your region, you may be shown a consent prompt (via Google’s User Messaging Platform) before any personalized advertising or tracking begins. You can withdraw or change your consent at any time through the in-app settings.

If you opt out of personalized ads, you will still see ads, but they will not be tailored to your interests.

⸻

3. Data Sharing

We do not sell your personal data. Data collected by Google AdMob and Firebase is governed by Google’s own privacy policy: https://policies.google.com/privacy

⸻

4. Children’s Privacy

Astrobit is not directed at children under the age of 13. We do not knowingly collect personal information from children. If you believe a child has provided personal data through the App, please contact us and we will take steps to remove it.

⸻

5. Data Retention

Locally stored game data (scores, settings) remains on your device until you delete the App. Data collected by Firebase and Google AdMob is retained according to Google’s data retention policies.

⸻

6. Your Rights

Depending on your location, you may have rights including:

• Access — request a copy of data held about you

• Deletion — request deletion of your data

• Opt-out — opt out of personalized advertising via your device settings or the in-app consent prompt

To exercise any of these rights, contact us at the email below.

⸻

7. Changes to This Policy

We may update this policy from time to time. The “Last updated” date at the top of this page reflects the most recent revision. Continued use of the App after any changes constitutes acceptance of the updated policy.

⸻

8. Contact

If you have any questions about this Privacy Policy, please contact:

Viorel Petrea

petrea_viorel@yahoo.com

Astrobit – Run. Jump. Outrun the Void.

Astrobit — Update Live

Astrobit Just Got Bigger. The Void Didn’t.

ORBIT is back — and this time, space has more ways to end you. The latest update to Astrobit is the biggest yet, adding three new game modes, a full Story Mode, and a universe that changes the longer you survive. The endless runner you knew is still here. It just has a lot more teeth now.


Four Ways to Run

Endless is still the classic — no clock, no lives, just you and the Void. But now you can choose your fight:

Endless

No clock, no lives. The original fight, unchanged — just you and the Void, for as long as you can last.

Survival

Three lives. Each time the Void catches you, it gets permanently faster. Lose all three and the run is over. Every close call has weight.

Time Attack

90 seconds, and the clock is merciless. Combo chains add time back. Getting caught costs you some. Play greedy or play safe — neither is comfortable.

Story Mode

An eight-chapter journey from the NEBULA to the heart of the VOID REALM. Each chapter has an objective — survive 60 seconds, chain three combos, reach a new zone — and earns up to three stars. It’s structured. It’s brutal. It’s the best way to actually learn what this game can do.


The Void Has Moods Now

The Void lurks. The Void hungers. The Void is furious.

The Void now shifts between three behavioral states. When it’s lurking, it’s patient — almost lulling. When it’s furious, it surges faster than you expect. Watch the color of the glow. It tells you everything.

  • Lurking — patient, slow, almost lulling.
  • Hungering — picking up pace, the gap starts to close.
  • Furious — surges faster than you expect. This is where runs end.

The Universe Changes Around You

Score climbs, the world shifts. Each zone looks different, plays different, and demands more.

Zone Unlocks at What changes
Nebula Start Deep space, purple dark, familiar enough.
Asteroid Belt 1,000 pts Platforms crumble faster.
Solar Core 2,500 pts Hazards multiply, the sky burns gold.
Void Realm 5,000 pts No nebula, no color — just you and something that wants you gone.

Still One Tap. Still Ruthless.

Everything that made the original addictive is still here — the new modes and zones layer on top of a core that already worked:

  • Short hop on a quick release
  • Combos that push the Void back
  • Crumbling platforms
  • Escalating speed

You can jump in for a 90-second Time Attack run or spend an hour chasing three-star story clears. Either way, the Void is waiting.


Found a bug or have feedback? Reach out at petrea_viorel@yahoo.com — every message gets read and we respond within 48 hours.

Privacy Policy – Flying Zuzzi

Privacy Policy – Flying Zuzzi



Last updated: June 23, 2026



This Privacy Policy describes how Flying Zuzzi (“the app”) handles information when you use it.



Information Collected



Flying Zuzzi does not directly collect personal information. However, third-party services integrated into the app may collect certain data automatically:



• Device Identifier (IDFA) – used for advertising purposes


• Coarse Location – inferred from your IP address for ad targeting


• App Usage Data – how you interact with the app (sessions, events, gameplay)


• Crash Data – technical information to help improve app stability



Third-Party Services



The app uses the following third-party services, each with their own privacy practices:



• Google AdMob – displays ads in the app. Google may use your device identifier and usage data to show personalized ads. See Google’s Privacy Policy for details.


• Firebase Analytics – collects anonymous usage and crash data to help improve the app. See Google’s Privacy Policy for details.



Advertising and Tracking



The app requests permission to track your device using Apple’s App Tracking Transparency framework. If you grant permission, your IDFA may be used by Google AdMob to show you personalized ads. If you deny permission, non-personalized ads will be shown instead.



You can change your tracking preference at any time in: Settings → Privacy & Security → Tracking → Flying Zuzzi



Data Sharing



We do not sell your personal data. Data is shared only with the third-party services listed above as necessary to operate the app.



Children’s Privacy



This app is not directed to children under the age of 13. We do not knowingly collect personal information from children.



Changes to This Policy



We may update this Privacy Policy from time to time. Any changes will be posted on this page with an updated date.



Contact



If you have questions about this privacy policy, contact us at: petrea_viorel@yahoo.com

Flying Zuzzi Rebuild v2

Hello everyone,

Back in 2015, I released my very first mobile game: Flying Zuzzi.

It was a small project, built with passion, curiosity, and a desire to learn game development. Like many first projects, it wasn’t perfect, but it represented something important: the joy of creating something from nothing.

More than a decade later, I’m excited to announce Flying Zuzzi Rebuild v2.

This is not just a remake. It’s a complete rebuild of the original game using modern tools, new ideas, and the help of AI-assisted development. Most importantly, it’s a return to something I genuinely enjoy: building apps and games.

This time, I’m committed to telling the complete story and releasing all planned episodes of Flying Zuzzi.

The Story

In a small kingdom filled with fluffy and colorful animals, King Zantinii ruled peacefully with his twin children, Princess Zuzzi and Prince Zantos.

Because Zuzzi was born first, she was the rightful heir to the throne. However, her brother never accepted this. Jealous and ambitious, Zantos spent years plotting against his sister.

When King Zantinii passed away, Zantos seized control of the kingdom. He abandoned Zuzzi in the High Gardens of the Rocky Mountains and claimed the throne for himself.

Alone and far from home, Zuzzi begins a journey that will test her courage, lead her to new friends, and ultimately determine the fate of the kingdom.

Episode I: The Beginning of an Adventure

The adventure starts with Zuzzi’s escape.

Players must guide Zuzzi through forests, avoid obstacles, and fly as far as possible while making their way toward freedom.

Simple to play, but challenging to master, Episode I lays the foundation for the adventures ahead.

Episode II: Friends Join the Adventure

No hero succeeds alone.

In Episode II, Zuzzi is joined by her loyal friend Coco. Together they will face new challenges, discover new locations, and continue their quest back to the kingdom.

Episode III: Battle for the Throne

The journey leads to its inevitable conclusion.

Zuzzi must confront Zantos and fight for her rightful place as ruler of the kingdom.

The details remain secret for now, but this chapter will bring the story full circle.

Why Rebuild Flying Zuzzi?

The original Flying Zuzzi was my first step into game development.

Flying Zuzzi Rebuild v2 is about revisiting that idea with years of experience, better technology, and a renewed passion for creating software. AI has helped accelerate development, but the heart of the project remains the same: building fun games and bringing a childhood-inspired story to life.

Support

If you encounter any issues, have suggestions, or simply want to share feedback, please use the support information provided on this page.

Your feedback helps make Flying Zuzzi better and supports the development of future episodes.

What’s Next?

This rebuild is only the beginning.

Development updates, screenshots, behind-the-scenes posts, and future episode announcements will be shared here as the project evolves.

Thank you for being part of the journey.

See you in the skies,

Sitecore® 10 Certified Developer

I am thrilled to announce that I have officially passed the Sitecore 10 Developer Certification! 🎓 This achievement is a testament to my hard work, commitment, and dedication to providing top-notch digital solutions for my clients.

As a Sitecore Certified Developer, I possess the knowledge and skills necessary to build and maintain robust Sitecore solutions that drive business growth and deliver exceptional customer experiences. I am excited to apply this expertise to help my clients achieve their digital goals.

I would like to thank the Sitecore community for providing valuable resources and support throughout my journey towards certification. I look forward to continuing to learn and grow as a Sitecore developer and contribute to the community.

PowerShell ISE in Sitecore to populate data in your meta tags

Hello guys,

Today I wrote my first PowerShell script and it felt amazing. The power of this module in Sitecore is pure genius. It lets you handle large bulk updates in the matter of seconds.

One of our requirements was to complete the Meta Tags of the entire website.

If you can imagine to go page by page it could take a day or more for one person and the risk of doing something wrong increases with the page number.

Luckily we have PowerShell ISE and it works like a charm.

<$homeItem = Get-Item -Path 'master:\content\home'       $allPagesThatHaveMetaTags = $homeItem | Get-ChildItem -recurse | Where-Object {$_.MetaDescription -ne $null }

In the allPagesThatHaveMetaTags we have all items that contain the field the MetaDescription.

Now it a foreach we can go item by item and update the MetaDescription field:

$allPagesThatHaveMetaTags | ForEach-Object {
$pageDescription = 'default meta tag description in case of no article body'
$metaDescriptionItem = 'default text'                                
if($_["Text"] -ne $null -and $_["Text"] -ne '')
{
$pageDescription = $_["Text"];
$metaDescriptionItem = 'Text field on the same item';
}

$_.Editing.BeginEdit()
$_["MetaDescription"] = $pageDescription
$_.Editing.EndEdit()

Write-Host 'Item with name ' + $_.Name + 'and ID' + $_.ID + 'has been updated with metadescription from ' + $metaDescriptionItem
}

Whith the &metaDescriptionItem I am creating a log list so I can know which items have default description and which have from the TEXT field.

Regards,

VP