The short version: Fair Lawn Apps collects very little, and none of it is sold or shared with advertisers. This website has no accounts, no names or emails, no tracking cookies, and no analytics — and since its interface was retired in August 2026, no form or button on it sends anything anywhere. The mobile app is different: it offers an optional account — sign in with Apple or Google — so your notification categories, the things you follow, snow-route street, and address can follow you to a new phone; signing in is never required. Nearly everything else you set is stored only on your own device. Three things are not, all specific to the mobile app and all described below: your notification token, while notifications are on; your account record, if you're signed in; and, also only if you sign in, the name and email address your sign-in provider holds for you. If you sign in and file a report, say you'd play at a pickup game or you'd walk, pick an activity, or answer one of the app's questions, that is stored too. Each “I'd play” and “I'd walk” is deleted when its game or walk ends.

Some routes on our server are switched on but have nothing calling them. Gym check-ins and the feedback form both belonged to the website interface deleted in August 2026, and the mobile app never used either of them. Those routes were left in place rather than removed, so each is described below in full — and each says plainly that nothing reaches it today.

What this project is

Fair Lawn Apps is a community project that pulls publicly available information from fairlawn.org and other public sources, then presents it in a more accessible format. It covers the Community Center gym schedule, library programs, Memorial Pool hours, local alerts, and theater events. Farmers Market status was retired in August 2026: the market data file is still served at its usual address and a background job still compares it against its previous version, but nothing writes to it any more and nothing in the app or on this site displays it.

This policy covers both this website and the My Fair Lawn mobile app for Android and iOS, which reads the same public information. Where the two differ, it says so — the differences are noted under push notifications and on-device storage below.

This is not an official Borough of Fair Lawn project. It is independently maintained by a Fair Lawn resident.

What gets collected

Push notifications — this website

This website no longer offers push notifications. It does not ask for notification permission, does not create push subscriptions, and does not store push endpoints or notification preferences on any server.

Push notifications — the My Fair Lawn mobile app

Notifications in the mobile app are off until you turn them on in Settings. Nothing below happens unless you do.

When you turn them on, the app asks Google's Firebase Cloud Messaging service for a notification token — an identifier for that installation of the app on that device — and sends it to our server, together with:

  • Whether the device is Android or iOS
  • Your app language, so alerts arrive in the language you read
  • The app version, so an old release can be recognized

The token is a device identifier, not a personal one. It is not your name, email, phone number, or account — and even if you are signed in, it is not linked to any of those: it is stored under a key derived from a one-way hash of the token itself, separately from your account record, with nothing connecting the two.

What we do not receive this way: which alerts you chose. The app subscribes your device directly to topics at Firebase — one per alert type, followed park or sport, and language — and it does that on the device. Our server publishes an alert to a topic; it is never told which devices are listening, and it cannot build a list of what any one device follows through this channel. (If you sign in, your chosen notification categories and the things you follow are stored separately, in your account record — see Signing in, below — so they can follow you to a new phone.)

How long it is kept: until you turn notifications off. Doing so tells our server to delete the record. This is one of the few things this project stores with no automatic expiry — the account record described below is another — which is why each gets its own entry in the next section.

Delivery itself is handled by Firebase Cloud Messaging, a Google service, under Google's privacy terms.

Signing in — the My Fair Lawn mobile app

Signing in is optional — the app works fully without it. An account exists for one reason: so your notification categories, the things you follow, chosen snow-route street, and address can follow you to a new phone instead of resetting.

You can sign in with Apple or Google. Whichever you choose hands the app an email address, a name, and a Firebase user ID — a long identifier tied to that sign-in.

Where your email and name are kept: with Firebase Authentication, a Google service, in this project's own Firebase account. They do not stay only on your phone. The app reads your name back from there to greet you, and shows your email so you can tell which account you're signed into.

What our own server keeps is narrower. Your account record is filed under the Firebase user ID and holds only your notification categories, the things you follow, snow-route street, and address. The things you follow are sections, safety alerts, schools, the Chamber of Commerce, parks and sports, with the places you picked for a sport and any sport you turned off at a park. Your email and name are not in it. They do reach our server inside the signed token each sync sends to prove who you are — the server checks that token, takes the user ID, and keeps nothing else from it.

Signing out stops the notices you set up on that phone. The app signs the phone off from them, and clears your notification categories and the things you follow from it. They stay in your account record and come back when you sign in again. After you sign out, a phone with notifications on gets two safety alerts: water advisories, such as a boil-water notice, and snow emergencies.

Apple sign-in can give you more privacy than that. Apple lets you share a private relay address instead of your real email, and lets you decline to share your name at all — either choice works fine with this app.

