I Built an App to Stop AI Projects From Dying in Spreadsheets
I have watched too many AI initiatives crash and burn. Not because the tech failed, but because nobody could agree if they were worth building in the first place. You have been in those meetings. Someone suggests a chatbot. Someone else suggests predictive analytics. Everyone nods. Nobody prioritizes. Three months later, you have six half finished proofs of concept and an empty budget.
I got tired of that cycle. So I built Ascend.
What It Actually Does
Ascend is a campaign management tool for AI use cases. It is built around the BXT framework that Microsoft uses, which breaks down initiatives into nine specific criteria. You score each use case on things like executive alignment, technical risk, and whether your users will actually adopt it or mutiny against it.
The app does the math for you. It calculates two key scores: Strategic Business Impact (how much it matters) and Executional Fit (how doable it is). Then it drops every use case onto a quadrant chart. Top right corner? Accelerate that. Bottom left? Shelve it without guilt. No more guessing. No more political arguments disguised as strategy.
How It Is Built
I built this with a modern React stack because I wanted something that feels fast and responsive, not like a corporate database from 2008.
The frontend runs on React 18 with TypeScript. I chose TypeScript because catching bugs at compile time saves my sanity at 2am. The styling uses Tailwind CSS with shadcn/ui components, which keeps everything looking clean without me having to become a CSS artist. For animations and transitions, I used Framer Motion so the interface feels smooth when you drag a slider or switch between views.
For the visual quadrant chart, I integrated Recharts. I looked at heavier visualization libraries, but Recharts just works with React without forcing me to write 200 lines of configuration. For PDF exports, I used jsPDF so you can generate boardroom ready reports even when you are offline.
The Architecture and Data Storage
Here is how it actually works under the hood. The app uses a single page application architecture. You hit the landing page, authenticate, then enter the main application shell. From there you can manage campaigns, drill into individual use cases for scoring, or access the admin panel if you have the right permissions.
All your data lives in secure remote storage. I use Zustand for state management on the frontend because it is lightweight and handles complex state updates beautifully, but the actual persistence layer is remote and secure. When you save a campaign or update a use case score, that data syncs to secure backend storage. You get the speed of a local feeling interface with the safety and accessibility of cloud based data.
This means your team can collaborate in real time. You can access your campaigns from any device without worrying about browser storage limits or losing everything if you clear your cache. The data architecture is built for teams that actually need to share work, not just individuals working in isolation.
The scoring logic runs client side for speed, so the quadrant chart updates instantly when you move a slider. But every change gets persisted remotely. Strategic Business Impact combines your strategic fit score with the average of your business criteria. Executional Fit averages your experience scores and your technology scores. The overall score is the average of everything. It is simple math, but applied consistently across every project, and stored safely where you cannot accidentally delete it.
Security and Access Control
I built role based access control because I have seen what happens when everyone can edit everything. Chaos. Admins can configure the site, manage users, and view system reports. Regular users see only their campaigns. It keeps the noise down and the data secure.
Authentication is handled properly with secure session management. Passwords are stored using appropriate hashing. The application runs behind Nginx with security headers, gzip compression, and proper routing configuration. Whether you deploy this via Docker Compose or to your own infrastructure, it follows security best practices out of the box.
Why I Made These Choices
I wanted the responsiveness of a modern web app with the reliability of enterprise grade data storage. Remote persistence means your work is safe even if your laptop dies. It means your team can work asynchronously without emailing spreadsheets back and forth. It means you get backups and data integrity without thinking about it.
The BXT framework made the cut because it is battle tested. Microsoft uses this for their own AI evaluations. It forces you to think about business value and user experience and technical feasibility simultaneously. Most teams skip one of those. Usually the user experience part. This framework does not let you.
Who This Is Actually For
If you run an AI center of excellence, you need this. If you are a consultant pitching AI strategies to clients, you need this. If you are a product manager trying to decide which AI features to build next quarter, you need this.
It is not for training models. It is not for data science experiments. It is for the messy work of deciding which experiments deserve funding, with the confidence that your data is stored securely and accessible to your whole team.
The Honest Truth
Ascend will not save a bad AI strategy. If your organisation cannot define business value, no app can fix that. But if you have good ideas and just need a way to compare them fairly, this removes the noise. It forces rigor. It creates documentation of why you said no to things, which is sometimes more valuable than what you said yes to.
Your data stays secure. Your team stays aligned. Your decisions get better.
I built this because I needed it. Now I am sharing it because I bet you need it too.
Check it out. Deploy it in five minutes. See if it changes how your team talks about AI.
- Dee.