Can I vibecode tcgevents?

NOT REALLY · don't bother
price variesbuild time one sittingcategory 👥 communityreplaced by 0 people

The software here is a searchable list with a map and some filters, which an agent can produce before your coffee cools. The product is not the list, it is the fact that events are in it: store owners posting schedules, organizers keeping dates current, players trusting it enough to check it weekly. Scrape it and you own a snapshot that starts rotting the moment a shop moves its Friday night draft. Official publisher locators exist, but they are partial, rate limited, and hostile to bulk use, and the small local scene stuff never appears there at all. Build the personal tracker if you play in two cities, but do not pretend it replaces the directory.

the prompt
Build a local-first trading card game event tracker. Single Python project, no accounts, no cloud, no telemetry.

Stack, non negotiable:
- Python 3.11, FastAPI, Jinja2 templates, SQLite via sqlite3 stdlib
- Plain server rendered HTML plus a little vanilla JS, no build step, no npm
- Leaflet from a CDN for the map, OpenStreetMap tiles

Data model (events): id, game (magic, pokemon, yugioh, lorcana, other), title, format, venue_name, address, city, country, lat, lon, starts_at (UTC), ends_at nullable, entry_fee nullable, url nullable, notes, source (manual or paste), created_at, updated_at.
Also a settings row for home_lat, home_lon, default_radius_km.

Features, in scope:
1. Add and edit events through a simple HTML form. Manual entry is the primary path, treat it as first class.
2. A "paste dump" page: textarea where I paste messy text from a store Discord or Facebook post, plus a parser that extracts candidate title, date, time and fee with regex and dateutil, then shows an editable pre-filled form. No LLM call. If parsing fails, say so and let me fill it in.
3. List view: filter by game, date range, city, and distance from home using haversine on stored lat/lon. Sort by starts_at.
4. Map view: pins for filtered events, popup with title, time, venue, link.
5. Calendar: current month grid, events per day.
6. Export: /export.ics returns a valid VCALENDAR of the current filter. Also /export.json.
7. Geocoding: optional. If GEOCODE_PROVIDER and GEOCODE_API_KEY are set in .env, geocode addresses on save; otherwise leave lat/lon null and hide distance filters gracefully.
8. Recurring events: a weekly repeat option that materializes the next 8 occurrences, each editable and cancellable individually.

Out of scope, do not build: user accounts, multi tenancy, scraping any third party site, push notifications, a mobile app, anything that pretends to have nationwide coverage.

Deliverables: app.py, db.py, parse.py, templates/, static/, schema.sql, .env.example, seed.py with 12 fake events across 3 cities, and a README with run instructions (uvicorn, one command). Include pytest tests for the parser and the ICS output. Timezones: store UTC, display in a TZ set in .env, default America/New_York.

$ open in your agent (prompt prefilled, you press enter) or copy it raw · this prompt is generated from the build plan · improve it via PR

why people still pay

Because the alternative is checking six store Facebook pages, two Discords and a publisher locator that has not been updated since the last set rotation. Anyone paying here is paying for someone else to do the tedious aggregation and keep it current, or, if they are a store, paying to be seen by players who already have the habit of checking. Neither of those is a software problem. A self hosted clone gives you the interface and none of the reason to open it.

what you lose

xCoverage: every store you did not personally enter is invisible

xFreshness: cancellations, venue changes and date shifts arrive nowhere

xOrganizer side: shops have no reason to tell your laptop about their new league night

xDiscovery for travel: the whole point of a directory is events in cities you do not know

xWhatever normalization the real site does across games, formats and regional naming chaos

prior art · use these instead of building, if you'd rather

Nothing worth pointing at. That's why the prompt exists.

share on X ↗"I just replaced tcgevents with one prompt"
questions
Can I vibecode tcgevents?

Not really. tcgevents's value is not the code: The moat is every local store that already posts its schedule there and every player who already checks. See the honest breakdown above.

How much does tcgevents cost?

tcgevents's pricing is usage-based or varies by plan · No subscription anywhere. Organisers pay 6.5% of the ticket price plus 0.25 EUR per ticket sold, taken via Stripe split payment. Chargeback handling fees of 3.50 EUR and 15.00 EUR also apply..

What do I lose by replacing tcgevents?

Honestly: Coverage: every store you did not personally enter is invisible; Freshness: cancellations, venue changes and date shifts arrive nowhere; Organizer side: shops have no reason to tell your laptop about their new league night; Discovery for travel: the whole point of a directory is events in cities you do not know; Whatever normalization the real site does across games, formats and regional naming chaos. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to tcgevents?

No mature open-source alternative worth pointing at, which is exactly why the one-shot prompt on this page exists.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.