Local storage on your device

The mobile app stores your notification on/off setting, the notification token, which alert topics it has subscribed to, the things you follow, your chosen snow-route street, your address if you give it one, your language, and a cached copy of the schedules so the app works offline. All of it is removed when you uninstall the app. If you sign in, your notification categories, the things you follow, snow-route street, and address also leave the device — synced to our server as your account record, described above — so those four are not device-only for a signed-in resident. Your name and email are not on this list at all: they are held by Firebase Authentication, as described above, not by the app on your phone.

If you sign in, your address is saved to your account. It is kept as you typed it, in your account record, so it comes back when you sign in on a new phone. No one else can see it, and it is never attached to a report or an “I'd play”. If you don't sign in, it never leaves your phone.

On this website, two preferences can sit in your browser's localStorage — your theme choice (light or dark) and your language choice. Neither leaves your device, and neither identifies you.

The list used to be longer: followed sections, feed display and hidden-item preferences, a calendar provider, and PWA install-banner state. Those belonged to the site interface removed in August 2026 and are no longer written. The five pages that remain only read the two values above — no control left on this website writes either one — so a value still in your browser is a leftover from an earlier visit. Clearing site data for fairlawn.paragbaxi.com removes it.

Analytics

This website runs no analytics. There is no page-view script, no event tracking, no cross-site tracking, and no analytics cookie. The cookie-free page-view counter this site used to run was removed in August 2026 along with the site interface it measured, and nothing replaced it. The mobile app has no analytics either. Cloudflare, which hosts this site, keeps server-side request logs the way any web host does; this project adds nothing to them and does not use them to identify or profile a visitor.

A shared link names the event, never you. When you share something from the app, the link says what it is about, such as the calendar, the date and the title, so your neighbor can open it. It carries nothing about you or your account. Opening it on this website reads the same public schedules the app reads and sets no cookie. Cloudflare’s request logs record the link as they record any page visit. If your neighbor installs the app on Android from that link, Google Play hands the new app the same label so it can open on that event; the label stays on their phone and the app does not send it anywhere.

Parag reads a weekly page of the app’s own totals, such as how full each issue’s ring is, how many neighbors answered each question, and how many are waiting to be verified. Only he can open it. It shows totals and the public places they are about, including totals under 10 that the app itself does not show, and never a name or an account. It is counted from the app’s own records, not with analytics.

Contacting us

The feedback form that used to be on this website was removed in August 2026 along with the rest of the site interface. Nothing on this website and nothing in the mobile app sends us a message any more. The contact page now simply publishes an email address, and mail you send there is ordinary email: it sits in an email inbox until it is deleted by hand, and it is not copied into this project's own storage or given an expiry date.

The submission endpoint the old form used has not been switched off, so it is described here rather than quietly dropped. It is still on our server, still behind Cloudflare Turnstile — a bot check that verifies a request comes from a real browser without fingerprinting the person using it — and it no longer has anything calling it. Were a message to reach it, it would keep the message text, the category, a shortened one-way hash of the sender's IP address, and an email address only if one had been typed in — for 90 days, after which Cloudflare deletes it automatically — and would copy the same message, email address included, to GitHub as an issue in this project's own repository and to the maintainer's Slack workspace. Such a message would be used only to reply to you — never shared with advertisers, never used for marketing. That is why feedback still appears in the retention and storage lists below.

Gym occupancy check-ins

Nothing sends a gym check-in any more. The "how crowded is it right now" control lived in the website interface removed in August 2026, and the mobile app has never had one. As with the feedback endpoint above, the receiving route on our server was left switched on rather than deleted, so it is described here rather than quietly dropped.

Were a check-in to reach it, it would store the crowding level with no name, account, or device identifier attached, expiring after 2 hours; and, so that one person cannot report repeatedly, a SHA-256 hash of the sender's IP address for 15 minutes. The raw IP address is never kept.

Reporting something broken — the My Fair Lawn mobile app

The app lets a signed-in resident report a piece of public infrastructure that is broken — a pothole, a storm drain, a streetlight, a sidewalk, park equipment, flooding, a downed limb — and lets other residents confirm a report or mark it fixed. Reading reports needs no account. Filing, confirming or marking one fixed does.

A report is a short list of things and nothing else: the place; the category; optionally what kind of problem it is within that category; whether it is a hazard someone could get hurt on today; at a park, optionally which part of the park; the Firebase user ID of whoever filed it; the time; and, only if you choose to add one, one photo. Everything you choose, except the photo, comes from a fixed list. A confirmation or a “fixed” mark is the report it is about, the Firebase user ID of whoever made it, and the time. That is the whole record.

