# Dashworth > Websites, search, and lead routing for local businesses. Dashworth was founded by David Ashworth, who has worked in marketing since 1993. Dashworth builds websites, lead routing, CRM cleanup, and AI search for local businesses. We meet in Northeast Florida, Florida, and on the East Coast, and in San Mateo, California. We also take contract roles: GTM engineer, RevOps, and marketing ops. This site is public. robots.txt allows crawling and points at the sitemap. Phone: 650-393-3378 Email: david@dashworth.com ## Services - [AI consulting](https://agency.dashworth.com/services/ai-consulting): AI consulting for small business in Northeast Florida and San Mateo. We pick where AI fits, then build the automation, CRM path, and search. - [AI automation](https://agency.dashworth.com/services/ai-automation): AI automation and agents for marketing, sales, and ops. Reporting, intake, documents, and CRM handoffs, with a person approving what ships. - [Marketing automation & CRM](https://agency.dashworth.com/services/marketing-automation-crm): Marketing automation consultant for Salesforce, HubSpot, and Marketo-style CRM setup: capture, lead routing, nurture, and attribution. - [Answer engine optimization](https://agency.dashworth.com/services/aeo-answer-engine-optimization): Get considered for Google AI Overviews, featured snippets, and voice answers. FAQ schema, speakable markup, and answer-first pages. No citation guarantee. - [Generative engine optimization](https://agency.dashworth.com/services/geo-generative-engine-optimization): Help ChatGPT, Gemini, Claude, and Perplexity describe your business. llms.txt, entity markup, and citable pages. No citation is guaranteed. - [Content & YouTube](https://agency.dashworth.com/services/content-youtube-automation): Daily content and YouTube publishing with a human review step. Bilingual video pipelines, landing pages, and schema. Views are not promised. - [Social media](https://agency.dashworth.com/services/social-media-automation): Social posting on a schedule, with an approval gate before anything goes live. Built around an agent workflow, not a pile of unattended accounts. - [Lead generation](https://agency.dashworth.com/services/lead-generation): Lead-generation sites and internal data tools: calculators, quote paths, and prospecting systems. Private records stay private. No lead-volume claims. - [AI-built websites](https://agency.dashworth.com/services/ai-website-builds): We build production websites in Cursor on Next.js, then we review them and ship them. You keep the code. Call 650-393-3378. - [Website design & management](https://agency.dashworth.com/services/web-design): We design, build, and manage websites that load on a phone and can rank. Northeast Florida and beyond. Call 650-393-3378. - [SEO](https://agency.dashworth.com/services/seo): Search engine optimization for Jacksonville and St. Augustine: clear structure, honest pages, and markup. No ranking guarantees. - [Local SEO](https://agency.dashworth.com/services/local-seo): Local SEO for St. Johns County, Jacksonville, and service-area businesses. City pages, Google Business Profile hygiene, and markup. No map-pack guarantee. - [Lovable to Next.js](https://agency.dashworth.com/services/lovable-to-nextjs-migration): Move a Lovable or Vite site onto Next.js with the same URLs, metadata, schema, and llms.txt. Traffic change is not claimed, because it has not been measured. ## Industries - [Real estate](https://agency.dashworth.com/industries/real-estate-websites): Real estate websites with investment tools, relocation guides, and AI-search markup for St. Augustine, Jacksonville, and St. Johns County agents. - [Vacation rentals](https://agency.dashworth.com/industries/vacation-rental-websites): Direct-booking websites for vacation rentals: listings, parking, guest waivers, and owner inquiries. Built for a St. Augustine short-term rental. - [Home services](https://agency.dashworth.com/industries/home-services-contractor-websites): Contractor and home-services websites for epoxy floors, garage doors, and other trades. Service areas, quote paths, and schema that names the business. - [Nonprofits & NGOs](https://agency.dashworth.com/industries/nonprofit-ngo-websites): Websites and data tools for nonprofits, NGOs, gardens, and HOAs. Grant desks, impact pages, and member sites. Funder-ready, without invented impact numbers. - [Faith & media](https://agency.dashworth.com/industries/faith-media-websites): Websites and video systems for faith and media projects, including a daily bilingual prayer channel. Handled with care. - [Apps & SaaS](https://agency.dashworth.com/industries/app-saas-websites): Launch pages, waitlists, and product sites for apps and SaaS. Includes group-trip, yoga, fitness, and consulting builds. Pre-launch means no growth claims. ## Work - [CBVDA](https://agency.dashworth.com/work/cbvda): Investment site with STR and 1031 calculators, tours, and a 261-URL sitemap. - [Ashworth Luxury](https://agency.dashworth.com/work/ashworth-luxury): Luxury, land, and short-term rental site for the St. Johns County practice. - [Ancient City Stays](https://agency.dashworth.com/work/ancient-city-stays): Courtyard hero from dashworth.com. The public host is still the realty site. - [Rental Guru](https://agency.dashworth.com/work/rental-guru): Florida property-management compliance wizard. The public page checks for access. - [JAX Epoxy Floors](https://agency.dashworth.com/work/jax-epoxy-floors): Coatings site with city pages and a quote path. November 1 overall 95. - [St. Johns County Living](https://agency.dashworth.com/work/st-johns-county-living): Relocation guide for St. Johns County. November 1 overall 92. - [Collihort](https://agency.dashworth.com/work/collihort): Garden software with a map and claim-a-pin. November 1 overall 97. - [Collihort Foundation](https://agency.dashworth.com/work/collihort-foundation): Introduction site for Collihort Foundation. Not a donation page. - [Palencia Gardens](https://agency.dashworth.com/work/palencia-gardens): Members-only garden club site in St. Augustine. November 1 overall 90. - [NGO Analytics](https://agency.dashworth.com/work/ngo-analytics): Public site and grant desk for NGO Analytics. November 1 overall 92. - [Grant OS](https://agency.dashworth.com/work/ngo-analytics-app): Grant Ops and Fiscal Sponsor OS, each with its own login. - [Oración del Día](https://agency.dashworth.com/work/oracion-del-dia): Daily bilingual prayer videos, with a person in the review path. - [Itinerant Man](https://agency.dashworth.com/work/itinerant-man): A fictional travel journal, labeled as fiction, on a day-by-day route. - [SweetGlue](https://agency.dashworth.com/work/sweetglue): Waitlist for a group-trip hub. The iOS app is in development. - [Best Photo Cleaner](https://agency.dashworth.com/work/best-photo-cleaner): Marketing site for an iPhone photo cleaner. The App Store date on the page is Nov 23, 2026. - [NAZA support site](https://agency.dashworth.com/work/nazafilm): Unofficial film support site. November 1 overall 91. - [Barry Dunaway](https://agency.dashworth.com/work/barry-dunaway): Official musician site. Live overall 87 on Nov 2, 2026. - [L2AMR](https://agency.dashworth.com/work/l2amr): Consulting site for lead-to-account matching and presales work. - [Body By Neglect](https://agency.dashworth.com/work/body-by-neglect): Fitness portal with 56 standards and nutrition calculators. - [Body By Running](https://agency.dashworth.com/work/body-by-running): Running site with an AI coach, articles, and a community. - [LocaYoga](https://agency.dashworth.com/work/locayoga): Yoga home with an AI coach, a studio directory, and llms.txt. - [Dashworth Hub](https://agency.dashworth.com/work/dashworth-hub): Public MarTech profile and a password-protected hub at dashworth.com. - [St. Johns County real estate team](https://agency.dashworth.com/work/st-johns-str-owners): Deduplicated owner list and a one-page brief from the Oct 29, 2026 DBPR pull. - [Northeast Florida commercial real estate brokerage](https://agency.dashworth.com/work/prospecting-platform): One map of St. Johns County commercial properties and condos for the brokerage. - [A home-services contractor](https://agency.dashworth.com/work/permit-monitoring): Scheduled permit reports, deduped by permit number. No filings shown. - [A publishing team](https://agency.dashworth.com/work/social-posting-mcp): Social drafts that wait for a person to approve before they post. - [Next Boyfriend](https://agency.dashworth.com/work/next-boyfriend): Relationship site on Lovable, with a move to Next.js still unfinished. November 1 overall 59. ## Insights - [SEO, AEO, and GEO: What a Small Business Needs First](https://agency.dashworth.com/blog/seo-vs-aeo-vs-geo): SEO, answer engine optimization, and generative engine optimization do different jobs. Here is what a small business actually needs first. - [What Is llms.txt, and Should Your Site Have One?](https://agency.dashworth.com/blog/what-is-llms-txt): llms.txt is a plain-text map of your site for language models. It's useful. Nobody has confirmed it as a ranking factor. - [How a Lovable Site Moves to Next.js Without Dropping URLs](https://agency.dashworth.com/blog/lovable-to-nextjs-urls): How a Lovable or Vite site moves to Next.js without throwing away URLs. What to map, what to redirect, and what not to claim about traffic. - [Schema Markup for Contractor Websites](https://agency.dashworth.com/blog/schema-markup-for-contractors): Which schema types belong on a contractor site: HomeAndConstructionBusiness, Service, FAQPage, and city pages. The epoxy site is the example. - [How Real Estate Agents Can Show Up in ChatGPT Answers](https://agency.dashworth.com/blog/real-estate-agents-and-chatgpt): How a Realtor can be described accurately by ChatGPT and other answer engines: consistent facts, useful tools, and no invented sales numbers. ## Company - [Small business package](https://agency.dashworth.com/small-business): Published prices for a Northeast Florida business that needs a site, search, email, and appointments. Starter $249 a month, Core $549, Growth $899, plus setup. SMS is extra. - [About us](https://agency.dashworth.com/about): Dashworth builds websites, lead routing, CRM cleanup, and AI search for local businesses. We meet in Northeast Florida and San Mateo, and we work with clients across the U.S. - [Contact](https://agency.dashworth.com/contact): Call 650-393-3378 or email david@dashworth.com. - [Performance scorecard](https://agency.dashworth.com/scorecard): Homepage lab scores from November 1, 2026. Lighthouse 12.8.2, headless Chrome, homepage only. Real-user CrUX data was not measured. ## Optional - [Privacy](https://agency.dashworth.com/privacy): What this site does and does not collect. - [Terms](https://agency.dashworth.com/terms): Using the site doesn't make you a client. Canonical site: https://agency.dashworth.com # Full pages ## AI consulting for small business in Northeast Florida We help you figure out where AI fits, then we build it. That can be a short look at the work, a sprint on one use case, or a stretch of time inside the team as a GTM, RevOps, or marketing ops contractor. ### How an engagement usually goes A short AI audit is a few conversations and a written note: the two or three places AI would help, what to leave alone, and whether to buy a tool or build one. It does not start the build. A build sprint is one use case we already agreed on. We build it, you use it, and we see if it holds up. A fractional role is when the company wants Dashworth on the team for a while. The posting usually says GTM engineer, AI GTM, RevOps, or marketing ops. We plan the go-to-market work and build the automation under it. ### Where this comes from Past employers are not Dashworth clients. That background is on the about page. The builds we can show are on the work page: CRM and lead-to-account matching at L2AMR, an internal prospecting desk, a social queue with an approval step, and the AI-built sites. We do not publish results we have not measured. Question: What do you do as an AI consultant? We help a business find the few places AI is worth the trouble, then we build those. Strategy, automation, the CRM connection, search visibility, and the website when you need one. We meet in Northeast Florida and in San Mateo. Question: How do you choose where AI fits? We talk to the people who do the work and look for the two or three tasks that are repetitive, slow, or easy to get wrong. Then we decide buy or build. A stalled pilot is a fine place to start. Question: Do you train the team? Yes, when the engagement includes it. We walk the people who will use it through the tool, and we write a short rule for what can go out. Question: What does a short AI audit include? Conversations with the teams that share the process, and a note on where AI fits and what to leave alone. There is no rate card. Call 650-393-3378 or send the situation on the contact page. The audit does not start a build. Question: Can you show up in ChatGPT and Google's AI answers? That is the AEO and GEO work: pages a model can quote, the same facts everywhere, and a file such as llms.txt. We do not guarantee a citation. The scorecard shows the lab scores we have measured. ## AI automation and agents for marketing, sales, and ops We build agents and automations for the work you repeat: reports, handoffs, intake, and the path into the CRM. A person approves what ships. We work with companies in Northeast Florida and from San Mateo. ### What we automate Reporting, data entry, and the handoff between teams. Customer-facing assistants for the FAQs, booking, and intake you already do. Pulling fields out of PDFs, invoices, and forms. An internal assistant that answers from your own documents. The customer-facing assistant, the document reading, and the internal knowledge assistant are builds we offer. The tools we can show today are the social queue and the prospecting desk. ### It lands in the system you already have An automation that does not write into the CRM stays disconnected. We connect the work to Salesforce, HubSpot, Marketo, or the stack you already run. The CRM build-out is that part of the job. Content and social stay in a queue. The social posting tool drafts, and someone approves the post. The same rule applies to a customer-facing assistant: it should not invent a price or a promise. Question: What is an AI agent in this work? A workflow that does a defined job: read a form, draft a follow-up, file a lead, pull fields off a PDF. It is not a chatbot with no job. We scope it to one task and we review what it sends. Question: Can you build a booking or FAQ assistant? Yes. It answers from what you already say, books a time, or takes an intake. Question: Can you pull data out of PDFs and invoices? Yes. The point is fields a person can check, not a silent import. Question: Do you build an internal assistant on our documents? Yes, when the documents are yours and only the people who should see them can ask. ## Marketing automation and CRM build-outs We are a marketing automation consultant. We spent the career inside agencies and martech, and now we build the CRM and the site. Dashworth is that practice. ### What a build-out covers A CRM build-out means the system of record matches the way you actually sell. We cover lead capture from the website, routing to the right person, nurture a human can stop, and attribution that reports what the CRM can see. That's Salesforce, HubSpot, or Marketo-style work. We use the stack you already run, or a gap we name. We do not assume you need a new license. We have worked in Salesforce, HubSpot, Marketo, Salesforce Marketing Cloud, Adobe Campaign, and ActiveCampaign. We do not have a HubSpot client write-up in this portfolio, so we will not invent one. The L2AMR site is the consulting offer for lead-to-account matching. The commercial map is the St. Johns County desk we built for a Northeast Florida brokerage. The case study doesn't include the records. ### Past employers Past employers are not Dashworth clients. David Ashworth's background is on the about page, and only there. ### Working inside your company A contract puts Dashworth inside a large organization when the team wants AI used on the go-to-market strategy and the automations. The requisition uses a familiar set of names: GTM engineer, AI GTM, go-to-market strategist, GTM architect, RevOps, revenue operations, marketing ops, growth ops, marketing automation, MarTech, workflow automation, agentic workflows, lead-to-revenue, and CRM architect. Under those titles we work the motion and the system. Ideal customer, the handoff between teams, capture, routing, scoring, enrichment, lifecycle, and the CRM those steps write into. AI drafts the strategy and builds the automation. We approve what ships. This site doesn't list an open job, and we do not have a bench to send. ### How it meets the website We talk with marketing, sales, and operations separately before we build, so the routing rules match what each group actually does. Then fewer handoffs, a clearer owner, and the system. A form that doesn't land in the CRM is a notebook. A CRM the site never feeds is a second business. Website design and lead generation are the front door. This service is what happens after the inquiry exists. We write the routing rules down. Someone reviews nurture before it sends. Attribution is whatever the system can defend. Question: What titles is a contract role hired under? GTM engineer, AI GTM, go-to-market strategist, GTM architect, RevOps, revenue operations, marketing ops, growth ops, marketing automation, MarTech, workflow automation, and agentic workflows. The job under those names is using AI to build the go-to-market strategy and the automations. Discovery with the teams that share the process comes first. Question: What does a marketing automation and CRM build-out include? Lead capture from the site, lead routing, nurture, and attribution you can explain from the CRM. It does not include a guaranteed pipeline number. Scope follows the system you already have. Question: Do you implement Salesforce, HubSpot, or Marketo? Those are the systems we shape the work around. We have operated in Salesforce, HubSpot, and Marketo, plus Marketing Cloud and Adobe Campaign. The engagement uses your stack. We do not have a named HubSpot client story in this portfolio, so we will not imply one. Question: What is lead routing? Lead routing is the rule that decides who gets a new inquiry. We did pre-sales consulting for that problem at LeanData. This service writes the rules for your CRM. We are not reselling LeanData, and we do not cite a revenue result from those years. Question: Do you guarantee pipeline or attribution? No. Attribution is reported from what the CRM recorded. Pipeline and revenue figures are not published on this site. Anyone who puts a lift in the proposal before the data exists is guessing. ## Answer engine optimization so your page gets quoted We write the page so an answer engine can quote it. A direct reply, your name as the source, and markup on the question and the answer. ### What AEO is AEO treats the page as an answer, not only as a candidate for a blue link. The first sentences define the term or answer the question. Later sections add the conditions, the exceptions, and the proof. That order is deliberate. People also ask boxes, featured snippets, voice results, and AI Overviews all prefer a passage that can stand alone. Writing that passage is editorial work. Tagging it is technical work. Both are in scope. ### How AEO differs from SEO SEO earns a listing on a results page: crawlable URLs, relevant copy, internal links, and authority you did not invent. AEO aims at the quoted answer above or beside those links. A page can do both. A page that is only a definition, with no business behind it, usually should not. AEO does not replace a service page, a city page, or a case study. It changes how those pages open. The SEO, AEO, and GEO essay walks through which one a small business should buy first. ### Schema that helps, when the page agrees FAQPage, Question, Answer, and SpeakableSpecification are the usual set. DefinedTerm fits a page that actually defines something, such as this one. HowTo fits a real process. They are added when the visible HTML says the same words. JAX Epoxy Floors and St. Johns County Living already publish FAQ and speakable markup. That's the implementation. We are not saying either site owns an AI Overview. Question: What is AEO? Answer engine optimization is the practice of writing and marking pages so an answer engine can quote them. The page leads with the answer, then the detail. FAQ schema and speakable markup tell a parser where that answer sits. A citation is not guaranteed. Question: How is AEO different from SEO? SEO works to earn a result on the search page. AEO works to be the short answer those systems quote, including featured snippets, voice answers, and AI Overviews. You usually need the SEO foundation first. A quote with no underlying page is fragile. Question: What schema helps AEO? FAQPage for real questions and answers on the page, SpeakableSpecification for the passages that can be read aloud, and DefinedTerm when the page defines a phrase. Organization and Service schema still matter so the answer is tied to a business. Question: Can a small business win AI Overviews? It can be cited. Winning is the wrong verb. Overviews change, and they do not cite everyone who added an FAQ. A small business with a clear service, a real location, and a page that answers one question cleanly is a better candidate than a thin page stuffed with synonyms. There is no promise of placement. ## Generative Engine Optimization for AI Search We work so ChatGPT, Gemini, Claude, Perplexity, and the systems that follow them describe the business correctly. That means a clear name, the same facts everywhere, and pages a model is allowed to read. ### What GEO is A generative engine answers from a mix of training data, live retrieval, and whatever the product’s current policy allows. GEO is how you give that system a clean, current description of who you are: name, place, services, and proof, repeated without contradiction. If the only description of the business lives in a PDF or a social bio, the model will guess. That's how wrong phone numbers spread. You still need a website. ### llms.txt, entities, and the files models can fetch llms.txt is a plain-text map of the site: what the organization is, and which URLs matter. llms-full.txt carries the longer version. The essay What is llms.txt explains the file. Nobody has confirmed it as a ranking factor. A lot of live Dashworth projects already publish llms.txt, including CBVDA, JAX Epoxy Floors, and Collihort. Organization schema, a stable phone number, and a stable name give a model fewer ways to mix Dashworth up with someone else. ### GEO sits on top of SEO Models that browse still need a page they can fetch. Robots rules that block GPTBot, ClaudeBot, PerplexityBot, or Google-Extended will opt the site out of some of those products. This site allows those crawlers, and robots.txt points at the sitemap. GEO does not retire SEO. Google remains the place most local customers start. GEO is the additional discipline of being quotable once an answer engine is in the path. Question: What is GEO? Generative engine optimization is the practice of making your business easy for ChatGPT, Gemini, Claude, Perplexity, and similar products to describe accurately. It relies on consistent facts, crawlable pages, and files such as llms.txt. It does not guarantee a recommendation. Question: What is llms.txt and do we need one? llms.txt is a text file at the root of a site that tells language models what the site is and which links matter. You need one if you want a single maintained description instead of leaving the summary to chance. It does not, by itself, insert you into answers. Read the llms.txt essay. Question: How do we know if ChatGPT mentions our business? Ask it, in more than one session, with the business name and with the question a customer would ask. Answers vary by product, account, and day. That check is a spot test, not a rank tracker. There is no public dashboard on this site that monitors mentions. Question: Does GEO replace SEO? No. SEO is how you earn visibility on search result pages. GEO is how answer engines learn who you are. A business that skips SEO and only chases model mentions is betting the whole storefront on a product it does not control. ## Daily content, with a person reviewing it We set up a pipeline that drafts, schedules, and publishes on a cadence. Someone can stop a bad item before it goes out. If you post volume with no review, the account gets limited. ### What the video pipeline does Oración del Día is the working example. It generates bilingual prayer videos, Spanish with English underneath, and publishes daily around 1 AM Central, plus Shorts. The landing page on dashworth.com lists recent videos and carries VideoObject, ItemList, FAQ, and Organization schema. The first Short, Ave María, went out on August 27, 2026. The same day the pipeline hit YouTube’s daily upload cap partway through a batch. That's an operations fact. We have not published views or subscriber counts. ### Review before it posts Automation prepares the queue. A person reviews it. For a prayer channel that also teaches English, a wrong line is not a small error. The same rule applies to a contractor blog or a relocation guide: the draft can be fast, the publish button stays accountable. Written content follows the same idea. St. Johns County Living is an editorial guide. Pages exist because a relocating household has the question, and Claudia Ashworth wrote the answers with Dashworth. ### Platform rules change YouTube allows a range of AI-assisted video and also penalizes spam and undisclosed synthetic media. The practical response is to follow the current disclosure and spam policies and to keep a human in the queue. This page is not legal advice and it is not YouTube’s policy text. A channel that posts to hit a number, without an audience or a point, will get the result it deserves. The service is the system plus the editorial standard, not a view count. Question: Can videos publish automatically? Yes. The Oración del Día pipeline publishes on a schedule, including Shorts. Automatic does not mean unattended. The queue is built so a person can review before an item goes out, and the system has to respect platform upload limits. Question: Do you review content before it posts? Yes. That review is part of the service. A fully hands-off firehose is not what is being offered. The depth of review is agreed per channel, because a daily prayer video and a weekly project update are different kinds of risk. Question: Is AI video allowed on YouTube? YouTube permits AI-assisted content and restricts spam and certain undisclosed synthetic media. Policies change. We follow the current rules and keep a human review. Nothing here is a promise that a given format will stay allowed, and nothing here is legal advice. ## Social posting on a schedule, after someone approves it We run social as a queue. An agent workflow drafts the posts, and a person approves them before they publish. If nobody approves them, the brand will eventually say something it can't take back. ### A system with an approval step The social posting system is a Model Context Protocol server and the tooling around it. Related servers in the same kit talk to WordPress, voice synthesis, image generation, and media processing. The repository name is withheld on purpose. Posts are drafted in the workflow a client already uses. They do not go live because a cron job felt ambitious. Approval is the product. ### Which networks The networks are the ones you already use. This page does not list a dozen logos. A connector to a social API is part of the build; the exact accounts are confirmed when the work starts. If a network has no working connector, it is not promised. Social is also not a substitute for the site. A post disappears down a feed. A page on your domain is the thing search and answer engines can return next year. The content and YouTube service is the sibling for video channels. Question: Which platforms do you post to? The ones your organization actually uses, where a connector exists. The posting system is an MCP server with an approval step. The network list is confirmed per engagement rather than printed as a logo wall. If a platform cannot be connected honestly, it is left out. Question: Who approves posts? A person. That can be you, or Dashworth, depending on the engagement. The default design doesn't publish an unreviewed draft. The approval step is the point of the system. ## Lead tools built around what you sell We build the tool that matches the offer: a calculator, a quote path, a waiver, or a prospecting desk. We do not rent out a list, and we do not promise a lead count. ### On the website CBVDA puts investment tools on the marketing site: short-term rental revenue and occupancy modeling, 1031 and tax-savings calculators, and a buyer needs assessment. Those tools start a conversation. They are not tax advice. JAX Epoxy Floors asks for a quote after the visitor has seen the service and the area. The form is the conversion, and the pages exist so the form is not the only thing on the site. ### Behind the login Two internal systems are written up without records or screenshots. The commercial map turns county records and listing exports into one map for a Northeast Florida brokerage, with a CSV export. The permit desk turns filings into deduped reports on a schedule for a contractor. Neither write-up includes owner names, phone numbers from the data, or a screen of the database. If you want a similar desk, the shape can be discussed. The underlying personal data cannot be browsed from this marketing site. ### What we do not sell We do not sell scraped personal data, and this page isn't a tutorial on skip tracing. Where enrichment exists, it's a capability of a private system. We do not write it up as a method you can copy. We do not sell paid search as a retainer. One fitness project includes Google Ads tags because that build needed them. Buying media is a separate decision. When the inquiry has to land in Salesforce, HubSpot, or Marketo, that work is the marketing automation and CRM build-out. Question: Do you sell leads? No. The work is the site or the tool that helps you generate and organize your own inquiries. There is no lead storefront, no guaranteed count, and no shared list. Question: Can you build a prospecting tool? Yes, in the shape of the internal real-estate system: public records in, a score and an export out, with access limited to the people who should see owner data. The public case study stays anonymized. A new build is scoped on a call, and it has to follow the privacy rules that apply to that data. Question: Will you publish how many leads a site produced? Only if the number comes from an analytics or CRM export you are willing to stand behind, with a date. No project on this site has that public figure today. The case studies say results are not yet measured. ## Websites we build in Cursor and review before they ship New Dashworth sites are Next.js projects we write in Cursor. We review the architecture, the copy, the SEO, and what ships. ### What “built in Cursor” means Cursor is the environment where the site is written. The model drafts a lot of the first version inside the repository. A person decides the information architecture, removes the filler, checks the claims, and wires the files a crawler needs. The result is a Next.js codebase, not a preview left in someone else’s hosting. This agency site is that kind of project. So are St. Johns County Living, Itinerant Man, and the Grant OS app at app.ngoanalytics.com. The work index lists the tools under each earlier project. A new engagement starts in Cursor. ### Who owns the code The build is delivered as a repository the client can keep. Contract terms are agreed per project. This page is not the contract, and it does not assign a license by itself. If a site is already a Lovable or Vite app, the way off it is the Lovable to Next.js migration. That move lands in a Next.js project we maintain in Cursor. We do not keep building new sites in Lovable. ### Why not Lovable for new work Lovable generates a Vite and React app in a browser. We used it for a set of earlier production apps, about 23 of them. We do not start a Dashworth site that way now. A marketing site needs a document per URL: title, canonical, server-rendered HTML, and schema that match the page. Next.js in a repository we can open in Cursor is that model. We name Lovable only when a project is moving off it. The case studies list Vite, React, Next.js, Supabase, and the other tools. Question: Is an AI-built site as good as a custom one? The sites in this portfolio are custom in the way that matters: TypeScript, a real information architecture, and a person who will change them next month. AI shortens the draft. It does not replace judgment about the offer, the claims, or the markup. A neglected AI draft is not better than a neglected template. Question: Who owns the code? You should. Delivery is a repository you can keep, under terms written for that project. Browsing this website does not create that agreement. Ask for it in the proposal. Question: Do you build new sites in Lovable? No. We build new Dashworth sites in Cursor on Next.js. We name Lovable when a project has been moved off it onto Next.js. The migration page is the offer for an app that still needs that move. ## Website design and management in Northeast Florida We design and manage websites a phone can load and a search engine can classify. We are based in St. Augustine and Jacksonville, and we build for clients anywhere in the United States. ### Discovery before the build We start with a discovery conversation. We talk with the people who touch the work: the person who sells, the person who delivers, and the person who lives with the handoff. We want to understand the current process and where it should be simpler. If the inquiry dies between marketing and sales, a new homepage won't fix it. We build the site, the form, and the CRM to the process we agree on after those conversations. ### The site has to do a job We start with the action you need: a call, a direct booking, a quote, a donor conversation, or a waitlist. The layout and the first screen make that action obvious on a phone. Most of the sites we ship are code. We can put real calculators, member areas, and markup in a codebase and keep them intact. Updates are a managed service. We are not promising that everyone on staff will enjoy a block editor. ### What management actually covers Management means the site keeps working after launch: content changes, new service or city pages, broken-link checks, sitemap updates, and the schema that describes the business. Hosting is part of the conversation. We build new sites in Cursor on Next.js. St. Johns County Living and Itinerant Man already run on Next.js. Earlier projects list their tools on the case study. If you need a staff login, say so at the start. Barry Dunaway’s site includes an admin for covers, gallery, and pre-orders. A typical five-page marketing site doesn't, unless we add one. ### St. Augustine, Jacksonville, and farther out We meet in person in Northeast Florida: St. Augustine, St. Johns County, Jacksonville, Duval County, Ponte Vedra, Nocatee, and Fernandina, and more broadly in Florida and on the East Coast. We do not have a storefront in each of those towns. We are also in San Mateo, California, so we can meet in Silicon Valley. We take contract roles at a large organization. We can still work remotely with clients elsewhere. The footer line we plan for client sites is plain: the industry, then “Website Design and Management,” then the studio name. Those lines aren't on the client sites yet. Question: How much does a website cost? The Small Business Package is published: Starter $249 a month, Core $549, Growth $899, plus setup. SMS is extra. A custom tool or a larger build is still quoted after we talk. Call 650-393-3378 or use the contact page. Question: How long does a build take? Discovery comes first: conversations across the organization and a look at the process. A focused marketing site often moves in weeks after that, once the offer, proof, and pages are clear. City pages, calculators, membership, and video automation take longer. You get a range before we start. We do not promise same-day. Question: Do you handle hosting and updates? Yes, when that's part of the engagement. Hosting, edits, and the search files (sitemap, robots, llms.txt, schema) can stay with Dashworth. We agree the arrangement per project. Nothing on this page renews itself. Question: Can the site be edited without Dashworth? Sometimes. If the project includes an admin, you can change what that admin exposes. On a lot of marketing sites we do the updates under a management agreement. Tell Dashworth which you want before the build. ## SEO for Jacksonville and St. Augustine We do SEO by fixing the structure. Pages that match real services, links between them, a sitemap, and schema that names the business. A ranking is an outcome. We do not sell it as a line item. ### What SEO includes A typical engagement covers the information architecture, titles and descriptions, canonical URLs, indexation rules, internal links between services and proof, and structured data. Content is written to answer a specific query in the first sentences, which also feeds answer engine optimization. Technical cleanup matters more than a blog nobody asked for. JAX Epoxy Floors shows the pattern: a service-area silo, FAQ markup, a large sitemap, and IndexNow submissions. St. Johns County Living shows the editorial version: a guide with place schema and a sitemap of 109 URLs. ### How measurement works We start measuring when Google Search Console, and an analytics tag if you want one, are actually connected. Several of Dashworth sites have Google Tag Manager installed. That's not a published traffic report. This website doesn't print rankings, sessions, or revenue for any project. We have not pulled those figures for a public report. When they exist, they belong in the case study next to the date we read them. ### Northeast Florida queries, national sites Phrases like SEO in Jacksonville or St. Augustine belong on pages about local work. A national business gets a national structure. We do not stuff every city into a footer. City pages are a local SEO decision, and only where you actually serve that place. Question: What does SEO include? Architecture, on-page copy, technical indexation, internal links, schema, and a sitemap. Content is added where a real query needs a page. Link outreach is not sold as a package on this site. Question: How do you measure SEO? With Search Console and, if you want it, an analytics property. The numbers that matter are indexed pages, queries, and impressions. None of those are published on this site yet because they have not been compiled for a public report. Question: Do you guarantee rankings? No. We will not promise a specific Google position. Competition, links, and the quality of the offer sit outside a template. We will not put a ranking promise in a contract or on a page. ## Local SEO in St. Johns County and Jacksonville Local SEO is how a business in St. Augustine, Jacksonville, or a service area around them shows up for a nearby search. The work is accurate places, useful city pages, and a Google Business Profile that matches the website. ### Service-area pages with something true on them A service-area page exists because the company does the work in that place and can say something true about it. JAX Epoxy Floors is the reference build: coatings for Jacksonville and St. Johns County, a sitemap listing 194 URLs, city and FAQ schema, and a quote path. The same shape fits garage doors, paving, HVAC, and other trades that drive to the customer. We have not published a garage-door site in this portfolio. The epoxy site shows the pattern. We are not saying every trade is already a client. ### How many cities is enough As many as you truly serve, each with something a neighbor would recognize: the neighborhoods, the kind of job, the way to request a quote. A hundred thin pages that swap the city name are doorway pages. They are a liability, not a strategy. The essay on schema for contractors covers the markup. The decision of which cities to publish is a business fact, and it should match the Google Business Profile service area rather than fight it. ### Reviews Reviews affect trust on the map pack. This studio does not buy them, gate them, or write them for customers. This agency site publishes none, because none have been collected here. When a client has real reviews, they can be marked up only if they are visible and genuine. Google Business Profile optimization means categories, services, hours, and photos that match the site. Dashworth does not claim to manage a specific public profile on this page. If you want that included, it is scoped on the call. Question: What are service-area pages? They are pages for places you actually serve, each with local detail and a way to request work. They are not copies of one template with the city name replaced. JAX Epoxy Floors is the example in this portfolio, with a large sitemap of area and support URLs. Question: How many city pages does a business need? One for each city or community where you can say something true and where you want the phone to ring. Stop when you run out of proof. More cities than that creates thin pages. There is no magic count for St. Johns County or Duval County. Question: How do reviews affect local SEO? Recent, specific reviews on your Google Business Profile help customers and the map pack. They are not a substitute for a clear website. Do not invent them, buy them, or mark up reviews that are not on the page. This site shows none. ## Move Your Lovable App to Next.js and Keep the URLs We do not start new sites in Lovable. This is for an app that's already a Lovable or Vite project and should become a Next.js codebase we maintain in Cursor. The point of the move is to keep the URLs. We have not measured whether traffic holds, so we will not promise that. ### Why leave the Vite app A Lovable app is a Vite and React bundle. A marketing site that depends on Google, AI Overviews, and shared links wants each URL to return a complete document, with its own title, description, canonical, and JSON-LD. New Dashworth work starts in that document model, in Cursor. This page is only for something that is already on the other stack. Next.js App Router is the stack used for that document model. St. Johns County Living and Itinerant Man run on it. This page does not claim a measured cutover for either one. ### URLs are the asset The migration inventory is a list of current URLs, the title and H1 on each, and the URL they must keep or redirect to. New vanity paths are a last resort. If a path has to change, it gets a permanent redirect from the old one. Query parameters that never should have been indexed get dropped on purpose. The essay Move a Lovable site to Next.js is the field notes version of this process, including what we refuse to claim about traffic. Question: Why migrate a Lovable site to Next.js? To get server-rendered pages, stable metadata, and a URL model search and answer engines can rely on, in a repository Dashworth maintains in Cursor. New work does not stay on Lovable. An existing Lovable app is moved when those URLs matter. Question: Will the URLs stay? Not if the migration is done as a map instead of a redesign of the paths. Every old indexable URL is kept or permanently redirected. That is the requirement. It still does not prove that rankings will be unchanged. That has to be measured afterward. Question: How long does a migration take? It follows the number of templates and URLs, not a slogan. A small marketing site is a short project. A site with a large city silo or a content archive takes longer because every URL has to be accounted for. You get a range after the sitemap is counted. ## Real estate websites for St. Johns County agents We design real estate websites, and we are a working Florida Realtor. The sites have to do a job we already have: help a buyer, a seller, or an investor take the next step without hunting through the page. ### Pages a realty site actually needs A portrait and a listing feed are not a strategy. The sites in this portfolio add the things an agent keeps rebuilding in email: investment math, a way to state what the buyer needs, community pages, and a clear path to the person who will answer. CBVDA is the investment site for Ashworth Group Realtors: short-term rental modeling, 1031 and tax-savings calculators, property-value lookup, tours, and commercial listings. St. Johns County Living is the relocation guide, written by David and Claudia. The luxury and land site presents David and Claudia Ashworth for St. Johns County luxury, land, and short-term rentals. ### St. Augustine, Jacksonville, Ponte Vedra, Nocatee The practice is Northeast Florida: St. Augustine, Jacksonville, St. Johns County, Ponte Vedra, Nocatee, and Fernandina. Community pages belong where the agent works those places. They do not belong as empty city swaps. The commercial map is the St. Johns County desk we built for a Northeast Florida brokerage. The case study shows the county view, not the records. A Florida compliance wizard for agents and property managers is in progress and is not a public product yet. ### How agents get described by ChatGPT An answer engine repeats whatever is consistent: the agent’s name, the brokerage relationship, the phone, the cities, and a page that answers a real question. Calculators and guides are easier to cite than a page that only says “dream home.” The essay Real estate agents in ChatGPT answers is the longer version. Nothing there promises a mention. GEO is the service if you want the entity work done on purpose. Planned footer credit: Real Estate Website Design and Management by Dashworth ## Direct-booking websites for vacation rentals We build a direct-booking site so a guest can inquire with the owner. The owner gets the pieces a marketplace doesn't hand over: parking rules, waivers, and a record of what was signed. ### What the rental site is for Ancient City Stays is the case study. dashworth.com shows a courtyard hero for it. ancientcitystays.com currently serves the realty site, and we do not have a confirmed public URL for a separate rental app, so we do not restate listings here. ### Pages a direct-booking site needs A listing with the facts a guest uses to decide, a way to ask the owner, the rules that prevent a bad arrival (pets, parking, rig length), and the legal page that says what the waiver is and is not. A blog is optional. A waiver that a lawyer has not read is not “done.” Operational detail lives on the Ancient City Stays case study. Fee savings versus a marketplace are the reason owners ask for a direct site. This page does not invent a savings percentage. ### St. Augustine guests, and owners elsewhere The reference property is in St. Augustine. The same build fits an owner in Jacksonville, Ponte Vedra, Fernandina, or outside Florida. Marketplace SEO and a direct site are different jobs. The direct site’s job is to be the place the owner sends people who already know the house. Planned footer credit: Vacation Rental Website Design and Management by Dashworth ## Contractor websites built to take calls and quotes On a phone, a contractor site has one job: make the next call or quote request feel specific. We write the pages so the request names the work, instead of a blank contact form. ### The pattern, proved on coatings JAX Epoxy Floors is a lead-generation site for concrete coatings in Jacksonville and St. Johns County. It has service-area pages, a blog, legal pages, a quote call to action, IndexNow, llms.txt, and schema for a home-and-construction business, services, offers, cities, and FAQs. The sitemap lists 194 URLs. Garage-door companies, pavers, and other trades that roll a truck use the same skeleton: services, a real service area, proof of the work, and a repeated phone number. Dashworth has not shipped a garage-door site in this set. The epoxy build is the analogue, and it is the one to read. ### Jacksonville, St. Augustine, and the county line Home-services search is local. St. Augustine, Jacksonville, Ponte Vedra, Nocatee, St. Johns County, and Duval County show up as pages only where the contractor works. Fernandina belongs if the trucks go there. It does not belong as a keyword garnish. Markup should name the trade. HomeAndConstructionBusiness, Service, and FAQPage are the set used on the epoxy site. The contractor schema essay explains why each one is there. ### Calls, quotes, and what we will not fake The header phone is a tel link. The quote button repeats after the visitor has seen the service. That's the design. We have not published a lead count for any contractor project on this site. If you want this shape for your trade, call Dashworth. We still start with the goal, and how soon you need a first version. Planned footer credit: Contractor Website Design and Management by Dashworth ## Websites and Data Tools for Nonprofits We build nonprofit sites that show the work. Where the staff needs it, We add a data tool they can actually open. ### Sites and systems NGO Analytics is the public site at ngoanalytics.com and the product at app.ngoanalytics.com. The app page calls itself Grant OS and separates Grant Ops from Fiscal Sponsor OS, each with its own login. Collihort is the garden software at collihort.com: HOAs, PUDs, municipalities, condos, and rooftops, with a garden map, claim-a-pin, and request-a-site. Collihort Foundation is a different site at collihort.org. It says it is being organized and is not a donation page. ### What funders and neighbors need to see A funder needs the program, the geography, and a path to a document that is real. A neighbor needs the meeting, the plot, or the way to help. Those are different pages. Mixing them into one heroic homepage helps neither. The nonprofit sites in this portfolio are the public websites. A Salesforce build is a separate job. Past employers are not Dashworth clients. ### Local clubs and national NGOs A garden club and an NGO with a national grant desk don't need the same structure. Both need a name, a contact, and schema that doesn't invent a parent organization. Collihort and NGO Analytics are our products. Planned footer credit: Nonprofit Website Design and Management by Dashworth ## Websites and Video for Faith and Media Faith and media sites carry words people repeat. We build a publishing system with a review step, and markup that matches the visible page. We do not invent an audience. ### A daily channel, reviewed Oración del Día publishes bilingual prayer videos, Spanish with an English line beneath, under the line “Reza en español y aprende inglés.” The pipeline posts daily around 1 AM Central and also posts Shorts. The public page lives at dashworth.com/oraciones and links the YouTube channel. It's a media system with a theological subject. We are not describing a congregation, a denomination, or a headcount. We have not published view counts. ### Media, without borrowing someone else’s name Barry Dunaway is a musician’s site: discography, player, tour, and store. We link it from the work index. We do not file it as a ministry project. ### What a ministry site needs Service times or the publishing cadence, a statement of what the project is, a way to watch or read the latest piece, and a human contact. Schema can mark videos and FAQs. It should not mark a church you do not operate. Spanish-language work in this portfolio is real: the prayer videos, and a realtor site that says “Se habla español.” That realtor line points at Claudia Ashworth’s Spanish. Planned footer credit: Faith and Media Website Design and Management by Dashworth ## Launch Pages for Apps and SaaS An app website has to say whether the product is open. If it's a waitlist, We call it a waitlist. If it's a consulting offer, We do not call it a platform. ### Launch pages that match the product SweetGlue is a pre-launch waitlist for a group trip and event hub: housing, rides, supplies, tasks, and expense splitting, plus an iOS app in Swift. The public site does not pretend the consumer app is generally available. LocaYoga is studio and teacher discovery with a 3D pose library. L2AMR is our RevOps consulting offer: lead-to-account matching, presales SOPs, and fractional customer success. Body By Neglect and Body By Running are fitness products, one built around standards and one around training and race finding. ### Also on the bench Best Photo Cleaner is an on-device iPhone photo app in Swift. We did not write it up as a full case study. Medal and coin design tools, a cycling-route project, and a study aid for commercial real estate exist as repos or drafts. We left them off because we have not confirmed that they're live or who the client is. Collihort is the garden SaaS and is filed under nonprofits as well, because the buyers are HOAs, clubs, and cities. SoftwareApplication schema is used where the thing being described is software. ### Waitlists, billing, and claims A waitlist page needs the product, the audience, and a form that says what happens next. It does not need fake logos or a user count. No app in this portfolio has a published user or revenue figure. A resume note mentions a SaaS platform with Stripe billing. Which repository that is has not been confirmed, so it is not written up as a case study and Stripe is not offered as a finished integration on this page. Planned footer credit: App Website Design and Management by Dashworth ## CBVDA: Investment Tools for Northeast Florida Real Estate Investment site with STR and 1031 calculators, tours, and a 261-URL sitemap. Investors looking at Northeast Florida short-term rentals and 1031 exchanges were getting a generic agent brochure instead of the math they were already asking for in email. The site had to introduce Ashworth Group Realtors, cover residential and commercial interest, and still be understandable to a crawler. The live site at cbvda.com is an investment-analysis build: short-term rental revenue and occupancy modeling, 1031-exchange and tax-savings calculators, property-value lookup, curated tours, commercial listings, and a buyer needs assessment. The site is Vite and React with TypeScript, and Google Tag Manager is installed. The repository is private. The page title observed on the live site is “NE Florida STR & 1031 Investment Calculators | CBVDA.” JSON-LD on the site includes Organization, WebSite, WebPage, BreadcrumbList, PostalAddress, and State. robots.txt and llms.txt both respond. The sitemap lists 261 URLs. Tag Manager being present is not a traffic report. No impressions, rankings, or lead counts are published here. ## Ashworth Luxury: A St. Johns County Practice, on the Web Luxury, land, and short-term rental site for the St. Johns County practice. The practice needed a public face for luxury, land, and short-term rental work in St. Johns County, in English and with a Spanish-language note for visitors. Two projects now touch the Ancient City Stays name. The marketing site has to describe this one without sending people to the wrong product. The live page is WordPress with Google Tag Manager. The visible positioning is David and Claudia Ashworth, St. Johns County luxury, land, and short-term rentals. The page notes “Se habla español.” Working files live in a private AshworthLuxury.com repository. JSON-LD observed on the WordPress site includes Organization, WebSite, SearchAction, and ImageObject. SearchAction on the site implies an on-site search. This case study does not restate a ranking. We did not confirm llms.txt on this host, so we do not claim it. The page says “Se habla español.” That line is about Claudia’s Spanish. ## Ancient City Stays Courtyard hero from dashworth.com. The public host is still the realty site. Ancient City Stays needed a public face for short-term stays in St. Augustine that a guest could tell apart from a realty brochure. The picture on this page is the hero dashworth.com uses for Ancient City Stays. The live host ancientcitystays.com is WordPress and currently presents the realty practice. We do not restate rental-app listings here, because we could not open a separate public app URL on this pass. This is the customer-facing side of the work: a stay should be bookable without a marketplace in the middle. The rental app's own domain is still unconfirmed. We do not claim a sitemap or llms.txt for a rental app that has no confirmed public URL. The WordPress host is a different project. ## Rental Guru: a Florida compliance wizard Florida property-management compliance wizard. The public page checks for access. Realtors handling residential property management needed the compliance steps in one place, from intake through move-out, instead of a folder of checklists. rentalguru.app answers as a Next.js app. The title is “Rental Guru | Property Management Compliance Wizard.” The description says it is step-by-step Florida residential property management compliance for realtors: checklists, materials, and progress tracking from intake through move-out. This is the ops job: the same compliance pass, run the same way each time. The page we fetched did not get past “Checking Dashworth access,” so we do not describe a signed-in screen. We did not find a public GitHub repository. We do not claim a sitemap or llms.txt. The host is an application, not a public marketing site. ## JAX Epoxy Floors: A Coatings Site Built to Take Quotes Coatings site with city pages and a quote path. November 1 overall 95. A coatings company serving Jacksonville and St. Johns County needed more than a single homepage. Homeowners search by city and by surface, then they want a quote. The site also had to be legible to search engines as a home-services business, not as a generic brochure. jaxepoxyfloors.com is a lead-generation site: service-area pages, a blog, legal pages, and a quote call to action. The observed title is “Epoxy Garage Floors Jacksonville FL | JAX Epoxy Floors.” The hero line to capture is “Premium Concrete Coatings and Polishing for Every Space.” The app is Vite, React, TypeScript, and shadcn/ui, with Google Tag Manager. IndexNow submissions and an indexing-status report are part of the build. The search work is the AI search job: service and FAQ schema, llms.txt, and pages that name the trade and the cities. JSON-LD includes HomeAndConstructionBusiness, Service, OfferCatalog and Offer, City, FAQPage, and SpeakableSpecification. llms.txt is published. The sitemap lists 194 URLs. That sitemap count is a count of addresses, not a count of rankings. No call volume or revenue is published. ## St. Johns County Living: A Relocation Guide with a Map Relocation guide for St. Johns County. November 1 overall 92. People moving to St. Johns County ask about communities, schools, weather, and healthcare. A listing portal does not answer those questions in full sentences. The guide also had to stay current where a fact changes daily, without pretending every paragraph is a live feed. stjohnscountyliving.com is an editorial relocation guide: communities, schools, climate, healthcare, and live weather and housing snapshots. We wrote it for the guide. Place schema and llms.txt are the AI search work, so an answer engine can describe the county without a listing portal doing it. The public site is Next.js, from the stjohns-county-living repository. Google Tag Manager is installed. JSON-LD includes AdministrativeArea, GeoCoordinates, Person, Organization, FAQPage, SpeakableSpecification, and PropertyValue. llms.txt is published. The sitemap lists 109 URLs. Place schema matches a guide about a county. It is not a claim of map-pack placement for an agent. ## Collihort: Software for Community Gardens Garden software with a map and claim-a-pin. November 1 overall 97. Gardens inside HOAs, PUDs, cities, condos, and rooftops needed software, not a one-off brochure for a single club. A national map is only useful if a garden can claim its pin and a new group can ask for a site. A club that already has a name needs its own domain, not only a page on collihort.com. collihort.com is the garden software: an ACGA map, claim-a-pin, request-a-site, and a path for a solo garden or a reviewed community site. The public page says a PUD, municipality, condo, or rooftop can use a page on collihort.com or point its own domain at the same software. The app is Vite and React, with Supabase and row-level security keyed by module flags. This is the repetitive-ops job: the same garden desk, on the client's domain or on collihort.com. Collihort Foundation is a different site at collihort.org. It is not the product login. JSON-LD includes SoftwareApplication, Organization, FAQPage, ContactPoint, and SearchAction. llms.txt is published. When checked, the sitemap listed 19 URLs. No user or garden counts are published as results. ## Collihort Foundation: The .org Beside the Garden Software Introduction site for Collihort Foundation. Not a donation page. The garden software and the organization around it are different jobs. A visitor who wants the product should not land on a donation appeal, and a visitor who wants the foundation should not have to guess that collihort.org exists. collihort.org is the introduction site for Collihort Foundation, Inc. The page says the corporation exists to raise awareness of community gardens, keep organizational software free, support localized education, and later help gardens that need a fiscal sponsor. It says the site is for introductions: not a donation page and not a sponsorship portal. The front end is Vite, in the same asset pattern as collihort.com. A repository name for the .org site was not in the earlier project inventory, so none is stated. The software case study stays on collihort.com. llms.txt is published. When checked, the sitemap listed 2 URLs. The page’s JSON-LD names David Ashworth as founder and Claudia Ashworth as a board member. A full schema-type inventory beyond those Person nodes was not copied into this write-up. No gift totals, garden counts, or IRS determination are published, because the site itself says that recognition and solicitation are not in place. ## Palencia Gardens: A Members’ Garden Club on the Web Members-only garden club site in St. Augustine. November 1 overall 90. A members-only garden club in St. Augustine needed a site that names the club and the town without turning a private garden into a public attraction. We put palenciagardens.com on Collihort, on the club's own domain. The public page is the same Vite front end as the product. We do not copy the street address onto this case study. The AI search work is the place and organization schema, with the street address left off this write-up. It's a small community site, the same kind of build we do when a group needs a clear public page and a members area behind it. JSON-LD includes Organization, Place, PostalAddress, and AdministrativeArea. llms.txt is published. When checked, the sitemap listed 9 URLs. Because the club page itself exposes a street address, this case study does not copy that address into new markup. No membership totals are published. ## NGO Analytics: A Public Site and a Grant Desk Public site and grant desk for NGO Analytics. November 1 overall 92. Grant writers and fiscal sponsors needed a public explanation of the product and a working desk for the work itself: jobs, knowledge, and the grant project. Impact language on nonprofit sites often outruns the data. The build had to separate the marketing site from the dashboards. ngoanalytics.com is the marketing site, plus a curated grant-jobs board, impact dashboards, and a knowledge hub. Related code also lives in ngoanalytics-www, grant-os, and impact-spark-data. The marketing site is Vite, with two Supabase projects in us-east-2. app.ngoanalytics.com is the product host. The public page is titled Grant OS by NGO Analytics and says two products do not share a session: Grant Ops, described there as a grantseeker system for pipeline, approvals, and awards, and Fiscal Sponsor OS, described there as a sponsor portfolio with filings and a CPA seat. That host responds as a Next.js app. Signing in is not part of this case study, and no customer records are shown. The marketing site is marked up as an organization with an FAQ, and the project notes say it publishes llms.txt. On the app host, /llms.txt and /sitemap.xml returned 404 when checked, so those files are not claimed there. No funder outcomes, job counts, or revenue are published. Dashboards existing is not the same as a result. ## Grant OS: the nonprofit app behind NGO Analytics Grant Ops and Fiscal Sponsor OS, each with its own login. Grant writers and fiscal sponsors needed a desk for the work, separate from the marketing site. Two products, two logins, so a session in one doesn't open the other. app.ngoanalytics.com is the product host. The public page is titled Grant OS by NGO Analytics. It says Grant Ops is a grantseeker system for pipeline, approvals, and awards, and Fiscal Sponsor OS is a sponsor portfolio with filings and a CPA seat. They don't share a session. The public screen also says customer content isn't used to train a model, and that an optional LLM stays under an API agreement. We did not open a workspace. No customer records are on this page. This is the nonprofit data tool. When a group wants help with the repetitive grant work, this is the shape: a public explanation, and a login the staff opens. On the app host, /llms.txt and /sitemap.xml returned 404 when we checked, so we do not claim those files there. The marketing site at ngoanalytics.com is the page we marked up for search. ## Oración del Día: A Daily Bilingual Prayer Channel Daily bilingual prayer videos, with a person in the review path. A daily prayer video that also carries an English line needs a pipeline, a publish time, and a way to stop a bad render. Doing it by hand every night does not survive a normal week. The system generates bilingual videos, a Spanish line with English beneath, and publishes around 1 AM Central, plus Shorts. The landing page lists recent videos. The YouTube channel is @unaoracioncadadia. This is the content job: a draft can be fast, and a person approves what goes out. The first Short, Ave María, was published on August 27, 2026. That day the pipeline hit YouTube’s daily upload limit at 14 of 40. That is a platform limit, not a performance metric. The landing page uses VideoObject, ItemList, FAQPage, and Organization schema. llms.txt on dashworth.com covers the property. A specific video watch URL, duration, and thumbnail are not repeated here because a single canonical video was not verified for this write-up. This case study does not embed a VideoObject of its own for that reason. The channel link is the source. ## Itinerant Man: A Fictional Traveler on a Real Route A fictional travel journal, labeled as fiction, on a day-by-day route. A serialized travel story needs a durable URL per day and a narrator who is not mistaken for a client testimonial. The fiction has to be obvious. itinerantman.com, also served at itinerantman.vercel.app, follows Finn Calder day by day. The route is written as a real itinerary. The person is not real. The fiction disclosure is part of the AI search work, so a model does not introduce Finn as a customer. The stack is Next.js on Vercel with Supabase. JSON-LD includes Person, WebSite, and BreadcrumbList. The Person schema describes the fictional narrator on that site. It should not be merged with David Ashworth’s Person schema on this agency site. llms.txt is published. The sitemap lists 39 URLs. Breadcrumbs and a website entity give the journal a shape a crawler can follow. No audience size is published. Fiction is labeled so an answer engine has less excuse to treat Finn as a customer. ## SweetGlue: a waitlist, and an iOS app in development Waitlist for a group-trip hub. The iOS app is in development. A group trip lives in a thread of texts. SweetGlue needed one hub for housing, rides, supplies, tasks, and splitting costs, and an honest public page before the app was generally available. sweetglue.com is the waitlist. llms.txt says the hub covers housing, rides, supplies, tasks, activities, and Chip-In expense splitting with receipts, and that the product is coming soon. A join link opens in the app when it is installed. This is the ops job: the repeated planning of a trip moves into one place. The picture is the hero dashworth.com uses for SweetGlue. We do not publish a waitlist count. llms.txt is published and says the site collects waitlist sign-ups. We do not claim a citation. ## Best Photo Cleaner: an iPhone library, cleaned by swipe Marketing site for an iPhone photo cleaner. The App Store date on the page is Nov 23, 2026. Best Photo Cleaner needed a public page that explains a swipe-to-clean iPhone app, and that says the photos stay on the phone. bestphotocleaner.com is a static site. The page describes swipe left to queue a delete, swipe right to keep, a 720p copy of a big video, and filing a photo into an album. Nothing is deleted until the person reviews the list. Deletes go to Recently Deleted in Photos for 30 days. The page says there is no account, no server, no analytics, and no ads. This is the search job, not an AI photo product. The app does not send photos to a model. llms.txt, the FAQ, and the schema are there so an answer engine can repeat those limits accurately. The page prints US prices: $26.99 lifetime, $19.99 a year with a 3-day trial, or $3.99 a month. We do not publish a download count. dashworth.com does not have a hero image for this project, so the picture is the live homepage. llms.txt is published. It lists 16 languages, with English at the root. The sitemap listed 114 URLs. JSON-LD includes Organization, WebSite, WebPage, SoftwareApplication, MobileApplication, FAQPage, and Offer. ## NAZA: An Unofficial Film Support Site Unofficial film support site. November 1 overall 91. The site had to present the film without implying we speak for the filmmakers. The project already uses the word unofficial, and we kept it. We built nazafilm.org on Next.js for the support site. The page carries Movie, Person, VideoObject, FAQ, and speakable schema, and it publishes llms.txt. That is the AI search job, and the unofficial line stays so a model does not invent a partnership. It's a media site with a reviewable page, the same shape we use when words on the page have to match what a model might repeat. Movie and video schema match a film page. Speakable and FAQ markup are present. None of that creates an affiliation. No audience, festival, or press figures are published. ## Barry Dunaway: the official musician site Official musician site. Live overall 87 on Nov 2, 2026. Barry Dunaway needed an official site where a listener can read the career, hear the music, see the tour, and find the shop. barrydunaway.com is a Lovable app: Vite and Supabase. The public pages we opened are a discography of recording credits with album covers, an original-music page with an audio player, a bio, a tour page with dates, and a shop. The shop has shirt pre-orders and a Retuned Jewelry section that links to the Barry Dunaway collection. There is a pre-order admin. We do not open it here, and we do not describe what is inside it. This is the search job: MusicGroup and Person schema, plus llms.txt, so an answer engine can name the artist and the pages. dashworth.com does not have a hero image for this project, so the picture is the live homepage. We did not find a public GitHub repository. JSON-LD on the homepage includes Person, MusicGroup, and WebSite. llms.txt is published. The live sitemap listed 25 URLs on Nov 2, 2026. We do not claim a citation. ## L2AMR: A RevOps Consulting Offer, Written Plainly Consulting site for lead-to-account matching and presales work. A consulting offer built on lead-to-account matching is easy to bury in jargon. The site had to name the work: presales operating procedures and fractional customer success. l2amr.com is Vite and React. JSON-LD includes ProfessionalService, OfferCatalog, Person, CollegeOrUniversity, and FAQPage. The college markup reflects David’s degrees, which are also on the about page: an MBA from Babson and a BS from Bryant. ProfessionalService and an offer catalog describe a consulting practice. The FAQ is on the page. We did not confirm llms.txt, so we do not claim it. No pipeline, retention, or revenue figures from L2AMR engagements are published. ## Body By Neglect: Fitness Standards, Organized Fitness portal with 56 standards and nutrition calculators. The standards a person might train toward were scattered. Body By Neglect needed one public place to read a standard and log a result. bodybyneglect.com is a Lovable app: Vite, React, and Supabase. The public page lists 56 standards, including the Navy SEAL PST, the Navy PRT, and the firefighter CPAT, plus protein, calorie, and BMI calculators. This is the search job. A page answers a specific standard instead of sending someone to a PDF. We do not publish a ranking or a user count. dashworth.com lists the project and does not ship a separate hero file, so the picture is the hero on bodybyneglect.com. The sitemap listed 29 URLs when we checked. We do not claim llms.txt. ## Body By Running: training and an AI coach Running site with an AI coach, articles, and a community. Body By Running needed a home for training and a way to answer coaching questions without a person on the phone all day. bodybyrunning.com is a Lovable app: Vite, React, and Supabase. The public page offers training, articles, nutrition, a community, and an AI running coach. The page says coaching starts after sign-in, with a 5-day trial and then $2 a month. That coach is the customer-facing assistant: training plans, race strategy, and injury questions. We do not publish a subscriber count. The picture is the hero dashworth.com uses for this project. We requested llms.txt and the host returned 404, so we do not claim it. ## LocaYoga: a yoga home with an AI coach Yoga home with an AI coach, a studio directory, and llms.txt. LocaYoga needed one home for practice, studios, and a coach, instead of a brochure that stops at a class schedule. locayoga.com is a Lovable app: Vite, React, and Supabase. The public page offers poses with animated demonstrations, styles, retreats, stays, studios, festivals, articles, nutrition, community, class booking, and an AI coach. The coach is the customer-facing assistant. llms.txt is the search file: it describes the free directory and the studio tools, and it lists the public sections. We do not publish a studio count. The picture is the hero dashworth.com uses for this project. llms.txt is published. It names the sections a model can cite. We do not claim a citation. ## Dashworth Hub: The Studio’s Own Operating Site Public MarTech profile and a password-protected hub at dashworth.com. One domain was doing two jobs: a public biography for a MarTech career, and a private operating portal. Those audiences should not share a navigation. dashworth.com currently reads as David Ashworth, marketing operations and MarTech. Dashworth Hub is a password-protected Vite and React portal with a YouTube feed, private operations tools, and control over what is in the public versus private sitemap. Repositories include dashworthp and dashworthp-6a118c08. llms.txt is already published on the domain. The prayer project lives at /oraciones and is its own case study. The apex domain already publishes llms.txt. The agency site on the subdomain carries the service, industry, and case-study architecture. It does not take over dashworth.com. No consulting revenue from the hub is published. ## St. Johns County short-term rental owner analysis Deduplicated owner list and a one-page brief from the Oct 29, 2026 DBPR pull. The vacation-rental licenses in St. Johns County sit in a state extract. The team needed one outreach list, grouped by where the property is and where the owner's mail goes, instead of a raw download. On Oct 29, 2026 We pulled the live Florida DBPR lodging license extract for the active vacation-rental dwelling and condo licenses in St. Johns County. We deduplicated the licensees into one outreach list and aggregated it by property location and by owner mailing location. We flagged absentee owners and out-of-state mail, and we split organizations, property managers and HOAs, from individuals. The delivery was an interactive breakdown and a one-page PDF brief. It took an afternoon in a Cursor cloud agent. The same lead rows sit in the database behind SJC Commercial Prospecting. They are not on that screen, so we do not claim they are live there. The chart is the brief without the names. Public licensing data, turned into a deduplicated and geo-segmented owner list. That is the document job and the lead-segmentation job: read the file, split individuals from organizations, and flag absentee and out-of-state mail. It sits next to the commercial map. This was an analysis, not a public website, so there is no sitemap or llms.txt for it. The public real-estate sites carry the search work. ## A commercial map for a Northeast Florida brokerage One map of St. Johns County commercial properties and condos for the brokerage. The records were scattered: county parcels, tax receipts, listing exports, and the state filing behind an LLC. The brokerage needed one map, and a pipeline that could run again, instead of a spreadsheet rebuilt by hand. SJC Commercial Prospecting is a map of commercial properties and commercial condos in St. Johns County, Florida. It keeps suites and tenants, owners' tax mailing addresses, and the principals behind LLC owners. Listings come in from FlexMLS and Crexi. A record can export a CSV and place a call. The pipeline is Python: parcels, owners, building attributes, tenants, listings, enrich, and skiptrace. Postgres with PostGIS holds the map. FastAPI serves it. The screen is Vite, React, and MapLibre. It runs on a DigitalOcean droplet behind Cloudflare, and a push to main deploys through GitHub Actions. The sources are the St. Johns County Property Appraiser parcel and GIS data, Tax Collector business tax receipts, FlexMLS and Crexi exports, Sunbiz, Google Places for tenant phones, and Twilio for calling. This is the ops job and the CRM connection: records land in one place, the owner is enriched, and the next call is ready. We do not claim a language model in this build. This is a signed-in tool, not a public marketing site, so we do not claim a sitemap or llms.txt for it. The public real-estate sites carry the search work. ## A Permit Monitoring Desk for Internal Reports Scheduled permit reports, deduped by permit number. No filings shown. Permit filings are repetitive and easy to double-count. An operator wanted a report on a schedule, in a file, with one row per permit number. The desk is a Vite and React app. It uses Firecrawl to collect source pages, writes CSV and PDF reports, dedupes by permit number, and runs on a schedule. That is the whole public description. There is no tutorial here for bypassing a site, and no sample of a real filing. The tool is internal. It has no public sitemap in this write-up. Its connection to marketing is the lead list a contractor or agent might work, which still belongs in a private system. ## A Social Posting Queue with an Approval Gate Social drafts that wait for a person to approve before they post. An agent that can draft a post should not also be the thing that publishes it. The missing piece was an approval gate and a server other tools could call. The system is a Model Context Protocol server for social posting. Drafts can be prepared from an agent workflow. A person approves them before they go out. Companion MCP servers in the same toolkit cover WordPress, voice synthesis, image generation, and media processing with FFmpeg. A social API provider is one of the connectors. The exact networks are chosen per engagement. This page does not list accounts. This is infrastructure for publishing, not a public content site, so it has no sitemap of its own in this write-up. The public content it can support is covered under the YouTube and social services. ## Next Boyfriend: a content site, moving to Next.js Relationship site on Lovable, with a move to Next.js still unfinished. November 1 overall 59. Next Boyfriend publishes relationship writing. On November 1, 2026 the homepage was a JavaScript app: the server HTML had no H1, no canonical, and no article text. Search and answer engines need the document itself. The live site is still Lovable, with Supabase and Google Tag Manager. The title we saw was “Next Boyfriend — Know Your Worth. Choose Better.” It publishes FAQ, Organization, and WebSite schema, plus llms.txt. The sitemap listed 26 URLs that day. We do not publish an article count. We are moving it in Cursor to Next.js on Vercel so each URL can come back as a finished page. That move isn't finished. The content stays in a review step, the same way we run social and YouTube: a draft can be fast, and a person decides what goes out. Already on the host: robots.txt, llms.txt, a 26-URL sitemap, and FAQ and WebSite schema. The November 1 check did not find an H1, a canonical, or the article text in the server HTML. The November 1 lab scores are on the scorecard. They describe this homepage, not the unfinished Next.js move. ## SEO, AEO, and GEO: What a Small Business Needs First These three acronyms stack. Search engine optimization, then answer engine optimization, then generative engine optimization. Most small businesses should buy them in that order. ### Start with pages Google can list Search engine optimization makes a real URL eligible to rank: a clear topic, a title that matches it, internal links, and a site that is not fighting itself with duplicates. For a contractor in Jacksonville or an agent in St. Augustine, that usually means a service page, a few places you truly serve, and a way to call. If that foundation is missing, the other two disciplines are decoration. Dashworth will not sell a GEO retainer to a business whose only page says “welcome to our website.” ### Write a sentence an answer engine can quote Answer engine optimization is how you write the passage a snippet, a voice answer, or an AI Overview can lift. The question is visible. The answer is in the next sentences. FAQ markup and speakable markup point at that passage. They do not invent it. AEO is not a separate website. It is a way of opening the pages SEO already required. A small business can do this on five pages. It does not need a hundred definitions of words it does not use. ### Make sure a model can describe you Generative engine optimization is the discipline of being described correctly by ChatGPT, Gemini, Claude, Perplexity, and whatever ships next. The inputs are boring on purpose: one name, one phone, one place, a page that matches them, and a file such as llms.txt that lists the URLs worth reading. Models contradict themselves. A spot check is not a rank report. GEO does not replace SEO, and a citation is not a contract. If a vendor promises you will be “the answer ChatGPT gives,” walk away. ### What to buy first First, a site that states the offer and the places you serve, with titles, a sitemap, and schema that matches the visible text. Second, rewrite the openings of those pages so each one answers a question. Third, publish llms.txt and make the same facts appear in your Google Business Profile, if you have one. That sequence is what we mean by an AI web design and SEO engagement. The service pages go deeper: SEO, AEO, and GEO. ## What Is llms.txt, and Should Your Site Have One? llms.txt is a text file at the root of a website that tells a language model what the site is and which links matter. You should have one if you publish anything you want described accurately. You should not expect it to rank you. ### What the file contains The useful version is short. A title, a one-paragraph description, and a list of links with a clause on each. A longer companion, llms-full.txt, can carry the detail: services, case studies, and the answers you are willing to stand behind. This site publishes both, generated from the same pages you can read. Start at llms.txt and llms-full.txt. robots.txt allows crawling and points at the sitemap. The file existing is not the same as a ranking factor. ### What the file won't do It does not submit you to Google. It does not override robots.txt. It does not force ChatGPT to recommend you. There is no industry-wide proof that the file is a ranking factor, and this studio will not invent one. A stale llms.txt is worse than none, because it teaches the model last year’s offer. If you change the phone number on the site and not in the file, you have published a contradiction. ### Where it already shows up in the work Several live projects already serve the file: CBVDA, JAX Epoxy Floors, Collihort, St. Johns County Living, and the current dashworth.com domain. That is implementation, checked by requesting the URL, not a traffic claim. If a project’s notes did not confirm the file, the case study says so. Absence is not papered over. ### A practical standard Put the file at /llms.txt. Write it in the same voice as the homepage. Link only URLs you want repeated. Include the phone and the place if they are public. Update it when the offer changes. Keep robots.txt honest about which bots may fetch it. If you want that maintained with the rest of the site, it is part of generative engine optimization. ## How a Lovable Site Moves to Next.js Without Dropping URLs The migration that matters is a list of URLs, not a new font. Next.js is the document model. The old paths stay, or they 301. Traffic change is a measurement you take afterward, not a sentence you write beforehand. ### Why the move comes up A Lovable project is a Vite and React application. A site that depends on search wants each URL to return a finished document: title, description, canonical, and the words of the page in the HTML. Dashworth now writes that document in Cursor. This essay is for an app that is already on Lovable. New Dashworth sites do not start there. The case studies list each project’s tools. We name Lovable only when a project is moving off it. Moving one is a URL map. ### The map is the project Export every URL from the live sitemap and from the router. Mark the ones that should stay indexable. For each, decide: same path, or a permanent redirect. Design changes happen after that decision, not before. Query parameters that were never real pages should not come along. New vanity URLs are how last year’s links die. If a path must change, the old one answers with a 301 before the launch announcement. ### What moves with the page The H1, the title, the meta description, the canonical, the internal links, and the JSON-LD. If the schema says something the new page no longer says, delete the schema. Speakable and FAQ markup are copied only when the questions are still on the page. Then republish sitemap.xml, robots.txt, and llms.txt. Submit the sitemap in Search Console. Watch coverage. Do not declare victory from a deploy log. ### What we can say about these moves St. Johns County Living and Itinerant Man run on Next.js. That is a stack fact. It is not a before-and-after traffic study. No such study has been published, so this essay will not pretend a move was “lossless.” The service page is Lovable to Next.js. Bring the sitemap. The quote depends on how many URLs are real. ## Schema Markup for Contractor Websites Schema is a label, not a spell. On a contractor site it should name the trade, the area, and the questions the page already answers. The JAX Epoxy Floors build is the concrete example. Rankings are not part of the example. ### Name the business as the trade it is A coatings company is not a generic Organization if a more specific type fits and the page supports it. On JAX Epoxy Floors the JSON-LD includes HomeAndConstructionBusiness, along with Service, Offer, City, and FAQPage. Those types were observed on the live site. Use them when the visible page says the same thing: this is a coatings business, these are the services, these are the cities, these are the questions. Do not mark up a special offer that is not on the page. ### City pages need a reason City schema on a page that only swaps the city name teaches a crawler that you publish duplicates. A city page earns a City type when it has local detail and a real service area. The epoxy sitemap lists 194 URLs. That number is a count of addresses, not a recommendation to publish 194 cities. Garage-door companies and other trades can use the same skeleton. This portfolio does not include a garage-door client. Do not borrow one. ### FAQs that are actually asked FAQPage is for questions a customer asks: prep, cure time, where you will drive, how a quote works. It is not for “what is the best contractor in Jacksonville” written by the contractor. Speakable markup points at the short answer. Both are on the epoxy site. If you would be embarrassed to read the answer out loud, do not mark it up. Answer engines quote the embarrassing version just as happily. ### What to leave out Review markup without real reviews. Aggregate ratings you cannot point to. Opening hours you do not keep. A street address you do not want public. This agency site itself omits a street address because a public studio address was not provided. The service around this work is local SEO. Bring the list of cities you will actually roll a truck to. ## How Real Estate Agents Can Show Up in ChatGPT Answers ChatGPT will describe an agent from whatever it can reconcile: the site, the brokerage, the profiles, the phone. You can make that description accurate. You cannot order a mention. ### One identity, repeated An agent who is “Dave” on the site, “David A.” on a portal, and a different phone on a bio has already lost. Pick the public name, the phone, the email, and the cities, and use them everywhere you control. We use Dashworth for the studio and Ashworth Group Realtors for the practice. Those are different entities, and the pages say so. The brokerage relationship has to be true. The CBVDA case study is David’s site for his Coldwell Banker Vanguard practice. It is not a corporate Coldwell Banker project. A model that blurs that is repeating a blur we failed to prevent. ### Publish something worth quoting A page that says “your dream home awaits” gives a model nothing safe to repeat. A page that explains 1031 timing, or how St. Johns County schools are organized, or what a short-term rental license conversation actually involves, gives it a sentence. CBVDA’s calculators and St. Johns County Living are that kind of material. They are citable because they are specific. They are not proof that any model currently recommends them. That has not been measured for this article. ### Ask, and write down the wrong answers Open a fresh chat. Ask who helps buyers with short-term rentals in St. Augustine. Ask for the phone number of your own practice. Save the answer and the date. Wrong phone numbers are the bug to fix, by making the correct one boring and consistent, not by arguing with the model in the transcript. Do this more than once. Products change their mind. A single flattering answer is not a campaign result, and it will not be printed on this site as one. ### Leave these off Fake sales volume. Fake reviews. A promise that you are “the top agent ChatGPT recommends.” Neighborhood pages for towns you do not work. Spanish-language claims you cannot support. The luxury site says “Se habla español”; this article does not upgrade that into a claim about David’s personal fluency. If you want the entity work done as a project, start with real estate websites and GEO.