← Home

Two Months of Building Pediment

· 7 min read

#personal#startup#programming

It’s been two months since I stumbled onto that museum subreddit and decided to build something.

I spent the first few weeks on research and planning, then started building after getting back from a trip to Spain. By the time I sat down to write this, the core features were taking shape: front-desk ticketing, member check-in, and membership tracking are all working.

Donor tracking, invoicing, email integration, and basic reporting are all planned for July. I also decided to defer online ticketing for later (museums want visitors to buy tickets on their website, not just at the front desk). Card payments are on hold for now after running into some issues with the test payment tools.

There’s a longer list of things I want to add once the core is stable: QR code check-in so members don’t need to give their name every time, grants management for museums that apply for funding, W9 collection and contracts for when they hire contractors, an audit log for accountability, and customizable email templates. I’ve got rough estimates for each in the table below.

The tables below show where everything stands.

MVP

FeatureComponentStatusStartEndChallenges
Front-desk ticketingCart UI🟒 WorkingJun 8Jun 9Wanted to test the app from another computer on the same network, but it only worked on the machine running the code. The development server was set to only listen to itself. Fixed by changing the network settings so other devices could connect.
Front-desk ticketingCash/card/check/comp flows🟒 WorkingJun 9Jun 10Wanted to test credit card payments, but the card testing tool couldn’t handle the latest payment features because it was a version behind what the code expected. Decided to put card payments on hold for now and focus on cash and check instead.
Member check-inMember lookup by name or email🟒 WorkingJun 15Jun 17Wanted to create a new account, but the app kept sending me back to the login screen right after signing up. The login system needed a moment to save the new session before moving on. Fixed by adding a short pause before the redirect. This only happens on my development machine. The live site is not affected. Also, the database always returned results as a list even for single records: had to always pull the first item.
Membership trackingLevels🟒 WorkingJun 23Jun 24Wanted to let staff edit customer info directly on screen instead of opening a separate form, but the original setup only let you view data. It was designed for a different workflow. Fixed by rebuilding the data tables from scratch to support clicking and editing in place.
Membership trackingExpiration tracking🟒 WorkingJun 24Jun 25Wanted to publish the latest version of the app to the web server, but the connection kept freezing without any error message. The file transfer tool wasn’t configured to maintain a stable connection. Fixed by adjusting the connection settings to prevent timeouts.
Membership trackingRenewals🟒 WorkingJun 25Jun 26Wanted to restart the database while troubleshooting, but a supporting program grabbed an invalid network address and the whole system failed to start. Never fully figured out why: seemed to be a glitch in the database toolkit. Fixed by clearing everything and setting up a fresh database server. Still investigating the root cause.
Donor trackingBasic entryPlannedJun 30 (est)β€”β€”
Donor trackingReportsPlannedJul 1 (est)β€”β€”
InvoicingBasic entryPlannedJul 2 (est)β€”β€”
InvoicingPayment trackingPlannedJul 3 (est)β€”β€”
Basic reportingDashboard and reportsPlannedJul 6 (est)β€”β€”
Email integrationGoogle OAuth setupPlannedJul 8 (est)β€”β€”
Email integrationWelcome and receipt emailsPlannedJul 9 (est)β€”β€”
Email integrationOutlook OAuth setupPlannedJul 10 (est)β€”β€”
Card paymentsStripe integrationPlannedJul 13 (est)β€”β€”

Post-MVP

FeatureComponentStatusStartEndChallenges
Online ticketingPublic ticket listingPlannedAug 1 (est)β€”β€”
Online ticketingCheckout flowPlannedAug 4 (est)β€”β€”
Online ticketingEmail confirmationPlannedAug 7 (est)β€”β€”
Mixed paymentsSplit tender (cash + card)PlannedAug 9 (est)β€”β€”
Mixed paymentsPartial payment trackingPlannedAug 12 (est)β€”β€”
QR code check-inQR generation for membersPlannedAug 14 (est)β€”β€”
QR code check-inScanner at front deskPlannedAug 17 (est)β€”β€”
QR code check-inMember portal to view codePlannedAug 20 (est)β€”β€”
Grants managementGrant record creationPlannedAug 23 (est)β€”β€”
Grants managementStatus trackingPlannedAug 26 (est)β€”β€”
Grants managementGrant reportingPlannedAug 29 (est)β€”β€”
W9 collectionUpload portalPlannedSep 1 (est)β€”β€”
W9 collectionSecure storagePlannedSep 4 (est)β€”β€”
W9 collectionStatus trackingPlannedSep 7 (est)β€”β€”
Contracts moduleTemplate managementPlannedSep 10 (est)β€”β€”
Contracts moduleE-signature integrationPlannedSep 13 (est)β€”β€”
Contracts moduleDocument storagePlannedSep 16 (est)β€”β€”
Audit logEvent capture middlewarePlannedSep 19 (est)β€”β€”
Audit logLog viewer in adminPlannedSep 22 (est)β€”β€”
Audit logFilter and searchPlannedSep 25 (est)β€”β€”
Email template editorTemplate editor UIPlannedSep 28 (est)β€”β€”
Email template editorVariable insertionPlannedOct 1 (est)β€”β€”
Email template editorPreview and send testPlannedOct 4 (est)β€”β€”

What surprised me most is how much time went into the things you can’t see: permissions, data model decisions, handling edge cases. The features everyone sees are the easy part. Still, seeing it load on a real domain for the first time was a good feeling.

The next step is finding actual museums to try it. I need people who run a front desk to poke at it and tell me what’s broken, what’s confusing, and what’s missing. If you work at a small museum (or know someone who does), I’d love to hear from you. Email me at [email protected].

The Business!

I formed the LLC a few weeks ago: TSERING COMMERCE LLC. It’s a small thing on paper but it changes how I think about the project.

Continue reading