You can attach one photo to a report. There is still no free text. The app has no field to type into anywhere in this feature. That is a deliberate design limit, not a feature that has not been built yet. The photo is optional: a report without one is complete.

The photo is shrunk on your phone, and only the smaller copy is sent. The app makes a new copy no larger than 1,600 pixels on its longest side and uploads that copy, never the original. Making the copy drops the hidden details a camera stores inside a photo file, such as the GPS position where it was taken, the date and time, and the phone model, so those details never leave your phone.

No one else sees a photo until a person has reviewed and approved it. Every photo waits in a review queue that only the maintainer of this project can see, and it appears on the report only after it is approved. Before it reaches that queue, an automated check looks at the photo once: it is sent, over an encrypted connection, to Google Cloud Vision SafeSearch, a Google service, which answers with how likely the photo is to be sexual or violent. A photo the check finds plainly sexual or violent is turned down on the spot and deleted; every other photo waits for a person exactly as before. The check can only turn a photo down, never approve one, and if it cannot be reached the photo simply waits for a person. Only the photo is sent — no account, user ID, place, or report goes with it — and Google states that it does not store images sent to this service (Google's data-usage terms). A photo that is turned down is never shown to anyone. An approved photo is as public as the report it is attached to (reading reports needs no account), and like the report it is shown with no name, account, or user ID. A photo can still show things by itself, such as faces, house numbers, or license plates, and review looks for exactly that.

Photos are deleted after 90 days. The report stays; only the photo goes. The one exception is described under How long data is kept, below.

The place is one you pick from a fixed list of Fair Lawn streets, parks and intersections. It is not a map pin and it is not read from your phone — the app still requests no location permission of any kind. Because the list contains only public places, a report cannot be attached to a house, anyone's or your own.

What other people see does not include you. The public list of reports carries the place, the category, the kinds of problem reported there, whether anyone flagged a hazard, which part of a park, how many people have confirmed it, how many have marked it fixed, the resulting status, and any approved photo. It carries no reporter, no confirmer, and no user ID — there is no way, through the app or the server, to ask who reported or confirmed anything.

Each reported problem also has a page of its own, built from the same records: the day each report of it was filed, the day enough neighbors confirmed it, the day they said it was fixed, and the council meetings it went to. It shows how many neighbors back it, or say it’s fixed, only once there are at least 2, and it never says who.

“Fixed” means neighbors said so. It is never a statement from the Borough. This project has no access to the Borough's work-order system and does not claim to know whether anything has actually been repaired.

Filing is limited to a short pause between reports and twenty reports a day per account. The limit is counted per account rather than per internet connection, so people sharing a home connection do not affect each other.

An account can be blocked from posting. If an account files abusive reports or uploads abusive photos, the maintainer of this project can stop it filing reports, confirming other people’s, uploading photos, saying it would play at a pickup game, saying it would walk, picking an activity, and answering the app's questions. Reading is unaffected: a blocked account can still use the app, it just cannot publish through it. While the block stands, it also cannot take itself off a game or a walk, or tap Stop on an activity; deleting the account still deletes all of them (see Deleting your data, below). What is stored is the user ID, the time, and a short note of the reason — no name, no email, and nothing about the account beyond the ID. Residents cannot block each other, because no resident is ever shown who filed a report. If you think your account was blocked in error, write to fairlawn@paragbaxi.com.

Saying you'd play — the My Fair Lawn mobile app

The app lets a signed-in resident say “I'd play” to a pickup game: a scheduled session at the Community Center gym, or a court at a Fair Lawn park in a set time window. When enough people say they'd play, the game is on, and the people who said so are told. Seeing which games are offered needs no account. Saying you'd play does.

One “I'd play” is a short list of things and nothing else: the game, which at the gym is the scheduled session and the sport you picked, and at a park is the court, or “any court in Fair Lawn”, and the time window; the Firebase user ID of the account that tapped; and the time you tapped. That is the whole record.

There is no free text, and you never name a place or a time. Nothing in this feature has a field to type into. Gym sessions come from the Community Center's published schedule. Courts come from the same fixed list of public Fair Lawn places that reports use, so an “I'd play” can never point at a house.

No one else ever sees who said they'd play. There is no list of players, no name, and no user ID, and there is no way, through the app or the server, to ask who said they'd play. What others see depends on the place:

  • At the Community Center gym, anyone can see how many neighbors would play a session, but only from 2 up. With fewer than 2, it reads “Be the first”, so one tap never shows that one person is going. If people take themselves off, the number goes back down for everyone.
  • At a park, no one sees a number, ever. A park game shows nothing about who or how many until enough people have said they'd play. Then it reads “It's on”, still with no number and no names. Anyone who opens the app can see that.

When a game fills, one notification goes out, and only once. It is delivered by Firebase Cloud Messaging, and only to phones with notifications turned on.

  • Everyone who said they'd play is told, for example: “On: pickleball, Tue 2:30 pm, Community Center gym. You + 3 neighbors.” It gives a number, never names.
  • At the gym, people who turned on Community Center heads-ups, and people who follow that sport, get the same notice, without the “You +”. It says the game is on, not who is playing.
  • At a park, the people who said they'd play are told. People who follow that park, or follow basketball there, are told too, with no number.

If the gym schedule changes so that a session may not run, everyone who said they'd play it is told: “The gym schedule changed; Tue 2:30 pm may not run.”

To be told, your phone signs itself up with Firebase for that one game, the same way it signs up for alert types. Your phone signs itself off again when you take yourself off, when you sign out, or the next time you open the app after the game ends. Our server sends the notice to the game. It is never told which phones are listening, and your notification token is still never stored with your account.

If you follow a park or a sport, your phone signs up with Firebase for its notices in the same way. It signs itself off when you unfollow, say a sport is not for you, switch those notices off in Settings, turn notifications off, or sign out. Our server is never told which phones are listening. If you are signed in, what you follow is saved in your account record; see Signing in, above.

Each “I'd play” is deleted when its game ends. Taking yourself off deletes it sooner. Nothing about who said they'd play is kept after the game.

After a game ends, a record of the game itself is kept for 12 weeks, with nothing about who played. It is the sport, the place, the date and time, and whether the game went on, and at the gym also the most neighbors who said they'd play at once. At a park it keeps no number. It holds no account, no user ID and no name. The app uses it to say how a sport usually goes, such as “It was on 3 of the last 4 Tuesdays.”

If you take yourself off a park game that is already on, a note that you did is kept until that game ends, so the same account cannot join it again. It is deleted with the game.

You can be in at most 5 games at once, and in each game only once. The limit is counted from the same records, per account. Nothing extra is stored to count it.

If you tap “I'd play” while signed out, the app asks you to sign in. Your tap waits on your phone and is sent only after you sign in.

Your address never goes with it. An “I'd play” carries no address, and no one who sees a game can see yours.

Being verified — the My Fair Lawn mobile app

Numbers in the app, such as how many neighbors said they'd play or confirmed a report, count verified neighbors only. Parag verifies each person by hand. To do it he sees the sign-in name and email your sign-in provider holds for your account (in Firebase) and the street you saved. Nothing else is collected to verify you, and the app never asks for a document or a photo of one.

Whether you're verified is private. Only you can see it, in the app. It is never shown to anyone else, and nothing another resident can read carries it.

Taps, backings and answers from an account that is not verified are kept, and they count in totals once it is verified. Totals never carry a name.

A report from an account that is not verified is seen only by you until Parag looks at it.

The record behind this is your Firebase user ID, whether you asked or were verified, and the times. Deleting your account deletes your verification record.

Talking before a council meeting — the My Fair Lawn mobile app

Talk before a council meeting is a switch in the app, and it is off unless you turn it on. Only a verified neighbor sees it. Before a council meeting, Parag may email a few of the neighbors who turned it on, to ask what they think about an issue in town. He writes from fairlawn@paragbaxi.com to the email address your sign-in provider holds for your account (in Firebase).

Nothing you say is shared with your name. If Parag shares what neighbors said, it is never with who said it. A reply is an email between you and Parag: it never passes through the app or its server.

It is for adults. The app does not ask your age. Turning the switch on tells Parag you are 18 or older.

Turning it off stops it. Parag writes to no one who has it off. What is kept is whether the switch is on and since when, in your verification record. Turning it off, losing your verified status, a block on your account, or deleting your account clears it.

Answering a question — the My Fair Lawn mobile app

Now and then the app asks one short question, such as whether your street was plowed after a snow emergency, whether you're going to a public event, which issue the town should fix first, or whether a corner near your street is hard to cross. You answer with one tap, from a fixed set of choices. Seeing a question needs no account. Answering does.

Some questions are answered with something described elsewhere on this page. Saying a reported problem is still there, or that you see it too, adds a confirmation to that report, and saying it's fixed adds a “fixed” mark (see Reporting something broken, above). Saying you'd play at a game is an “I'd play” (see Saying you'd play, above). Saying you'd walk is an “I'd walk” (see Activities and walks, below). Each is kept and deleted as its own section says. The rest of this section is about every other answer.

