LampLit
BetaApp · Android · iOS in review
A phone app that works like a light on your porch. Turn your light on when you're up for company, and the friends who see it can knock or text you.
The Android app has been on Google Play in the US since October 2026, and the iPhone app is in App Store review. Some launch work is still open.
What it is
You turn on a light in the app when you're up for company. The switch sits beside a drawing of your house. You pick the kind of time you want (Chill, Active or Either) and how long the light stays on, and you can add a short note such as "Coffee's on, come by." Only friends you have accepted see it. You sort them into streets, private lists such as your neighbors or the parents at school, and you choose which streets see each light.
A friend who sees your light can knock with one tap, which tells you they're free too. The knock arrives as "Marcus is knocking. Up for company?" with two answers, Come on over and Not right now. Saying no takes one tap and needs no reason. A Text button opens your own messaging app with a note already started. When you're out at a café or a park, the app can show a small picture of the place instead of your house, and friends can ask to join you there.
LampLit never hosts a chat. It has no counts or streaks, and no one can see when your light was on. It doesn't use your phone's location. You type your town and choose what friends see. A saved address goes to a friend when you say Come on over, for that visit, or to streets you pick. A light that's off looks like nobody is home. It is for adults 18 and older in the US who already know each other.
As of 4 November 2026, the Android app is on Google Play in the US, and Apple is still reviewing the iPhone app. Some launch work remains open. Widgets for the home screen and the lock screen are planned and not built yet.
What it looks like

