Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
Interactive 3D globe of tech conferences worldwide. Filter by topic, date and distance, then add events to your calendar.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A 3D globe of tech conferences, summits and expos for the whole technology community, not just developers. See where events are and when they happen, then narrow them to what matters to you.
Live site: https://www.techeventsapp.us
Status: live. It reads approved events from a Supabase database and falls back to 27 built-in sample events if the database can't be reached.
.ics download| Parameter | Meaning | Example |
|---|---|---|
w | time window in days, or all | w=90 |
c | focus areas, comma separated | c=cyber,offsec |
q | search text | q=kubecon |
n, mi | distance origin (a city from the data) and miles | n=London&mi=250 |
e | open event id | e=defcon35 |
v | flat for the 2D map | v=flat |
It is a single static file. Open index.html in a browser, or serve the folder:
npx serve .
The page loads globe.gl and fonts from CDNs, so it needs a network connection.
Import the repo in Vercel. Framework preset: Other. No build command and no output directory needed. Every push to main redeploys. The site runs at https://www.techeventsapp.us.
The page runs without a backend. To use a database:
supabase/migrations/20261026120000_create_events.sql (SQL editor, or supabase db push with the CLI). It creates events and event_deadlines with PostGIS, row-level security, and an events_near(lat, lng, miles) function.supabase/seed.sql to load the 27 sample events as approved.config.js. Never put a service-role key there.Access rules: anyone can read events with status = 'approved'. Signed-in users can insert events as pending. Approving or rejecting is done with the service role (dashboard or the future ingestion job).
A scheduled GitHub Action (.github/workflows/ingest.yml, Mondays 06:17 UTC, or run it by hand from the Actions tab) pulls upcoming conferences from the open confs.tech conference data, geocodes the cities with OpenStreetMap Nominatim, skips anything already in the database (any status, so rejected events do not come back), and inserts the rest as pending. Nothing shows on the site until you approve it. Code is in ingest/ and has no dependencies (Node 22).
Setup, once: in the repo go to Settings, Secrets and variables, Actions, and add SUPABASE_URL and SUPABASE_SERVICE_KEY (the service role or secret key from Supabase, API settings). That key bypasses row-level security, so it lives only in GitHub secrets and never in config.js. Then run the workflow by hand with dry run on, read the summary, and run it again with dry run off.
What it skips: online-only events, entries without a city, past events, bad dates or links, and events longer than 21 days. It never changes a row that already exists.
Review the queue in the Supabase table editor, or in the SQL editor:
-- what is waiting
select id, name, start_date, city, country, categories, metro
from public.events where status = 'pending' order by start_date;
-- approve everything you checked
update public.events set status = 'approved' where status = 'pending' and source like 'confs.tech%';
-- or approve / reject one
update public.events set status = 'approved' where id = 'some-event-id';
update public.events set status = 'rejected' where id = 'some-event-id';
Things to check while reviewing: the category guess (confs.tech "data" events are filed under machine learning, which is only a nearest fit), the metro grouping, and odd city names in the source data. Run the unit tests with node --test ingest/test.mjs.
The built-in sample lives in the RAW array inside index.html:
[id, name, start, end, city, country, lat, lng, metro, categories, url, kind, source, venue, note]
kind is official (organizer site) or listing (a third-party list)metro groups events for clustering, so use the same string for the same city areaDEADLINES object, keyed by event idThe database uses the same fields (categories is text[], source replaces the sample's source column). See the migration for the exact columns and checks.
Dates move. Confirm with the organizer before you book.