One answer is a short list of things and nothing else: which question, which round of it (for example the date a snow emergency ended, or the event), the choice you tapped, the Firebase user ID of the account that tapped, and the time you tapped. That is the whole record. There is no free text.

Answers are stored with your account, counted only in totals, and never shown with a name. A total counts verified neighbors only, and shows in the app only once at least 10 of them have answered, except on Fair Lawn’s list, where each issue’s ring shows how many verified neighbors back it or say a corner is hard to cross, from the first. You can see the answers you can still change in the app, under You, and change one until its question closes.

An “I'm going” is deleted once its event's day has passed. Every other answer to a question is deleted 13 months after you give it. Activity picks are kept differently: see Activities and walks, below.

The reminder before an event you're going to is set on your phone. Nothing about it is sent to us.

If you answer while signed out, the app asks you to sign in. Your answer waits on your phone and is sent only after you sign in.

A “hard to cross” answer names the corner it is about, which is one on the street of the address you gave the app, so it says roughly where you live. Like every answer, it is never shown with your name and is counted only in totals.

Fair Lawn's list and the council — the My Fair Lawn mobile app

Fair Lawn's list ranks the open reports, and the corners neighbors say are hard to cross, by how many verified neighbors back each one. Parag takes the issues that reach their goal, and their counts, to the next Borough Council meeting. He carries issues and numbers, never names. Reading the list needs no account.