Your light, with Chill picked and a note for friends. 
The Streets tab, with demo friends whose lights are on. 
A knock from a demo friend, with both answers on the notification.
Why I'm building it
People want to see their friends in person, but they worry about imposing, and nobody wants to be the one who asks. I built LampLit around people like a parent with kids in the yard and one free hand, or a student who doesn't want to look needy.
A porch light already tells neighbors you're around and up for company. LampLit does the same for friends, so when your light is on, a friend who is free can knock without anyone having to ask first.
The number I care about is confirmed hangouts per person per week. I also want people to spend under two minutes a day in the app, and I don't count installs or screen time as success. LampLit is free. It has no ads and nothing to buy.
How it works
Here is what happens between turning a light on and a friend knocking.
- Light onYou tap the switch, and your screen shows the light right away while the app tells the server.Expo app
- Who sees itOne database query decides which friends can see the light, based on your streets and your blocks.Rails and PostgreSQL
- Live updateFriends with the app open get a small signal and reload, and your house shows lit on their streets.Action Cable on Solid Cable
- AlertA friend with the app closed can get a notification, if they turned these alerts on and their own light is on.APNs and Firebase Cloud Messaging
- KnockA friend taps Knock, and you answer Come on over or Not right now from the app or the notification.APNs and FCM
- VisitCome on over sends your saved address for that visit, if you saved one, and the card disappears within 12 hours.Rails
If nobody knocks, the light turns itself off at its end time, and nobody is shown that it went unanswered.
The hard parts
Building it with AI agents from a written spec
Before most of the code existed, I decided how LampLit should behave. The first spec had 514 numbered rules in 14 areas and 69 step-by-step user flows, and I reviewed it chapter by chapter on 7 and 8 October 2026. That night, AI coding agents built the API, the phone app, the drawings and the tests from that spec. The work was split into 17 lanes, each on its own branch.
By morning the backend and app unit tests passed, and the tests that drive the whole app in a browser did not. They became a required, passing check on 20 October 2026. I added gates around the agents' work. A CI check fails any change to a decided rule unless the change log cites me, and a skeptical reviewer agent checks risky pull requests for bugs before they open. About nine in ten of the 538 commits list Claude as a co-author.
Location privacy and safety
A lit house in LampLit tells friends you're around and up for visitors, which is exactly what a controlling partner would want to know. So the app never reads the phone's location, and a light that is off looks the same as nobody home. Friends see your town or nothing. A saved address reaches only a friend you tell to come over, for that visit, or a street you chose to show it to.
Who can see a light is decided by one database query, and nothing else in the code may decide it. A live update carries no details about a light, only a signal to reload through that same query, so it can't show a light to someone outside its audience. Report and block are on every person's page, and the person is never told. Next on the list is a safety check on the notes people write on their lights.
Needing friends nearby before it is useful
A light only helps if friends who can come over are on LampLit too. A new account starts with empty streets, so sign-up is built around bringing friends along. It asks who you want to see more and says three people make a street worth checking, but it lets you go on with fewer. Invites go out as texts from your own number, with a one-time code that makes that person your friend when they join.
The iPhone version comes with a small App Clip, so an invite link opened on an iPhone without LampLit shows your friend's house and keeps the invite through the install. A helper can also set the app up for someone else, such as a parent, and hand the phone over without keeping any access. There is no way yet to include friends who won't install the app, and that idea is on the roadmap.
Getting sign-in texts delivered
Every account starts with a US mobile number, confirmed by a texted code. Carriers block texts from a toll-free number until its registration is approved, and AWS turned down LampLit's registration twice in October 2026, citing the website and the business name. The site was a JavaScript app whose plain HTML did not name the company, so I added a plain HTML home page and a line on every page that names Red Finch Advisory LLC.
On 16 October 2026 I moved sign-in codes to Twilio Verify, which sends from Twilio's own registered numbers. A server switch picks the sender, so changing it needs no app update. Amazon SES also declined production access for email, so LampLit sends email through Resend.
Store review and a new age law
Texas passed a law on app-store age checks, SB 2420. My reading of it is that apps must use the store's age data, and that a question at sign-up does not meet it on its own. So at sign-up and at every launch, LampLit asks the App Store or Google Play whether you're 18 or older, where the store has that answer. It keeps only which store confirmed you're an adult and when. It does not keep your age.
The iPhone listing's name, "LampLit: Up for Company?", has more words because the plain name Lamplit was already taken on the App Store. Before submitting, I had AI agents run mock App Store and Google Play reviews, and I fixed the clear-cut problems they found. Both stores got version 1.1.0 on 21 October 2026. Google Play published it, and the iPhone version is in App Store review.
What it runs on
No AI model runs inside the app. Claude Code agents did most of the building, working from the spec.
| Layer | What | Notes |
|---|---|---|
| Phone app | Expo SDK 57, React Native 0.86, React 19, TypeScript | One codebase for iPhone and Android, built for the stores on my own Mac. |
| Drawings | react-native-svg and a shared package of layered SVG parts | The server sends facts, such as an open door or kids in the yard, and the app stacks the matching parts into a house. |
| iPhone invites | An App Clip in SwiftUI | Opens an invite link on an iPhone without LampLit and passes the invite to the full app after install. |
| API | Ruby 3.3, Rails 8.1, Puma | Background jobs, such as timers and lights ending on time, run inside the web server process, so the API fits on one small server. |
| Database | PostgreSQL 18 on Amazon RDS | Background jobs and live updates also run on Postgres, so the setup needs no Redis. |
| Live updates | Action Cable on Solid Cable | A message carries only what changed and when, and the app reloads it through the same privacy rules. |
| Notifications | Apple Push Notification service and Firebase Cloud Messaging | Sent straight from the API, with Come on over and Not right now on the knock notification. |
| Texts and email | Twilio Verify and AWS End User Messaging for sign-in codes, Resend for email | A server switch picks the text sender, so changing it needs no app update. |
| Addresses | Mapbox | Suggests towns and addresses as you type, and the app never reads the phone's location. |
| Hosting | AWS (Lightsail, RDS, S3, CloudFront, Route 53), Terraform, Kamal | The API runs on one Lightsail server with 1 GB of memory, and the AWS setup is in Terraform, changed through pull requests. |
| Tests and CI | Minitest, Jest, Vitest, Playwright, GitHub Actions | Persona flows written from the spec run in a browser against the API, a required check since 20 October 2026. |
- commits on main
- 538
- lines of product code
- 59,001
- lines of tests
- 47,879
- rules in the spec
- 670
Counts read from the repository on 4 Nov 2026.
Links
- Privacy policy · what LampLit keeps and for how long
- Terms of use
- Help and support
- Community guidelines
- Safety tips
- Delete an account
Other projects
The Crate
BetaA music ranking and concert discovery app. You sort the music you love into tiers, then use that crate to compare taste with friends and find concerts by those artists near you.
App · iOS · Android · Web
2,380 commitssince Jun 2026Crate ingest pipeline
In developmentA pipeline that finds concerts on the venues' and promoters' own pages and in the ticketing feeds, and turns them into one clean record for each show. I am building it to feed the concert listings in The Crate, and later to offer as a dataset of its own.
Data pipeline
570 commitssince Oct 2026MattressBuilder
PreviewA website for designing your own mattress in 3D. You stack layers of wool, latex, foam and coils, drag them into the order you want, and watch the bed and its price change as you go.
Web app
34 commitssince May 2026