Budget: 3500 UAH Deadline: 2 days
Hello. I work with React and React Native. I am ready to collaborate. Feel free to contact me.
Task Description: A React Native developer is required to fix a bug in the logic of in-app purchases (Podocard project). Everything works fine on iOS (App Store), the problem is only in the Android version (Google Play).
Problem Essence: The application has two paid plans: Pro and Team.
The initial purchase of the Pro plan is successful.
When trying to upgrade (switch) from the Pro plan to the Team plan, a failure occurs: either the automatic cost recalculation (proration) does not trigger, or the application crashes with an error.
Stack:
React Native
Subscription management library RevenueCat
What needs to be done:
Debug the Android version and identify the cause of the crash/error in recalculation when changing plans.
Fix the subscription upgrade logic for Google Play Billing.
Ensure that the transition from Pro to Team works correctly and without crashes.
Please indicate your experience with Google Play Billing and in-app subscriptions in React Native in your response.
Budget: 3500 UAH Deadline: 2 days
Hello. I work with React and React Native. I am ready to collaborate. Feel free to contact me.
Budget: 2000 UAH Deadline: 1 day
Hello.
I am a NodeJS developer. I have experience with React. I am ready to take on the task. Write to me, and we will discuss.
Budget: 2500 UAH Deadline: 1 day
Good day, Yevhen
I have 10 years of experience in development, working with the tech stack on React Native (+TypeScript), React.js (Next/SSR +TypeScript), backend Node.js (Express/Nest) + MongoDB, Firebase + TS.
Can I take a look at the code?
Feel free to write, I would be happy to collaborate.
Sincerely, Oleksii.
Budget: 20000 UAH Deadline: 20 days
I will fix the subscription upgrade logic in your Android app Podocard, eliminate native crashes, and ensure correct proration when switching from Pro to Team via RevenueCat.
I have deep technical experience with frontend application architecture, mobile interfaces, and payment system integration, where a clear understanding of data lifecycle and error handling allows for the creation of stable premium products without failures.
Have you already checked if the correct googleProrationMode flag is being passed in your React Native code during the purchasePackage method call, and if both plans are combined into one subscription base (Subscription Group) in the Google Play console? Without this, RevenueCat cannot physically perform the upgrade and causes the app to crash.
I am ready to quickly connect a debugger, identify the exact error log, and resolve this bug — we can discuss details and timelines in private correspondence.
Budget: 2000 UAH Deadline: 7 days
Hello, I worked on a fitness training app with a comprehensive Pro/Premium subscription system through RevenueCat in React Native, where I set up seamless transitions between plans with automatic cost recalculation - 100% success rate for upgrades.
I am curious whether the proration issue occurs only under specific transition conditions, or if it is a systemic error in the Google Play Billing API?
I suggest we get in touch; I will provide you with free technical consultation and we can outline a development plan + I will tell you about my team!
Budget: 15000 UAH Deadline: 10 days
Hello! I will complete your task quickly and efficiently. I will make adjustments in React Native.
My recent works:
https://indexfast.pp.ua - fast website indexing
https://mono-bank.pp.ua - everything about Monobank
https://mamamia.pp.ua - online store
https://programist.pp.ua/ua/portfolio/ - portfolio of works
https://monitortest.pp.ua - monitor testing
https://keytest.pp.ua - keyboard testing
https://pctest.pp.ua - computer testing
My portfolio: https://freelancehunt.com/ua/freelancer/romas6ka.html#portfolio
Message me, I can start working today. I would be happy to collaborate with you!
Budget: 2500 UAH Deadline: 1 day
I understood the technical specifications: RN application Podocard, RevenueCat as a wrapper over Google Play Billing. iOS works as expected. Android has a bug when upgrading from Pro to Team: either proration breaks (automatic cost recalculation), or it crashes.
In 95% of cases in this setup, the reason is one of four.
The first is an incorrect prorationMode in the purchaseProduct call. In RevenueCat's SDK for subscription replacement, you need to explicitly pass UpgradeInfo with oldSKU and prorationMode (IMMEDIATE_WITH_TIME_PRORATION, IMMEDIATE_WITHOUT_PRORATION, DEFERRED, etc.). If this parameter is not passed or is passed as undefined, Google Play Billing 6+ does not consider it an upgrade and breaks either on recalculation or on confirm. This is not an issue on iOS because StoreKit handles proration automatically without explicit parameters — hence the difference in behavior between platforms.
The second is a mismatch of base plans. Google Play 6+ requires that Pro and Team be either in the same subscription group or explicitly linked. If RevenueCat entitlements are configured correctly, but the products in Play Console are in different groups, the upgrade will fail with error ITEM_ALREADY_OWNED or cyclic restoration of the old subscription.
The third is stale cache in RevenueCat. If syncPurchases or Purchases.invalidateCustomerInfoCache is not called before the upgrade, the SDK may retain old CustomerInfo and consider both rates active. This bug manifests specifically on Android because iOS periodically refreshes CustomerInfo through background StoreKit notifications.
The fourth is a race condition in the onPurchaseUpdated listener. If there is a custom handler over RevenueCat in the code and purchaserInfoUpdateListener is not used, after the upgrade the UI continues to consider the user on Pro, and the next restore call also breaks.
What I plan to do. I will take Google Play Billing logs (adb logcat with a filter for BillingClient + RevenueCat tag) during the reproduction of the upgrade. At the same time, I will look at the code in the places where purchase/upgrade is called in the JS layer. After reproduction — either fix prorationMode and UpgradeInfo, or switch the rates to one subscription group in Play Console, or invalidate the cache. We will test through a test account (closed testing in Play Console with test payment methods) and regressively check that the initial purchase of Pro and downgrade back work.
Please clarify: what version of react-native-purchases (RevenueCat SDK) is being used, are there logs of the last crash from adb logcat, and are you testing on a debug or release build. For debug on the emulator, Google Play Billing does not work correctly at all — tests until.
Budget: 10000 UAH Deadline: 1 day
Hello!
We are dZENcode – a full-cycle digital solutions development company: from design and programming to integrations and post-release support. We take on projects from scratch and also engage in the refinement of existing solutions.
We can assist with debugging and fixing subscription logic in React Native for Android.
1. Is there already access to the Android crash logs or RevenueCat logs for the problematic upgrade scenario?
2. What versions of Google Play Billing and RevenueCat SDK are currently used in the project?
You can find detailed information about our services and rates on our website: Freelancehunt
Take a look – after that we can discuss the details and agree on the next steps.
⚠️ After clarifying all the details, we will determine the scope, suitable format of cooperation: task-based, outsourcing, or outstaffing, and the final cost.
With us, projects are guaranteed to reach release:
• 10+ years providing IT services;
• 90+ in-house specialists;
• 250+ public reviews since 2015;
• We support the product under SLA after launch;
• We work under NDA and contract with the company!
Budget: 8800 UAH Deadline: 1 day
Hello, I have experience with subscriptions on RevenueCat.
Feel free to message me privately.
I will be happy to help you!
Budget: 1000 UAH Deadline: 1 day
Good day, I am ready to fix this bug, efficiently and quickly.
Budget: 700 UAH Deadline: 2 days
Good day. Please send the source code of the project. I will fix the error using a local neural network, so your code will not be sent to external servers or cloud AI services. I guarantee complete confidentiality and security of your data.
This is an unfinished plugin for After Effects: https://drive.google.com/drive/u/0/folders/1Nq9a672OK6ep9Com1lqelUhZxbx3_3f1 If I understand correctly, this is a CEP plugin (Adobe Extension) for After Effects. It is an HTML/JavaScript panel through Adobe CSXS that interacts with After Effects via ExtendScript. The goal was to automate the video creation process in the "maze challenge" style, reference on YouTube GOALRUSH-f8x or similar. Manually edited video: https://drive.google.com/file/d/1Ylzvax6w2JGDwaBqeCdbD49jh5wB5buY/view?usp=sharing File of one of the projects: https://drive.google.com/file/d/15vKd1L9VfHtDqK2wtLQdYEmDpH1d8Jvy/view?usp=sharing Besides the "bugginess" of the system due to vibe coding (so vibe coders are out), such details did not suit the device (real edits): https://docs.google.com/spreadsheets/d/18Svc6GoQ34PgLe1HY7gNX5tPLH0Cpv9E4mfjCRBCMFU/edit?gid=0#gid=0 It is necessary to create a system that will generate projects in After Effects with all the necessary video components listed in Base.pdf, more detailed logic in the form of photos, text documents, and mind maps for understanding all possible variations on the disk: https://drive.google.com/drive/folders/1Uf4Pnw3SKmwpmhL7sjPZFnfAbN0arUjr?usp=sharing Even more detailed (with a more in-depth descriptive part and links to time codes in references) the technical specifications will be finalized in the project workspace The final result is a system that creates videos: from 40 seconds to 1 minute, completely unique content for each creation, without AI metadata in the video file, it should have a clear plot (traps, dead ends, various emotions of celebrity characters as a result of some plot twists in the video), sound design according to the plot (screams and other emotions, explosions, etc.), stylistically not differing from the reference video from the channel.
There is an active production site with a product catalog, model cards, and informational pages. Frontend stack: — Next.js; — React; — TypeScript; — existing component system; — staging and production environments. There is an approved visual direction and design for the new homepage. It is necessary to implement it into the existing project, adapt it for desktop/tablet/mobile, and bring all main types of pages on the site to a unified updated style. A complete redesign of the product and changes to business logic are not required. MANDATORY SCOPE 1. New homepage — implement the homepage according to the provided design; — maintain existing functionality, links, and routing; — correctly connect approved sections and CTAs; — use existing data and APIs; — ensure correct display of dynamic content. Main types of sections: — header/navigation; — hero; — informational blocks; — model/offering cards; — analytical or market insight blocks; — CTA sections; — footer. The exact composition of sections will be provided to the selected performer along with the layout. 2. Responsive It is necessary to implement: — desktop; — tablet; — mobile; — intermediate resolutions; — correct behavior of grids, cards, menus, buttons, and typography; — absence of horizontal scrolling and visual conflicts. 3. Typography and general styles — implement new approved fonts; — unify sizes, weights, line-height, and spacing; — update styles for buttons, cards, fields, badges, and headings; — use common design tokens or CSS variables where possible; — avoid duplicating styles separately for each page unnecessarily. 4. Unification of existing pages Check and bring to the new style the main types of pages: — catalog; — model card / PDP; — informational pages; — header; — footer; — forms; — modal windows; — existing CTAs; — loading / empty / error states, if they are already present in the project. This is about the visual unification of existing components, not a complete individual redesign of each page. 5. Catalog Check: — card grid; — images; — name, reference, and price; — filters and sorting; — buttons and links; — desktop/mobile display; — loading and empty states; — absence of visual shifts during loading. 6. PDP Check: — gallery; — main information block; — price and CTA; — analytical sections; — tables and metrics; — About Watch; — desktop/mobile layout; — long names, references, and missing data. It is necessary to maintain current functionality and existing API contracts. 7. Header and Footer — unified style across all pages; — responsive navigation; — mobile menu; — correct active/hover/focus states; — absence of discrepancies between the homepage, catalog, and PDP. 8. Interface states For dynamic blocks, check: — loading; — empty data; — API error; — insufficient data; — missing image; — missing price; — long text; — mobile display. There is no need to develop new complex business logic. It is necessary to correctly visualize already existing states. 9. Quality and performance — do not worsen SEO and current indexing; — maintain correct metadata and semantic HTML; — avoid critical layout shifts; — optimize images and fonts; — consider reduced motion for animations; — check basic accessibility: focus states, contrast, keyboard navigation; — do not include heavy libraries without justified necessity. 10. Staging and QA — deploy changes on staging; — check main types of pages; — check desktop, tablet, and mobile; — fix visual and responsive bugs; — after acceptance, perform production deployment; — ensure bug fixes for the implemented scope for at least 7 calendar days after deployment. RESULT OF WORK — Pull Request with frontend code; — implemented new homepage; — responsive desktop/tablet/mobile; — unified fonts, cards, and basic UI components; — visually agreed catalog, PDP, and informational pages; — staging deployment; — fixing identified visual errors; — production deployment; — brief description of modified components; — 7-day bug-fix period after acceptance. ACCEPTANCE CRITERIA 1. The homepage matches the provided design. 2. All sections work correctly on desktop, tablet, and mobile. 3. Header and footer are uniform across all pages. 4. Catalog and PDP visually correspond to the new system. 5. Current functionality of the site is not disrupted. 6. API contracts and backend logic are not changed without agreement. 7. No horizontal scrolling and critical layout shifts. 8. Fonts and images load correctly. 9. Loading, empty, and error states are displayed without breaking the layout. 10. Changes are checked on staging and deployed to production. 11. Visual errors identified during acceptance are fixed within the agreed scope. WHAT IS NOT REQUIRED — backend development; — changes to business logic; — creation of a new catalog or CMS; — development of a new API; — complete redesign of each informational page; — new user features not present in the layouts; — development of a complex design system from scratch; — creation of a new project instead of improving the existing one; — changes to the SEO structure without separate agreement. REQUIREMENTS FOR THE PERFORMER — confident in Next.js / React / TypeScript; — experience working with existing production projects; — quality responsive layout; — experience implementing designs from Figma; — component approach; — confident working with CSS / CSS Modules / Tailwind or the existing project system; — understanding of Core Web Vitals; — Git / Pull Request workflow; — ability to work through staging. IN RESPONSE, IT IS MANDATORY TO INDICATE 1. Fixed price for the full mandatory scope. 2. Completion time in working days. 3. Estimate in hours. 4. When you are ready to start. 5. Links to 2–3 relevant projects on Next.js/React. 6. Experience working with catalogs, product cards, or analytical interfaces. 7. What will be needed for an accurate estimate before starting work. 8. Does the price include: — staging; — responsive QA; — production deployment; — bug fixes; — 7-day bug-fix period. Template responses without reviewing the requirements and without a specific estimate will not be considered. Access to production is not provided at the first stage. Work begins after a limited code review and is deployed through staging.
There is an active production platform with a catalog and automatic updates of external offers and prices. Stack: — Node.js / TypeScript; — PostgreSQL; — existing price refresh service and cron; — separate ready Python module for validation and selection of offers; — staging and production. It is necessary to make targeted improvements to the existing price refresh pipeline without completely rewriting the backend. MANDATORY SCOPE 1. Integration of the Python module — The Python module remains a separate component; — returns a structured result: offers, selected offer, statuses, and risk flags; — Node.js validates the result and performs a write to the database; — provide for error handling and partial/failed runs; — the legacy pipeline is not turned off until QA is completed. 2. Launch refresh by list Add launch: — by one slug/id; — by the provided list of slug/id. Assume CLI or existing service API. A new user interface is not required. 3. Shadow Mode New results must be recorded separately and not affect production until QA. Shadow fields required: — price; — selected offer ID; — direct URL; — offer status; — risk/QA flags; — checkedAt; — engineVersion. 4. Expanding the existing offers table Add: — source; — external_offer_id; — last_seen_at; — last_checked_at; — engine_version; — risk flags or storage in existing JSON; — unique constraint to protect against duplicates. It is not required to create a new parallel offer system if the existing table can be safely expanded. 5. UPSERT, STALE, and DB transaction Replace the current DELETE → CREATE scheme: — UPSERT existing and new offers; — offers missing in the full successful snapshot are translated to STALE; — in case of API error, partial result, or incomplete snapshot, active offers should not become STALE; — updating offers, selected offer metadata, and shadow fields for one model is performed within one DB transaction; — in case of an error, a full rollback is performed. 6. Canonical-safe refresh Price refresh should not change: — brand; — reference; — model; — collection; — name/title; — slug; — descriptions; — images; — SEO fields. Only offer, price, and shadow data are updated. 7. Preserving current cron logic Preserve: — existing cron; — rolling batches; — cooldown; — checking PRICE_REFRESH_MIN_DAYS before calling the external API; — legacy production pipeline until Shadow QA is completed. 8. Audit output One option is sufficient: — shadow columns in the existing admin table; or — CSV export. Minimum data: — model/reference; — production price; — shadow price; — delta; — production/shadow URL; — status; — risk flags; — checkedAt; — engineVersion. A new complex dashboard is not required. 9. Staging and QA — DB migrations; — staging deployment; — smoke test on 5 provided models; — then Shadow Mode on approximately 50 models; — fixing technical errors identified during these runs; — brief documentation of the Python → Node.js contract and rollback procedure. OPTIONALLY ASSESS SEPARATELY Simple technical promotion without a new UI: — promotion of one model by slug; — promotion of a list of slugs; — transferring confirmed shadow values to production; — technical check after rollout. RESULT — Pull Request; — DB migrations; — working integration Python → Node.js; — Shadow Mode; — UPSERT, STALE, and transactional update; — launch by slug/id; — staging deployment; — smoke-test results; — brief documentation; — at least 7 days of bug fixes for the implemented scope after acceptance. IN RESPONSE, INDICATE 1. Fixed price for the mandatory scope. 2. Separate cost for the promotion mechanism. 3. Timeline. 4. Hourly estimate. 5. When you are ready to start. 6. Experience with PostgreSQL transactions, migrations, and ingestion pipelines. 7. What questions need to be clarified before starting. 8. Whether staging, QA, migrations, and bug-fix period are included. Template responses without specific estimates will not be considered. Access to production is not provided at the first stage. Work begins with limited code review and staging.
Good day, 1) update jQuery** to the latest version (3.x) with jQuery Migrate included 2) Thoroughly test the functionality of the application 3) and fix any possible errors so that all scripts are compatible with each other by versions here it is necessary to completely rewrite https://filtry.in.ua/assets/libs/libs.js for the new version of jQuery since it has an old Bootstrap and many custom functions written
Description: It is necessary to create a JavaScript script for the Tampermonkey extension. The script will work in an internal CRM system.Logic of operation: The script must read the unique text ID of the current active dialogue on the page (there are a total of 5–10 different IDs). Depending on the ID, the script takes the corresponding text instruction (System Prompt) from the settings. The mapping of parameters by ID should be moved to a separate convenient settings window for the script. When a new message appears in the chat window, the script sends this text along with the prompt via the OpenAI API (model gpt-4o-mini). The received response is inserted into the text input field and initiates sending with a random delay of 20–45 seconds to simulate the natural operation of the operator.Work is purely with text. Budget — 6000 UAH. I am waiting for proposals from developers with experience in working with the OpenAI API and writing browser automation scripts.