The goal is one in ten verified neighbors who were active in the app the month before, never fewer than 10. To count that, our server keeps a monthly list of which accounts did something in the app: answered a question, picked an activity, filed a report, backed one, or marked one fixed. It is counted from the app's own records, not with analytics, it is never shown to anyone, and each month's list is deleted after three months.

For each meeting, our server keeps which issues went in and how many neighbors backed each. That record holds no account.

If an issue goes to the council that you reported, backed, picked to fix first, or said is hard to cross, the app can tell you. It does this only if you turned notifications on, and you can turn it off under Notifications, “When something you backed goes to the council”. The app subscribes your device to a topic that belongs to your account; our server publishes to that topic and is never told which devices listen.

Activities and walks — the My Fair Lawn mobile app

The app lists things neighbors might do together, such as chess, pickleball or walking. You tap the ones you'd do, from a fixed list. Seeing the list needs no account. Tapping does.

One pick is a short list of things and nothing else: which activity, the Firebase user ID of the account that tapped, and the time you tapped. “None of these fit” is recorded the same way. That is the whole record. There is no free text.

Picks are counted only in totals, and never shown with a name. A total counts verified neighbors only, never who they are. An activity’s own page shows how many picked it once at least 2 have, the same floor as a game’s count, and anyone can read that number; the app’s lists, such as the most popular activities, show one only once at least 10 have. No number is given for Walking, since its walks meet at a park.

A pick stays until you tap Stop, until a week after that activity comes off the app's list, or until you delete your account. Stop deletes it at once. “None of these fit” has no Stop: it is deleted 13 months after you tap it.

When 10 verified neighbors want an activity, one notification goes out, and only once, to the phones of the people who picked it, if notifications are on. It names the activity and how many neighbors want it, never who. Your phone signs itself up with Firebase for that activity's notice, the same way it does for a game, and signs itself off when you tap Stop or sign out. Our server is never told which phones are listening.

The search box on the list never leaves your phone. What you type there only narrows the list on your screen. It is not stored or sent.

Suggest an idea opens your own email app, addressed to fairlawn@paragbaxi.com. The app never sees what you write.

If you pick while signed out, the app asks you to sign in. Your pick waits on your phone and is sent only after you sign in. If you close the app first, it is dropped.

“I'd walk” works like “I'd play”. The app picks the park and the time of each walk, and you tap one. One “I'd walk” is the walk, the Firebase user ID of the account that tapped, and the time you tapped. No one sees a number for a walk, ever. A walk shows nothing about who or how many until enough verified neighbors have said they'd walk. Then it reads “It's on”, with no number and no names, and the people who said they'd walk are told once. Each “I'd walk” is deleted when its walk ends, or sooner if you take yourself off or tap Stop on Walking. If you leave a walk that is already on, a note that you did is kept until the walk ends, so the same account cannot join it again. You can be in at most 5 walks at once.

The reminder before a walk is set on your phone, the same way as the one before an event. Nothing about it is sent to us.

Your phone keeps a note of each walk you said you'd walk that was on, its park and time, to show only you under Milestones; the note never leaves your phone, and signing out or deleting your account removes it.

How long data is kept

Different types of data stick around for different amounts of time. Here is a breakdown of everything stored server-side and when it goes away.

Data with automatic expiration

