Platform Guide
Complete how-to documentation for managing your platform, auctions, artists, and events.
Platform Overview
The platform consists of two public websites backed by a single shared API (Cloudflare Worker + D1 database):
| Component | URL | Purpose |
|---|---|---|
| Hub Website | kokishin-arts.com | Public home for Kokishin — events, artists, auctions, members portal |
| Cockpit | kokishin-arts.com/cockpit | Admin control panel for everything |
| Artist Site | thewaterandoilartist.com | Brad's personal gallery, portfolio, and auction landing page |
| API / Worker | (internal) gavels-worker on Cloudflare | All data, auth, image storage, notifications |
Both websites pull from the same Worker API. Data you manage in the Cockpit immediately appears on both sites.
Hub public pages
| Page | URL | What it shows |
|---|---|---|
| Home | / | Overview, What's On section, artist spotlight, newsletter signup |
| Events | /events | Upcoming events and auctions, filterable by type |
| Artists | /artists | Artist roster with avatars, bios, and apply CTA |
| Auctions | /auctions | All auctions with Live / Upcoming / Past tabs and lot counts |
| Members | /members | Bidder login, auction list, lot grid, and bid/buy-now portal |
| Privacy | /privacy | Privacy policy |
| Terms | /terms | Terms of use and bidding rules |
Accessing the Cockpit
- Go to kokishin-arts.com/cockpit
- Sign in with your admin credentials:
- Master admin: leave the email field blank, enter the master password
- Named admin users: enter their email and password
- The Cockpit opens to the Dashboard
Hub Public Pages
The hub website at kokishin-arts.com is fully dynamic — all content comes from the API. You manage everything through the Cockpit; there's no HTML to edit for day-to-day operations.
Home page
The "What's On" section automatically shows the next 3 upcoming events and the most recent live or upcoming auction. The artist spotlight loads the first 3 active artists from the database. The newsletter signup stores emails in the newsletter_subscribers table.
Events page (/events)
Shows all events from the Events section of the Cockpit, merged with upcoming auctions. Visitors can filter by event type. The filter tabs are built dynamically from the event types you've actually used — no configuration needed.
Artists page (/artists)
Shows all active artists from the Artists section of the Cockpit. Displays avatar (or initials if no photo), name, discipline, bio excerpt, and website link. An "Apply" CTA at the bottom sends applications to the Cockpit's Applications section.
Auctions page (/auctions)
Lists all auctions with Live / Upcoming / Past filter tabs. Each card shows status, description, venue, date, and lot count. The "Place a Bid" button links to the Members portal.
Members Portal (/members)
The Members portal is where registered bidders log in to bid. It supports two login methods:
- Email + password — traditional login for bidders with passwords set
- SMS code — sends a one-time code to the bidder's phone; no password needed
After login, bidders see their registered auctions, can browse lots with photos and current bids, and can place bids or buy-now purchases. The session is remembered for the browser tab.
Dashboard
The Dashboard is the first screen after login. It shows a live snapshot of the platform:
- Recent Events — the last few events created, with a link to the Events section
- Recent Auctions — the last few auctions, with a link to the Auctions section
- Quick actions — one-click buttons to create a new event, auction, or add an artist
Events
The Events section manages all non-auction events (gallery openings, artist talks, venue shows, etc.) that appear on the hub's /events page and home page.
Creating an event
- Click + New event
- Fill in: Title, Type, Venue, Date & Time, Description
- Optionally set a Ticket URL and Hero image
- Set Status to Published to make it visible on the website
- Click Create event
Event types
The "Type" field drives the filter tabs on the /events page. Use consistent type names (e.g., "Gallery Opening", "Artist Talk", "Auction", "Workshop") so the filters group correctly.
Hero images
After saving an event, an upload button appears on the hero image field. Click it to upload a photo from your computer — it's stored in Cloudflare R2 and the URL is saved automatically. Recommended: landscape images at 16:9 ratio.
Auctions
The Auctions section is where you create and configure all auctions. Each auction has its own lots, timing, and settings.
Creating an auction
- Click + New auction
- Fill in the Basics tab: Name, Status, Venue, Description, Beneficiary
- Set the Timing tab: online opens date/time, live event date/time, close date/time, close rule
- Set the Rules & Pricing tab: buyer's premium %, default bid increment, Buy Now policies
- Click Create auction
- The dialog switches to the Lots tab — add lots now or close and come back later
Auction statuses
| Status | Visible on hub? | Bidding allowed? |
|---|---|---|
| Draft | No | No |
| Published | Yes (upcoming) | No |
| Pre-live | Yes | Yes — online bidding open |
| Live | Yes — highlighted | Yes — live auction active |
| Closed | Yes — past tab | No |
| Cancelled | No | No |
Lots
Lots are managed inside each auction. Open an auction by clicking its edit (pencil) icon, then go to the Lots tab.
Adding a lot
- Click + Add lot
- Assign a lot number (or leave blank to auto-number)
- Optionally link to an artwork from the artist database — this pre-fills title and artist
- Or enter a custom description for lots not in the gallery
- Set estimates, minimum bid, reserve price, and Buy Now price
- Click Add lot to save
Lot statuses
| Status | Meaning |
|---|---|
| Open | Available for bidding |
| Active | Currently being called at the live event (highlighted in monitor) |
| Sold | Hammer has fallen — no more bids accepted |
| Passed | Lot did not meet reserve and was passed |
| Withdrawn | Removed from sale |
Live Monitor
The Live Monitor gives you a real-time view of any auction's lots — current bids, statuses, and quick controls — without leaving the Cockpit. This is the view to keep open during a live event.
Using the monitor
- Click Live Monitor in the sidebar
- Select the auction from the dropdown — it auto-selects the first Live or Pre-live auction
- The lot grid shows all lots with: photo, lot number, title, artist, current bid, and status
- The stats bar shows: total lots, open/active count, sold count, and total hammer value
- The view auto-refreshes every 30 seconds. Click Refresh now at any time
Changing lot status from the monitor
Each open lot card has a status dropdown. Use it to:
- Set a lot to Active when the auctioneer calls it (it gets a gold border)
- Set it to Sold when the hammer falls
- Set it to Passed if it didn't reach reserve
Artists
The Artists section manages the roster of artists that appear on the /artists hub page and throughout the platform.
Adding an artist
- Click + Add artist
- Fill in: Name, Level (emerging/established/featured), Type/Discipline, Bio, Website, Instagram, City
- Set Active to Yes to show them on the public artists page
- Click Create artist
- After saving, click the avatar upload button to add a profile photo
Artist artworks
Each artist has their own artwork library. Select an artist from the left panel, then use the artwork section on the right to add, edit, or remove works. Artworks can be linked to auction lots — select the artist's artwork when creating a lot to pull in the title and artist automatically.
Artwork images
Each artwork can have multiple images. Use the upload button in the artwork edit modal to add photos. The first image uploaded becomes the primary/cover image. Click a thumbnail to set a different image as primary. Images are stored in Cloudflare R2.
Registrations
The Registrations section shows all bidder accounts (clients) who have registered through the Members portal. You can:
- View registrant details: name, email, phone, auction(s) registered for, paddle number
- Search by name or email
- Filter by auction
- Manually add a bidder by clicking + Add registration
- Edit a registration to update contact info or paddle number
Applications
The Applications section receives submissions from the "Apply" forms on the hub website — artist applications, venue inquiries, and sponsor requests.
Processing an application
- Click any application to open it and read the full submission
- Update the status: New → Reviewing → Accepted / Declined / Waitlist
- Add internal notes if needed
- Click Save
Accepted artist applicants can then be formally added as an Artist record in the Artists section.
Communications
The Communications section lets you send email and SMS notifications to registered bidders (clients).
Sending to an individual
- Select the bidder from the dropdown
- Choose a message type and compose your message
- Click Send Email or Send SMS
Sending to all bidders
Use the "Send to All" buttons to email or SMS all registered bidders for the selected auction — useful for pre-event reminders.
Admin Users
Additional admin users can log into the Cockpit with their own email and password.
Adding an admin
- Go to Admin Users in the sidebar
- Click + Add admin user
- Enter name, email, and a password for them
- Click Add
Master admin vs. named admins
- Master admin — uses the
ADMIN_PASSWORDsecret, no email required. Cannot be changed from the Cockpit UI — must update the secret directly (see Secrets below). - Named admin users — email + password. Can change their own password in Settings after logging in. Can be removed from the Admin Users section at any time.
Settings
The Settings section lets the currently logged-in admin change their display name, email address, and password.
npx wrangler secret put ADMIN_PASSWORD from the worker directory.Artist Site — thewaterandoilartist.com
The artist site is Brad's personal portfolio site. It shares the same API as the hub — artwork, auction, and lot data is the same. Key pages:
| Page | URL | Purpose |
|---|---|---|
| Home / Gallery | / | Portfolio, collections, auction section |
| Auction App | /auction_app_final.html | Legacy full auction management view (still functional) |
| Bidder Portal | /bidder-portal.html | Legacy bidder login portal |
Auction Section on Artist Site
The auction section on the main page of thewaterandoilartist.com auto-loads from the API:
- Featured lot — photo of the lot set as featured in the auction settings
- Current bid + status — live data from the API
- Upcoming auctions — lists Live, Pre-live, and Draft auctions with dates
To update what appears: change the auction's featured lot in the Cockpit (Auctions → edit auction → Basics tab → Featured Lot field — this field appears once lots exist).
Deployment & Updates
Deploy the hub website (kokishin-arts.com)
cd C:\Users\artis\OneDrive\Desktop\gavels-deploy
npx wrangler pages deploy . --project-name=gavels-art-and-entertainment
Deploy the artist site (thewaterandoilartist.com)
cd C:\Users\artis\OneDrive\Desktop\Downloads\thewaterandoilartist-site
npx wrangler pages deploy . --project-name thewaterandoilartist-site
Deploy the API Worker
cd C:\Users\artis\gavels-worker\gavels-worker
npx wrangler deploy
File Locations
| Component | Local Path |
|---|---|
| Hub website (all hub pages) | C:\Users\artis\OneDrive\Desktop\gavels-deploy\ |
| Cockpit admin panel | C:\Users\artis\OneDrive\Desktop\gavels-deploy\cockpit\index.html |
| Artist site files | C:\Users\artis\OneDrive\Desktop\Downloads\thewaterandoilartist-site\ |
| Worker / API source | C:\Users\artis\gavels-worker\gavels-worker\src\index.js |
Managing Secrets
cd C:\Users\artis\gavels-worker\gavels-worker
npx wrangler secret put SECRET_NAME
Current secrets in use:
| Secret | Purpose |
|---|---|
ADMIN_PASSWORD | Master admin password for the Cockpit |
RESEND_API_KEY | Email delivery via Resend (3,000 free emails/month) |
STRIPE_SECRET_KEY | Payment processing (use sk_test_... for sandbox) |
TWILIO_ACCOUNT_SID | SMS delivery — Twilio account ID |
TWILIO_AUTH_TOKEN | SMS delivery — Twilio auth token |
TWILIO_PHONE_NUMBER | SMS sender number |
ADMIN_PASSWORDWater may exist alongside the correct ADMIN_PASSWORD. Delete the stray one from the Cloudflare dashboard under Workers & Pages → gavels-worker → Settings → Variables & Secrets.Frequently Asked Questions
Everything is now managed from the Cockpit at kokishin-arts.com/cockpit. The Cockpit replaces the old Auction App and Gallery Admin with a single unified interface covering auctions, lots, artists, artworks, events, registrations, applications, and communications. The old auction app at thewaterandoilartist.com/auction_app_final.html still works as a legacy view but the Cockpit is the primary tool going forward.
Use the Live Monitor in the Cockpit sidebar. It shows all lots for the selected auction with current bids, statuses, and photo thumbnails. It auto-refreshes every 30 seconds and you can click "Refresh now" at any time. Use the status dropdown on each lot card to mark lots Active (current lot), Sold, or Passed as the event progresses.
In the Cockpit, go to Auctions, click the pencil icon on your auction, go to the Basics tab, change Status to Live, and click Save changes. The hub website, artist site, and member portal will all reflect the live status immediately.
Go to Artists in the Cockpit sidebar, click + Add artist, fill in their details, and set Active to Yes. After saving, use the avatar upload button to add their photo. They'll appear on the /artists page immediately.
Save the record first (artist or event), then an upload button appears next to the avatar or hero image field. Click it to select a file from your computer — photos are uploaded to Cloudflare R2 and the URL is saved automatically. You don't need to handle URLs manually.
Bidders go to kokishin-arts.com/members, enter their name, email, and phone number to create an account, and choose which auction(s) to register for. They'll receive a paddle number automatically. You can also add bidders manually from the Registrations section in the Cockpit.
Two options: (1) Direct them to use the SMS code tab — they enter their phone number and receive a one-time code (requires Twilio active). (2) Go to Cockpit → Registrations, find their record, and check/update their email address. If their password is missing, they can request a reset link from the email login tab.
Yes. Create as many auctions as needed — each has its own lots, registrations, and settings. The /auctions hub page shows all of them categorized. The Live Monitor lets you select which auction to watch. Bidders in the Members portal see all auctions they're registered for.
In the Cockpit, go to Auctions, edit the auction, and on the Basics tab find the Featured Lot dropdown (this appears once you have lots). Select the lot and save. Its primary photo will appear in the auction section on thewaterandoilartist.com.
When adding or editing a lot, use the Linked artwork dropdown to connect it to an artwork in the artist database. This auto-fills the title and artist fields. You can also create a custom lot without linking to an artwork — just fill in the description manually.
Go to Events in the Cockpit sidebar, click + New event, fill in the details, set Status to Published, and save. It will appear on the /events hub page and in the "What's On" section on the home page immediately.
Applications appear in the Applications section of the Cockpit. Click any application to read the full submission, update its status (New → Reviewing → Accepted/Declined/Waitlist), and add internal notes. If you accept an artist, add them formally in the Artists section.
Go to Communications in the Cockpit, compose a reminder message, and click Send to All. You can also choose a pre-built "Auction Reminder" template that auto-fills the auction name, date, time, and venue.
Yes — go to Admin Users in the Cockpit sidebar and add as many named admins as needed. Each gets their own email and password. The master admin password always works alongside named admin accounts.
Run: cd C:\Users\artis\OneDrive\Desktop\gavels-deploy then npx wrangler pages deploy . --project-name=gavels-art-and-entertainment. The deploy takes about 10–30 seconds and the live site updates immediately.
Cloudflare free tier covers Workers (100K requests/day), Pages (unlimited), R2 (10GB storage), and D1 (5GB database). Resend email is free for 3,000 emails/month. Stripe charges 2.9% + 30¢ per successful transaction. Twilio SMS costs depend on volume. The baseline cost for a low-volume auction is effectively $0 outside of Stripe transaction fees.
Yes. The Cockpit is fully responsive and works on mobile browsers. The Live Monitor is particularly useful on a tablet — you can watch lot status and make quick changes without needing a laptop on the table.
US carriers require A2P 10DLC registration or toll-free number verification before SMS can be delivered in volume. Complete this registration in the Twilio console. In the meantime, use email notifications — they work immediately through Resend.
Kokishin Arts — Platform Guide
Built on Cloudflare Workers, Pages, D1 & R2 · Email by Resend · SMS by Twilio · Payments by Stripe