Writing Custom Applications Using AI

March 14, 2026

Introduction

Whether we like it or not, AI is here to stay. Personally, I am tired of hearing about it and how people "vibe coded" something. That being said, that is pretty much what this post is about. Just to clarify, I am using AI to refer to Large Language Models also known as LLMs.

I was asked to have a meeting to talk to other developers about how I use AI tools to write code. I have over time found it to be a major time saver using AI tools by letting it focus on the coding and let me focus on making sure the product is what the users are looking for.

Prompt AI vs Coding AI

For me personally, I like to focus on the business side of things and figuring out what problems exists so I can make solutions to solve the problem. I don't particularly care to do a deep dive into becoming some amazing prompt engineer. Why do that when I can have AI do that also?

Keeping that thought in mind, I tend to use AI in a couple of different ways when writing an application. First I use what I will call a "Prompt AI" and then I use a "Coding AI". In reality, they could be the same AI, but I have found some implementations of certain AIs to be better used for one or the other.

Prompt AI

In order to create a prompt that I will ultimately use for generating code from, I typically use Claude.ai website or Claude Desktop. You can also use Gemini, ChatGPT, or really any other AI that you prefer. It doesn't really matter which one you use, just more of how you use it.

What we are doing with this AI is we are using it to create your prompts to tell your coding AI what to do. One of the great things about this is it makes you come up with and document solid requirements for the application you are building. The AI can even produce very good documentation from your prompts that give you some great requirements documentation and user guides for the application.

We will get more into creating this prompt later. For now I just wanted to introduce you to the concept.

Coding AI

Next we have the AI you will use to actually generate or modify code.

This again doesn't really matter which AI you use, but there are certain ones that have better integrations with certain development environments.

If I am in Linux command line, I am going to use Claude Code. If I am using Visual Studio Code in a GUI, I will use the Claude plug-in for Visual Studio Code. Visual Studio Code also has many other AI integrations including open models in case you are hosting something like Qwen2-Coder or something similar on your local machine or on a server in your network.

When I am on Windows, I enjoy the Visual Studio experience with Github Copilot. I do usually change the model to Claude and don't utilize ChatGPT models. This is simply because I personally think Claude is much better at writing code than ChatGPT is. That has been my personal experience at least.

Ultimately, the "Coding AI" just tends to be whatever AI you use that integrates well into your development environment.

Write A Prompt to Create A Prompt

Now that we have clarified what I mean by Prompt AI vs Coding AI, we can take a look at using the Prompt AI to start generating prompts for our Coding AI to use.

Creating a prompt is probably one of the most important parts of this process. Like I mentioned before, I am not interested in studying the perfect way to create prompts. That is a job AI can do. However, in order for AI to create a good prompt, we have to give it good information about what we are wanting it to create a prompt about.

Before you start this process, you will want to gather good requirements on what your application will need to do. You will also want to instruct it on any particular technologies you and your development team are comfortable with.

Sidebar: A Note on AI and Developer Jobs While that last point may seem a little out of place here, I do not believe that AI is going to be taking the jobs of software developers anytime soon. I do believe it is a powerful tool we can utilize though. As a software developer you should still be able to troubleshoot and modify code that the AI builds for you. Sometimes it will come up with some not great ways of doing things or it may be quicker for you to just make a quick code tweak instead of having to go through a whole prompting and coding process with AI if there is a small issue you found in the code.

To get started with making your first prompt, make sure to include the following things.

  • Preferred tech stack
    • I usually use .NET C# 10 (It can run on Windows or Linux)
    • For database PostgreSQL, but MSSQL is a good business choice
    • For UI, I use Blazor (Web Based)
  • Design decisions
    • Will there need to be authentication through SSO or LDAP?
    • Does it need to have a dark mode?
    • What kind of things would you like to control in the admin section?
    • What features would you like in the application?
    • Make sure to notate what is an optional feature or a nice to have vs what is a priority.
  • Business requirements
    • What is the general purpose of the application?
    • What are the business rules in the application?
    • What is the workflow of the application?
    • What kind of roles will users have in the application?
    • Are there roles that are responsible for certain parts of the workflow?
    • Are certain roles not allowed to see or do things in the app?
    • Are there any integrations with other systems that you will want to build?

Be sure to let the Prompt AI know if there is anything that would be nice, but you don't want to do it if it is going to be very complex. There are usually libraries other people created that it can use to serve the purpose of what you are trying to do.

Your first prompt does not need to be perfect. You can always discuss with the AI what anything you forgot or new ideas it triggered you to have by reading through the prompts it generates for you. Pretty much every time I start creating a prompt for a project, I read through the first prompt that was generated and get a lot more ideas of things to add or change. This is usually because AI has included something in the prompt that I didn't really ask for, but is a good addition to what I did ask for.

Here is an example of a prompt that you can use.

I am wanting to write a personal website that I can use for keeping a blog and post information that will act kind of like a personal resume. Please use the following technical preferences.

