Two Months of Building Pediment
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
| Feature | Component | Status | Start | End | Challenges |
|---|---|---|---|---|---|
| Front-desk ticketing | Cart UI | π’ Working | Jun 8 | Jun 9 | Wanted 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 ticketing | Cash/card/check/comp flows | π’ Working | Jun 9 | Jun 10 | Wanted 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-in | Member lookup by name or email | π’ Working | Jun 15 | Jun 17 | Wanted 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 tracking | Levels | π’ Working | Jun 23 | Jun 24 | Wanted 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 tracking | Expiration tracking | π’ Working | Jun 24 | Jun 25 | Wanted 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 tracking | Renewals | π’ Working | Jun 25 | Jun 26 | Wanted 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 tracking | Basic entry | Planned | Jun 30 (est) | β | β |
| Donor tracking | Reports | Planned | Jul 1 (est) | β | β |
| Invoicing | Basic entry | Planned | Jul 2 (est) | β | β |
| Invoicing | Payment tracking | Planned | Jul 3 (est) | β | β |
| Basic reporting | Dashboard and reports | Planned | Jul 6 (est) | β | β |
| Email integration | Google OAuth setup | Planned | Jul 8 (est) | β | β |
| Email integration | Welcome and receipt emails | Planned | Jul 9 (est) | β | β |
| Email integration | Outlook OAuth setup | Planned | Jul 10 (est) | β | β |
| Card payments | Stripe integration | Planned | Jul 13 (est) | β | β |
Post-MVP
| Feature | Component | Status | Start | End | Challenges |
|---|---|---|---|---|---|
| Online ticketing | Public ticket listing | Planned | Aug 1 (est) | β | β |
| Online ticketing | Checkout flow | Planned | Aug 4 (est) | β | β |
| Online ticketing | Email confirmation | Planned | Aug 7 (est) | β | β |
| Mixed payments | Split tender (cash + card) | Planned | Aug 9 (est) | β | β |
| Mixed payments | Partial payment tracking | Planned | Aug 12 (est) | β | β |
| QR code check-in | QR generation for members | Planned | Aug 14 (est) | β | β |
| QR code check-in | Scanner at front desk | Planned | Aug 17 (est) | β | β |
| QR code check-in | Member portal to view code | Planned | Aug 20 (est) | β | β |
| Grants management | Grant record creation | Planned | Aug 23 (est) | β | β |
| Grants management | Status tracking | Planned | Aug 26 (est) | β | β |
| Grants management | Grant reporting | Planned | Aug 29 (est) | β | β |
| W9 collection | Upload portal | Planned | Sep 1 (est) | β | β |
| W9 collection | Secure storage | Planned | Sep 4 (est) | β | β |
| W9 collection | Status tracking | Planned | Sep 7 (est) | β | β |
| Contracts module | Template management | Planned | Sep 10 (est) | β | β |
| Contracts module | E-signature integration | Planned | Sep 13 (est) | β | β |
| Contracts module | Document storage | Planned | Sep 16 (est) | β | β |
| Audit log | Event capture middleware | Planned | Sep 19 (est) | β | β |
| Audit log | Log viewer in admin | Planned | Sep 22 (est) | β | β |
| Audit log | Filter and search | Planned | Sep 25 (est) | β | β |
| Email template editor | Template editor UI | Planned | Sep 28 (est) | β | β |
| Email template editor | Variable insertion | Planned | Oct 1 (est) | β | β |
| Email template editor | Preview and send test | Planned | Oct 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
Planning Out Pediment
A month of research and planning before building Pediment, my museum operations app.
I'm Building The Pediment App For Museums
After stumbling onto Reddit complaints about museum software, I decided to build an alternative.
I Built a Body Clock for ADHD Brains
I built an app because I keep forgetting to drink water. It turns out thousands of other people have the same problem.