These are deleted automatically after a set period, by Cloudflare or by our server's own scheduled job. No manual cleanup is needed.

  • “I'd play” records — each is deleted when its game ends, or sooner if you take yourself off. At a park, the note that you took yourself off a game that is on goes when the game ends. See Saying you'd play, above
  • Game records — what a pickup game was and whether it went on, with no account or user ID; deleted after 12 weeks. See Saying you'd play, above
  • “I'd walk” records — each is deleted when its walk ends, or sooner if you take yourself off. See Activities and walks, above
  • Answers — an “I'm going” is deleted once its event's day has passed; every other answer to a question, and each “None of these fit” on the activities list, is deleted 13 months after you give it. See Answering a question and Activities and walks, above
  • Monthly activity lists — which accounts did something in the app in a month, kept only to set the goal of the council rings; each is deleted after three months. See Fair Lawn's list and the council, above
  • Feedback submissions — deleted after 90 days. Listed because the rule is still in force on the server, not because anything is arriving: the form is gone and the endpoint has no caller (see Contacting us, above)
  • Feedback rate limits (prevents spam) — deleted after 24 hours; same situation
  • Occupancy reports (gym crowdedness) — deleted after 2 hours. Listed for the same reason as feedback: the rule is still in force on the server, but the control that used it is gone and nothing is arriving (see Gym occupancy check-ins, above)
  • Occupancy rate limits (one report per person per 15 minutes) — deleted after 15 minutes; same situation
  • Operational records that are not about you — a cached copy of the service-health answer (60 seconds), the credential used to hand notifications to Google for delivery, the markers that stop the same alert being sent twice (2 hours to 14 days), and, for each pickup game or walk, whether its one notification has gone out (deleted when the game or walk ends). These record that an alert went out, never who received it

Data that persists until you remove it

Four things: the mobile app notification token described above, if you have turned notifications on; the mobile app account record described above, if you have signed in; the name and email held by Firebase Authentication, also only if you have signed in; and your activity picks, if you have picked any, each kept until you tap Stop, a week after the activity comes off the app's list, or you delete your account (see Activities and walks, above). None has an automatic expiry — a notification you asked for should not stop arriving on a timer, and settings you chose should not silently reset. Turning notifications off deletes the token; deleting your account (below) deletes the account record, the Firebase sign-in record, name and email included, and every activity pick.

Reports and confirmations have no automatic expiry either. A report of a broken streetlight should not vanish on a timer while the streetlight is still broken, and a report that neighbors have marked fixed is the record of that happening. What links a report to you, however, is removed when you delete your account — see below.

Photos do expire: each one is deleted 90 days after it was uploaded, whether or not it was approved, and a photo that is turned down in review is deleted without waiting for the 90 days. The report the photo was attached to stays. Only a legal duty overrides this. If a photo appears to show the sexual abuse of a child, federal law (18 U.S.C. § 2258A) requires it to be reported to the National Center for Missing & Exploited Children and preserved. Such a photo is not deleted on the usual schedule: it is kept, never shown to anyone, for as long as that law requires, which is currently one year, together with the record of which account uploaded it.

Each council cycle's goal, and what went to each meeting, have no automatic expiry either. Neither holds an account: a goal is a number, and what went in is an issue and how many neighbors backed it. See Fair Lawn's list and the council, above.

A record of which activities have had their one notice has no automatic expiry either, so that notice never goes out twice. It holds the activity and when the notice went, and nothing about anyone who picked it.

Everything else stored server-side, “None of these fit” included, has an automatic expiration, and everything else besides lives only on your own device, where you can clear it at any time.

What is NOT collected