- I would like it to be built in .NET 10 (newest LTS release at this point in time)
- Use Blazor as my web UI
- Use PostgreSQL as my database
- I would like this to be deployed to a Linux server. I prefer EndeavourOS.
- Blog posts should be saved in the database as markdown files and be converted to HTML when they render on the site

I would like the following features on the site. 

- Introduction page
- About Me page
- Blog page
- Contact page
- An admin section that is only accessible if I authenticate through Google SSO.
- Admin pages should let me create and edit blog posts

Please create me a prompt that I can pass to Claude Code to code this for me. Please make sure Claude will follow best practices while generating code. 

If you used the above prompt you will get a large and detailed prompt back. The prompt will include instructions for Claude Code including C# classes, SQL scripts and more.

Phase the Prompt

For the tinkerers out there and people on a budget, we are not buying the highest subscription for different AI models like Claude. I am fine parting with $20 a month, but $100 is a bit steep since I don't use it all the time.

If you know you have consumption restrictions such as a lower level subscription of Claude Code or some other AI, then you can tell you prompt AI to break up the phases into sections so that you don't run out of tokens in the middle of the coding AI writing the code.

For example, if you get the Claude Pro subscription, your token limit is much lower than if you went with a much higher Max plan. Your Prompt AI should be able to estimate how much work needs to be done in each phase based on tokens it would use to build a feature. Keeping that in mind, you can tell your Prompt AI to break up the original prompt into smaller prompts and phases in order to conform to your AI subscription limitations.

I previously used Claude to create phases for Claude Code on a pretty big project. It was fairly accurate on creating the phased prompts. Sometimes I could do 2 prompts, test, and troubleshoot both before I hit my usage limit for the 5 hour span. All I had to tell it was that I had a Claude.ai Pro subscription and it looked up how many tokens that includes. It then broke up the bigger prompts that it had generated previously into much smaller prompts.

Be sure to check your token limit and when your token limit resets. As mentioned, for Claude it is every 5 hours.

Additionally, you can tell Claude to generate markdown files for each prompt so that you can download them and keep them in a folder in your project. This way if you ever need to know what was passed into the prompt, you can go back and look to see what is in the markdown files. This creates documentation that you can look back on months or years later to understand why the code was generated a certain way.

Before you start Building

My #1 tip in this whole post is to create a git repo that you will use for development. We need this in case AI goes off the rails and we need to roll the code back to a good state. This saved me a few times.

Make sure to create proper branching in accordance with your company's policies. If you are just a tinkerer, I recommend doing some research on git branching if you are not familiar with it. A few places you can check out that have some good tutorials are git-scm website and atlassian tutorials.

I also recommend creating a "prompt" folder in your repository that you can use to store markdown files for each prompt that you use for prompting the coding AI to generate or modify code.

Building the App

Now that we have our prompt(s), we can finally start generating some code. Fire up your favorite Coding AI and let's get coding.

This part of the process is very cyclical. You will need to do these steps for each phase/prompt from that you received from the Prompt AI.

  1. Paste the prompt for your current phase in the your coding AI.
  2. Once the code is generated, check using your git compare to see what changes have been made. Make sure AI didn't change anything it wasn't supposed to. You can get a pretty good idea of this based on the prompt you passed in.
  3. Run the application and test to make sure nothing broke. You can either manually test this or if it is a big application, have the AI write tests to run after each cycle to make sure nothing that was previously working is now broke.
  4. Test to make sure the new feature or code that was added is working properly.
  5. Optional depending on Coding AI you are using - Generate a development summary document to pass in with the next prompt so that your AI knows what it already did. Ask it to include the following:
    1. What was built
    2. The current data model
    3. Interfaces and contracts
    4. What's intentionally unfinished
    5. Known issues or trade-offs
    6. Assumptions made
  6. Add your prompt markdown file to the prompt directory
  7. Commit and push code to your git repository
  8. Start the next cycle.

Step 5 is not needed for Claude Code as Claude Code automatically handles the context behind the scenes. You can read more about how Claude does this by reading Claude's documentation.

It still wouldn't hurt to do this at the end of each coding session or end of the day so that you can pass it in with your next prompt when you start coding again, especially if you have to create a new chat.

Conclusion

While this is yet another AI post on the Internet, I do hope it provided you some value as you are working on a project. The information I laid out above is simply what has worked for me up to this point. You may find other things to add or remove from this process that will help you.

Thank you for reading and I hope you check back in the future for more posts on coding and technology.

I don't have a comments section yet, so feel free to send me feedback on this blog.


Author: Kevin Williams

Kevin is a data engineer and is the Business Intelligence Practice Lead at Software Design Partners specializing in data warehousing. He is a father, an occasional gamer, and lover of many different types of music.


The opinions expressed on this site are my own and may not represent my employer's view.
Share this post
About this blog...

A real workflow for building apps with AI — how to use one AI to write prompts and another to write code. Covers requirements gathering, phasing for token limits, git safety, and keeping your sanity, without becoming a prompt engineering expert.

Archives


An error has occurred. This application may no longer respond until reloaded. Reload 🗙