Names and email addresses are collected only if you choose to sign in to the mobile app — see Signing in, above. Beyond that:

  • Phone numbers
  • Location data — neither the app nor this website asks for, receives, or stores your device's location. The app requests no location permission at all. The snow-route street a signed-in resident can save is a street they pick themselves so the right snow-parking alert reaches them; it is a saved preference, not a reading of where the phone is, and it is never used to work out where anyone is. The parks you follow, and the places you pick for a sport, are saved the same way: you choose them from a fixed list of public places, and if you sign in they are kept in your account record. They are not a reading of where the phone is, and no one else can see them. Four things come close, and are named here for that reason. An “I'd play” records a gym session or a park court and a time window that you picked from a fixed list. That is where you plan to be. It is not read from your phone, it is never shown with your name, and it is deleted when the game ends. See Saying you'd play, above. An “I'd walk” is the same kind of record, for a walk at a park, and it is deleted when the walk ends. An “I'm going” is the second: it records an event you picked from the app's list, which is where you plan to be and when. It is never shown with your name, and it is deleted once its event's day has passed. See Answering a question, above. A “hard to cross” answer is the third: it names a corner on the street of the address you gave the app. It is never shown with your name, and it is deleted 13 months after you give it. See Answering a question, above. The parks and places you follow are the fourth: one you can walk to can hint at where you live. Unlike an “I'd play”, they are not deleted by themselves. They stay until you unfollow them, and deleting your account removes them from our server. Your address, if you give the app one, is one you typed, not a reading of where the phone is. If you sign in, it is kept in your account record, and no one else can see it.
  • Browsing history
  • Cookies for tracking purposes
  • Data from other apps on your device
  • Data about children (this app is not directed at children)
  • Your photo library — the app is never given access to it. To attach a photo to a report, you pick it with your phone's own photo picker, which hands the app only the one photo you chose; the app asks for no camera or photo-library permission. A photo you do attach is described under Reporting something broken, above. This website accepts no image from you at all
  • Free text you write — there is no field anywhere in the mobile app that lets you type a message that reaches our server. Reports, “I'd play”, “I'd walk”, activity picks and answers are chosen from fixed lists. The activities search box narrows the list on your phone and sends nothing

Where data is stored

Server-side data is stored on Cloudflare infrastructure:

  • Workers KV: gym occupancy reports, the hashed rate-limit keys that go with them, mobile app notification registrations, and mobile app account records for signed-in residents. This is also where a feedback submission would be written, if the retired endpoint described above ever received one
  • D1 (Cloudflare's SQL database): the broken-infrastructure reports and confirmations described above, each open “I'd play” with the notes that go with it, the answers to the app's questions, each activity pick, each open “I'd walk”, a record of which activities have had their one notice, the council rings' goals and what went to each meeting, the monthly activity lists, and a copy of the fixed list of Fair Lawn places they can be filed against. The place list is public information about the town and is not about any resident
  • R2 (Cloudflare's file storage): photos attached to reports, including photos still waiting for review. Your phone uploads the photo straight to this storage, over an encrypted connection, using a short-lived upload link our server issues. Each photo is also sent once to Google Cloud Vision for the automated check described under Reports, which processes it and, by Google's terms, does not store it

Notifications our server sends to the mobile app are delivered through Firebase Cloud Messaging, which is operated by Google. Sending an alert necessarily involves handing it to Google for delivery to your device. The notice that a pickup game is on goes the same way. Signing in is handled by Firebase Authentication, also operated by Google, under the same privacy terms — your email, name, and Firebase user ID are stored there, in this project's own Firebase account. Checking that you really are signed in also means our server fetching Google's public signing keys; that request carries nothing about you.

Two further services would be involved if the retired feedback endpoint described above ever received a message: GitHub, where it would be filed as an issue, and Slack, where a copy would be posted to the maintainer's workspace. They are named because nothing else here would tell you a message could leave Cloudflare. Neither receives anything today.

No data is sold, shared with advertisers, or transferred to anyone outside the infrastructure providers named above, except where the law requires it: a photo reported under the federal child-protection law described in How long data is kept goes to the National Center for Missing & Exploited Children.

Data scraped from public sources

Fair Lawn Apps automatically reads publicly available information from fairlawn.org, the BCCLS library calendar, and similar public sources. The full pass runs twice a day; the three feeds whose value decays fastest — local alerts, theater, and the Community Center schedule — are re-checked every hour, and pool hours have their own daily check in season. No login credentials or private data is accessed. Only information already publicly visible on those websites is collected and reformatted. Some of those public pages are also passed to a language model from Anthropic or Google as part of this project's own quality checks, to catch a scraper that has started misreading a redesigned page. Only the public page content is sent. Nothing about a resident goes to either, and neither sits in the path of anything you do in the app or on this site.

Your rights

Under the New Jersey Data Privacy Act (effective January 15, 2025) and general best practice, you have the right to:

  • Access what data is associated with you — for a visitor to this website that is nothing at all; if you have turned on mobile app notifications, it is that device's notification token, platform, language, and app version; if you have signed in, it is additionally your account record (notification categories, the things you follow, snow-route street, and address), the name and email your sign-in provider gave us, your verification record (whether you are verified, and whether Talk before a council meeting is on), any broken-infrastructure reports, photos, or confirmations you have filed, and any “I'd play” you have open (each is deleted when its game ends), and any answers you have given to the app's questions, the activities you picked, any “I'd walk” you have open (each is deleted when its walk ends), and which recent months your account was active in the app (see Fair Lawn's list and the council, above)
  • Delete your data at any time
  • Opt out of any data collection (data is never sold, so the "opt out of sale" right is satisfied by default)

Deleting your data

To delete your data, or to exercise any of the rights above:

  • To delete your mobile app notification token: turn Notifications off in the app's Settings tab. That deletes the server record. Uninstalling the app also removes everything stored on the device.
  • To delete your mobile app account: Settings → Account → Delete account. That removes your account record — notification categories, the things you follow, snow-route street, and address — from our server, and deletes the Firebase sign-in record holding your name and email. It does not delete your Apple or Google account.
  • What deleting your account does to reports you filed: every confirmation and “fixed” mark you made is deleted, and the counts on those reports go down accordingly. The reports you filed are kept, with the link to you removed — your user ID is replaced with a meaningless one that points at nobody. We keep the report itself because other residents confirmed it and because the pothole does not stop existing when you leave; deleting it would erase their contribution as well as yours. After this, nothing in this project connects any report to you.
  • What deleting your account does not clear: a block, if your account has one. The user ID, the time, and the reason are kept. A sign-in provider gives the same account the same user ID every time, so a block that deleting the account cleared would be a block anyone could clear by deleting and signing back in. Nothing else survives: the block record holds no name, no email, and no reports.
  • What deleting your account does to photos you attached: they are deleted, every one, whether still waiting for review or already approved, even though the reports they were attached to are kept. The reason for keeping a report does not carry over to its photo: other residents' confirmations belong to the report, not to the picture, and a photo can identify people and homes in a way a category never can. The single exception is a photo being preserved under the legal duty described in How long data is kept; that photo, and the record of which account uploaded it, are kept for as long as the law requires.
  • What deleting your account does to “I'd play”: every “I'd play” you have open is deleted, and the counts on those games go down accordingly. Any note that you took yourself off a park game goes with them. Nothing about them is kept.
  • What deleting your account does to answers: every answer you gave is deleted, and the totals go down accordingly. Nothing about them is kept.
  • What deleting your account does to activities and walks: every pick and every “I'd walk” you have is deleted, and the totals go down accordingly. Nothing about them is kept.
  • What deleting your account does to Fair Lawn's list: your account is removed from every monthly activity list. What went to past council meetings stays as a count, which never held your account.
  • What deleting your account does to verification: your verification record is deleted, including whether Talk before a council meeting is on. If you sign up again, you start unverified, with it off. Reports you filed while verified stay visible, with the link to you removed, as described above.
  • If you have already uninstalled the app: you do not need to reinstall it. Send us a deletion request — say you want your account deleted and include the email address you signed in with — and we will do everything described above for you.
  • To clear local data on this website: Clear your browser's site data for fairlawn.paragbaxi.com
  • For any other requests: Send us feedback

Children's privacy (COPPA)

Fair Lawn Apps is a general-purpose community information tool for Fair Lawn residents. It is not directed at children under 13. No personal information is knowingly collected from children. You must be at least 13 to sign in. The app never asks your age.

Most of what the app shows is general community information: schedules, alerts, the public list of broken-infrastructure reports, and which pickup games are on. None of that is personalized to any individual. Three things are specific to you, and all three require you to sign in and choose them: the settings that sync to your account, the reports or confirmations you file, and each “I'd play” or “I'd walk” you tap, activity you pick, or answer you give. Signing in is optional and the app works fully without it. Nothing you file or tap is shown to anyone with your name or account attached to it.

“I'd play” records where you plan to be, and when. A place and a time together say where someone will be. That must never be public about anyone, least of all a child, so this feature shows none of it. No one can see who said they'd play. At a park, no one sees a number either, so no one can learn that one or two people, who could be children, will be at a park at a certain time. A park game shows only “It's on”, once enough people have said they'd play. At the gym, a number shows only from 2 up. Every “I'd play” is deleted when its game ends.

“I'm going” records where you plan to be, and when. As with “I'd play”, no one can see who is going, a number shows only from 10 up, and each one is deleted once its event's day has passed.

“I'd walk” is held to the same rule as a park game. No one can see who or how many will walk: a walk shows only “It's on”, once enough verified neighbors have said they'd walk, and each “I'd walk” is deleted when its walk ends.

Two gym sessions, Men's Basketball and Coed Adult Volleyball, are borough programs for Fair Lawn residents 18 and over. The app says so beside them. It does not ask your age or check it.

Changes to this policy

If this privacy policy changes, the updated version will be posted here with a new "last updated" date. We do not send update notices by email. The email your sign-in provider gives the mobile app is used to show you which account you're signed into and, only if you turn on Talk before a council meeting, for Parag to write to you from fairlawn@paragbaxi.com. It is never added to a mailing list for anything else. Checking back periodically is recommended.

Last updated: October 30, 2026

See also: Terms of Service · Security Practices