Tag: Tygart Media

  • SiteBoost — Pilot Bundle (Best Value)

    SiteBoost — Pilot Bundle (Best Value)

    SiteBoost — Pilot Bundle (Best Value)

    $597

    Delivered by email after checkout.

    Buy Now →

    Secure checkout via Square — all major cards accepted

    You can copy this method and run a ten-post pilot yourself. Buy Now is Will connecting the site, picking the ten, running the three-layer pass on each, and sending the 60-day impact report.

    The Square catalog names this SKU “Connection + 10 Posts.” The /siteboost/ hub calls it the best-value door at $597. The public vertical pages (law firms and the rest of the cluster) spell out the same package: Site Connection and Audit, ten existing-post optimizations, and a 60-day impact report. They price the pieces at $767 if you bought them separate ($297 audit + 10 × $47). The bundle is the cheaper way to get a first measured pass.

    What the pilot is, and is not

    It is a retrofit of ten published posts. SEO + AEO + GEO + schema on each. Changes via the WordPress REST API. No plugin left behind. Results looked at around day 60. It is not a retainer, not a redesign, and not ten brand-new articles. New Article Publishing is a different SKU. The monthly retainer is the ongoing door after you like the pilot.

    Self-hosted WordPress only. Squarespace, Wix, and Webflow are out. Posts, not Pages, unless you put a specific Page in writing.

    How to run the pilot yourself

    Week 0. Connect and baseline

    Do the connection and audit first. The method is on the Site Connection and Audit page. Short version:

    1. Create a WordPress Application Password (Users → Profile). Not the login password.
    2. Test GET /wp-json/wp/v2/users/me with that user and app password. If that fails, stop. Nothing else will work.
    3. Pull published posts (per_page=100, paginate if you have more). Inventory every post: title, slug, word count, excerpt/meta, categories, tags, featured image, internal links in, internal links out, schema present or not, FAQ present or not.
    4. Write four artifacts and keep them. Content inventory. Schema gap report. FAQ gap report. Before baseline (the numbers you will compare at day 60: rankings and impressions you can actually see in Search Console, plus a note on AI visibility if you check Perplexity / ChatGPT / AI Overviews on a few queries).

    wp-site-audit’s priority stack: Critical = taxonomy and metadata problems. High = SEO / AEO / content quality. Then link and expansion opportunities. Use that order when you pick the ten.

    Pick the ten

    Highest-opportunity existing articles, with your approval before anyone starts rewriting. That is the rule on the public SiteBoost pages. A practical pick list, from the same audit fields:

    • Posts that already get impressions but have empty meta, no FAQ, and no schema. Those move first.
    • Posts over 500 words that are still missing the AEO and GEO layer. Do not spend the pilot on stubs.
    • Posts that sit on a real query (you can name the keyword). Skip diary posts and leftover test content.
    • A mix across your actual topic pillars, not ten posts from one tag.

    Write the ten URLs down. Get a yes. Then do not swap them mid-pilot unless a post is broken.

    Weeks 1 to 3. Ten existing-post passes

    For each of the ten, run the same method as Existing Post Optimization:

    1. SEO: title 50 to 60, slug, meta 140 to 155, H2/H3, keyword in the first 100 words.
    2. AEO: 40 to 60 word definition box, question H2s with 40 to 60 word answers, 6 to 8 FAQ pairs, FAQPage JSON-LD.
    3. GEO: named entities, sourced facts, speakable blocks, LLMS.txt comment, last-updated + dateModified.
    4. Article schema. Validate. Two to five internal links into the rest of the cluster. IndexNow on the update.

    Sequence on a single post is SEO, then AEO, then GEO, then schema, then interlink. That is wp-full-refresh. Do not GEO a post whose title and meta are still empty.

    If a chosen post is under 500 words, expand it first (append real sections, do not overwrite) or swap it for a thicker post on the same topic. Thin content wastes a slot.

    Day 60. Impact report

    The public pages measure three things: traditional rankings and impressions, People Also Ask / snippet placements, and AI citation visibility. Pull Search Console for the ten URLs (and the queries they were aimed at) versus the before baseline. Recheck the same AI prompts you wrote down in week 0. Do not invent a win. If nothing moved, say so. The report is the point of a pilot. You are deciding whether a retainer is worth it.

    Traditional SEO on competitive terms is often 60 to 90 days. The same pages note that FAQPage / PAA and some AI crawlers can show sooner (they cite 2 to 4 weeks for PAA). Treat those as ranges from the public SiteBoost copy, not a guarantee.

    What you should have on disk at the end

    • Connection notes (site URL, that an app password was created, who holds it).
    • The four audit artifacts from week 0.
    • The list of ten URLs and the before/after for each (title, meta, word count, FAQ count, schema types).
    • The 60-day comparison. What moved, what did not, what you would do next (more existing posts, new articles, or stop).

    If you want Will to run the pilot

    You can do every step above with an Application Password and a spreadsheet. Buy Now is the packaged pilot: Will connects, audits, agrees the ten with you, runs the three layers on each post, and sends the 60-day impact report. Same Square button at the top. $597.

    After a pilot you like, the Monthly Retainer is 10 existing-post passes plus 4 new articles per month. If you only need the connection and the baseline, buy Site Connection and Audit. If you only need one post touched, buy Existing Post Optimization.

    Related: SiteBoost. Also SiteBoost — Site Connection & Audit.

  • SiteBoost — New Article Publishing

    SiteBoost — New Article Publishing

    SiteBoost — New Article Publishing

    $97

    Delivered by email after checkout.

    Buy Now →

    Secure checkout via Square — all major cards accepted

    You can copy this method and publish the article yourself. Buy Now is Will researching, writing, optimizing, and publishing one new WordPress post for you.

    SiteBoost New Article Publishing is a new post, not a refresh of something already live. The /siteboost/ hub prices it at $97 per article. The same three layers as an existing-post pass still apply. You just start from a brief instead of from a published URL.

    The six-step workflow

    This is the unified content workflow from the operator’s guide on tygartmedia.com. One draft. SEO, AEO, and GEO built in. Not three versions of the same piece.

    1. Keyword and intent

    Name the target query. Classify intent: informational, navigational, commercial, or transactional. Look at what already ranks and match the format Google is already rewarding. This step is ordinary SEO. Do not skip it because you are “writing for AI.”

    2. Question landscape

    Search the keyword. Collect People Also Ask questions, related searches, and autocomplete variants. Group them. Those groups become H2s and FAQ items. The operator guide budgets 15 to 20 minutes here. This is the AEO setup. If you skip it, you will write headings that feel like an outline and not like queries.

    3. Write with the direct-answer pattern

    Write the article once, with both SEO and AEO in the draft:

    • Primary keyword in the H1 and in the first 100 words.
    • Every major section is a question-shaped H2, then a 40 to 60 word answer, then the depth.
    • Internal links with descriptive anchors to posts that already exist on the site. If the site is new and there is nothing to link to, note the gaps. Do not invent destinations.
    • A 40 to 60 word definition box near the top.

    The WordPress Publish skill’s quality bar before anything goes live: title 50 to 60 characters with the primary keyword, meta 140 to 160 characters, a unique H1, at least one direct-answer section, a FAQ with 3 to 5 Q and As on a new article (SiteBoost existing-post passes use 6 to 8; for a new article start at 3 to 5 and add more if the PAA list is real), Article JSON-LD, FAQPage JSON-LD, and at least one cited fact per major section.

    4. GEO enhancement

    After the draft exists, do a factual-density pass. The operator guide budgets 20 to 30 minutes on a 1,500-word article. For every claim: a number, a date, a named organization, or cut it. The citing-sources article is the house rule:

    1. Name the organization in the text, not only in a hyperlink.
    2. Link the primary source. If it is paywalled, link a credible secondary that cites it.
    3. Put a sources list at the bottom.
    4. Show a last-updated date near the byline.
    5. Put datePublished and dateModified in Article schema.

    Do not add fake statistics to look dense. The operator guide calls that out as a backfire when AI systems cross-check you.

    5. Schema

    Minimum on a new SiteBoost article: Article (or BlogPosting) plus FAQPage. Add HowTo if the piece is genuinely step-by-step. Add BreadcrumbList if the theme does not already emit it. Add Speakable on the definition box and one other self-contained block. JSON-LD in the post, validated with Google’s Rich Results Test. The schema injection sprint is the same sequence: pick the type, generate valid JSON-LD, inject, validate, fix failures.

    SiteBoost content standards also embed an LLMS.txt HTML comment on the page. A short seed paragraph, not a second article.

    6. Pre-publish audit, then publish

    Run the three-layer checklist. Title, meta, headings, snippet readiness, factual density, schema validation, entity signals. Then publish as a post, not a page.

    The production pipeline used on Tygart Media sites is: brief (content-brief-builder) to draft to SEO to AEO to GEO to schema to taxonomy to interlink to publish (wp-content-pipeline). content-quality-gate sits in front of publish and flags unsourced claims. You can do that as a human checklist if you are not running Claude skills.

    Taxonomy and internal links

    Assign 1 to 2 categories that are real content pillars, never Uncategorized. Assign 5 to 10 tags that cover topic, use case, audience, and format. That is the wp-taxonomy-fix rule. Then place 3 to 5 internal links to related posts in the same cluster, plus outbound links to the sources you named. Hub and spoke. The new post should not be an orphan on day one, and it should not be a dead end.

    IndexNow

    On publish, ping IndexNow. Official plugin, or Rank Math / Yoast Instant Indexing. Confirm the URL in Bing Webmaster Tools. New posts that sit in a sitemap waiting for a crawl waste the first week.

    What “done” looks like on one new article

    1. Brief: target keyword, intent, PAA list, existing internal-link targets, sources you will actually cite.
    2. Draft written with definition box, question H2s, and sourced facts.
    3. Title 50 to 60, meta 140 to 160, slug clean.
    4. FAQ section + FAQPage schema. Article schema with both dates.
    5. Categories and tags set. 3 to 5 internal links. Sources list.
    6. Rich Results Test pass. IndexNow ping. Status = publish (or draft if you want a human read first).

    Self-hosted WordPress only. Squarespace, Wix, and Webflow are not this SKU. Do not modify existing Pages to “make room” for the article. Publish a post.

    If you want Will to write and publish it

    You can run the six steps in your own editor. Buy Now is the packaged, done-for-you article: Will writes it, runs the three layers, publishes it to your site, and emails you the URL. Same Square button at the top. $97 per article.

    A single new post next to a neglected library is a weak play. If the existing posts are empty of FAQ, schema, and meta, optimize those first (Existing Post Optimization, or the Pilot Bundle for ten). If the site is not connected yet, start with Site Connection and Audit.

    Related: SiteBoost. Also SiteBoost — Existing Post Optimization.

  • SiteBoost — Existing Post Optimization

    SiteBoost — Existing Post Optimization

    SiteBoost — Existing Post Optimization

    $47

    Delivered by email after checkout.

    Buy Now →

    Secure checkout via Square — all major cards accepted

    You can copy this method and do it yourself on one published WordPress post. Buy Now is Will running the same three-layer pass on that post and pushing the changes live for you.

    SiteBoost Existing Post Optimization is one post, already on your site. Not a new article. Not a redesign. The public SiteBoost pages call this the post-publish layer: SEO, then AEO, then GEO, written back through the WordPress REST API. No plugin install. Self-hosted WordPress only.

    What you are optimizing

    Pick one published post (post type post, not a Page). Fetch it. Read it as it sits today. Then run three passes in this order. The operator guide on tygartmedia.com is explicit: the layers are concentric, not three separate rewrites. One piece of content. Structure, density, and markup.

    Pass 1. SEO

    This is the foundation. Do not skip it to chase snippets or AI citations. The SiteBoost vertical pages and the wp-seo-refresh skill agree on the same fields:

    1. Title tag. Primary keyword front-loaded. Target 50 to 60 characters. This is the H1 / browser title, not a clever headline that hides the query.
    2. Slug. Lowercase, hyphenated, keyword-rich. Change it only if the current slug is junk. If the post already ranks on the old URL, leave the slug and add a redirect if you must change it.
    3. Meta description. 140 to 155 characters on the SiteBoost sales pages, 155 to 160 in the wp-seo-refresh skill. Write a real sentence a human would click. Empty meta is the most common miss.
    4. Heading structure. Real H2 / H3 hierarchy. No skipped levels. No H2 that is just a label with no answer under it.
    5. Primary keyword in the first 100 words.
    6. Note internal link opportunities. You will place them after the GEO pass, not while you are still rewriting the title.

    Workflow from wp-seo-refresh: fetch the post with context=edit, analyze current on-page SEO, name the target keyword from the actual topic, generate the new title / meta / headings, write the post back, then report what changed.

    Pass 2. AEO

    Answer Engine Optimization. Same post. Restructure so a featured snippet or a People Also Ask box can lift a clean answer.

    1. Add a 40 to 60 word definition box near the top. One sentence that answers “what is this?” without a wind-up.
    2. Turn implied questions into H2s. Under each H2, put a 40 to 60 word direct answer, then the depth.
    3. Add 6 to 8 FAQ pairs that match real People Also Ask questions for the topic. The older WordPress Publish skill used 3 to 5. The SiteBoost vertical pages use 6 to 8. Use 6 to 8 on a SiteBoost-style pass.
    4. Add FAQPage JSON-LD for those pairs. Question and acceptedAnswer. Valid markup, not a plugin dump.

    wp-aeo-refresh also looks for list-shaped answers and natural-language replies a voice result can read. If a section is a process, a numbered list beats a paragraph.

    Pass 3. GEO

    Generative Engine Optimization. Make the post citable by ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews.

    1. Entity saturation. Name the real organizations, standards, statutes, places, and tools the topic depends on. Entity density, not keyword stuffing.
    2. Factual density. Replace “many companies” and “studies show” with a named source and a number you can actually point to. If you cannot name the source, cut the claim. The citing-sources article on tygartmedia.com is the rule: name the organization in the text, link the primary source, put a sources list at the bottom.
    3. Speakable blocks. Short, self-contained sentences an AI or a voice assistant can lift without the rest of the page.
    4. LLMS.txt as an HTML comment. A seed paragraph the page can carry for LLM citation signals. SiteBoost content standards put this on every page.
    5. Visible last-updated date near the byline, and dateModified in Article schema that matches a real edit. Do not bump the date without changing the content.

    wp-geo-refresh also asks for context richness (define the term, do not just mention it) and semantic clarity (connect related concepts in the same section).

    Schema and IndexNow

    After the three passes, the post should carry Article JSON-LD (headline, author, publisher, datePublished, dateModified) plus FAQPage. BreadcrumbList if the theme does not already emit it. Validate with Google’s Rich Results Test before you walk away. The schema injection sprint on tygartmedia.com is the same rule: pick the type the content actually is, inject JSON-LD, validate, fix failures.

    Then tell the engines the URL changed. IndexNow: official WordPress plugin, or the IndexNow / Instant Indexing toggle in Rank Math or Yoast. Confirm the ping in Bing Webmaster Tools. A publish or an update that nobody recrawls is a pass you did for yourself.

    What you do not touch

    Posts, not Pages. SiteBoost does not rewrite service pages, bios, or the homepage unless someone asked in writing. Do not install a plugin to do this. Do not empty the excerpt into raw JSON. If the excerpt is polluted, strip it (that is the wp-clean-meta job) and write a real meta description.

    A honest one-post checklist

    1. Current title, slug, meta, word count, FAQ count, schema present or not. Write those six lines down. That is your before.
    2. SEO pass. Title, slug, meta, headings, first 100 words.
    3. AEO pass. Definition box, question H2s, 6 to 8 FAQs, FAQPage schema.
    4. GEO pass. Named entities, sourced facts, speakable lines, LLMS.txt comment, last-updated + dateModified.
    5. Two to five internal links to related posts on the same site, descriptive anchors, plus one or two outbound links to primary sources.
    6. Validate schema. Ping IndexNow. Write the after: new title, new meta, new word count, FAQ count, schema types.

    If the post is under 500 words, expand it before you call the SEO pass done. wp-content-expand’s rule: find H2s under 150 words, add 250 to 400 words of real section, append, do not overwrite. Thin posts do not earn the AEO or GEO layer.

    If you want Will to do this post

    You can run the three passes in the block editor this afternoon. Buy Now is the packaged, done-for-you version: Will connects, refreshes that one existing post through the REST API, and emails you what changed. Same Square button at the top of this page. $47 per post.

    If you have ten posts that all need this, the Pilot Bundle is the volume door. If you do not have a connection or a baseline yet, start with Site Connection and Audit. This SKU assumes the post already exists and you already know which one.

    Related: SiteBoost. Also SiteBoost — New Article Publishing.

  • Owner Bottleneck Self-Assessment

    Owner Bottleneck Self-Assessment

    Owner Bottleneck Self-Assessment

    $29

    Delivered by email after checkout.

    Buy Now →

    Secure checkout via Square — all major cards accepted

    You can copy this method and do it yourself. Score yourself across five areas. Total the checks. Write your top 3 things to delegate first. Buy Now is the packaged Notion page you duplicate, so you are not rebuilding the 25-statement score from a blank doc.

    Tool #2 of the Restoration Leadership Toolkit. Find out where your company still depends on you. An owner bottleneck exists when growth, decision speed, and consistency are limited by your personal involvement in day-to-day decisions. You become both the most important and the most constraining person in the business.

    Check the box for each statement that is true of your business today. Count the checks in each section, then total them at the bottom. Be honest. The value is in the truth.

    How to run it

    1. Work the five sections. Check only what is true today, not what used to be true or what you plan to fix.
    2. Total the checks (range is 0-25). Read your band.
    3. Write your top 3 to delegate first. Those become Weeks 1-2 of a 90-day doer-to-leader plan.
    4. For one full week after you score, log every interrupt for a decision. Sort into Delegate now / Delegate after training / Keep (truly owner-only).
    5. Re-run it at the end of 90 days and compare to Week 1. The number matters less than the trend.

    1. Decisions only you make

    Four-phase board covering a 12-week owner freedom transition
    Decisions only you make — that’s the bottleneck map.
    • Estimate / pricing approvals over a set dollar amount run through me
    • Hiring and firing decisions are all mine
    • Vendor and supplier choices need my sign-off
    • Which jobs we take is my call alone
    • Refunds, credits, and customer concessions require me

    If this section is heavy, your next move is a Decision-Rights list: 10-15 recurring decisions, a dollar or scope threshold people can decide under without asking you, and who owns it when you are not in the room. Walk the team through it: “Under this line, you do not need me. Decide and tell me after.” Hand off one decision completely this month and do not take it back.

    Starter rows if you need them: approve a job estimate over $25k; authorize overtime / call-in crew; issue a refund or credit; hire or fire; approve a vendor / sub payment; take an out-of-area or unusual job; sign a contract or insurance scope; pull a crew off one job for another; spend on new equipment; set or discount a price.

    2. Interruptions by department

    • Production calls me daily with questions
    • Office / admin pulls me into billing or scheduling
    • Sales / estimating checks pricing with me before quoting
    • Technicians call me from job sites
    • I get pulled into customer complaints personally

    Tally the interrupts for one week. The department with the most checks is this quarter’s target. Install 1-3-1 there first: one issue, three options with pros/cons/cost, one recommendation, and a default if they do not hear back by a deadline. When someone brings a raw problem, ask: “What are your three options, and which do you recommend?” Then wait.

    3. Recurring questions that come back to you

    • The same operational questions reach me every week
    • People wait for me to decide instead of deciding themselves
    • “Ask the owner” is the default answer here
    • I re-explain the same processes over and over
    • Things stall when I am unavailable

    Recurring questions are undocumented decisions. Write the answer once. Put it where the question gets asked (truck, office, group chat). If you re-explain the same process, that process needs an SOP or a named owner, not another explanation from you.

    4. Tasks that should be delegated

    Three panels showing one problem, three options, one recommendation
    Tasks that should be delegated — write them down.
    • I still write estimates I could hand off
    • I handle scheduling / dispatch
    • I chase collections / AR myself
    • I order equipment and supplies
    • I personally produce things others could

    These are doer tasks wearing an owner badge. Pick one. Hand the outcome, not the task. “You own scheduling this month. I will sit in the first week. After that, bring me 1-3-1s, not the board.” Name the 1-2 skills they most need and how you will help (ride-along, training, a stretch job). Set a weekly 30-minute 1-on-1 and protect it.

    5. Areas with no backup

    Restoration technicians training in a shop bay with equipment demo and whiteboard
    Areas with no backup — hire or train before you vanish.
    • No one else can run production if I am out
    • Only I hold the key carrier / adjuster relationships
    • Only I can see the full financial picture
    • There are no written SOPs for the things I do
    • If I am gone a week, something breaks

    A checked box here is a single point of failure. Name the backup, or name the blank. A blank candidate is itself a finding. Put each exposed function on a bench list: current owner, future-leader candidate, backup depth (None / Thin / Solid), the skill gap, one observable 90-day action, a weekly or biweekly check-in.

    This section is the short version of the Owner Dependency Audit (nine areas, Low/Med/High, what breaks if you vanish 30 days) and the 5 Ds Disease / Departure boxes (vacation test, backup estimator, relationships not owned by one person).

    Your score

    Total checks: ___ / 25

    • 0-6 Mild. You have delegated well. Tighten the few remaining gaps.
    • 7-13 Moderate. You are the bottleneck in one or two areas. Fix the worst one first.
    • 14-19 Heavy. The business runs through you. Start delegating now, deliberately.
    • 20-25 Severe. You ARE the business. This is the #1 risk to your growth and your exit.

    Write your top 3 to delegate first. Take the worst section into a 90-day doer-to-leader plan. Run the Owner Dependency Audit for the full picture (nine areas, Decision-Rights Map, 30-day disappear test).

    Tell the team the shift is coming: “I am working a 90-day plan to push decisions down. Expect me to hand more back to you.” Then do it. Re-score at Week 12. Take a planned half-day fully off and note what broke. That is the next bottleneck.

    If you want the packaged assessment

    You can run the 25 statements on a legal pad. Buy Now is the Notion page delivered by email after checkout. Duplicate it (··· → Duplicate) so the original stays clean for next quarter. The five sections, the score table, and the top-3 lines are already laid out. Same Square button at the top of this page.

    Pairs with the Owner Dependency Audit (deeper diagnostic) and the 90-Day Doer-to-Leader Transition Plan (Weeks 1-2). Matching Claude skill: owner-bottleneck-assessment. Coaching and operational tool only. Not legal or HR advice.

    Related: Restoration Leadership Toolkit — Claude Edition. Also 1-3-1 Delegation Worksheet.

  • Middle Manager Evaluation Scorecard

    Middle Manager Evaluation Scorecard

    Middle Manager Evaluation Scorecard

    $59

    Delivered by email after checkout.

    Buy Now →

    Secure checkout via Square — all major cards accepted

    You can copy this method and do it yourself. Name the person and the seat. Score nine traits 1-5 from recent examples. Total them. Read the band. Buy Now is the packaged Notion table you duplicate, so you are not rebuilding the scorecard from a blank spreadsheet.

    Tool #6 of the Restoration Leadership Toolkit. Help owners assess whether someone is ready to manage people, not just perform tasks. Your best tech is not automatically your best lead. The skills that make a great doer (speed, craft, hustle) are different from the skills that make a great manager (getting work done through others). Use this before you promote the wrong person.

    How to run it

    1. Name the person and the seat. Lead, crew chief, PM, estimator, office manager. The bar shifts with the seat. A crew chief lives or dies on conflict and training. A PM lives or dies on judgment and communication.
    2. Walk the nine traits in order. For each, ask for a recent, specific example: “Tell me about the last time they hit a problem on a job. What did they do?” Then give a 1-5 and confirm it. Anchor every score in observed behavior, not gut feel or potential.
    3. Flag the unknowns. If you have never seen a trait (they have never had to handle real conflict or train anyone), record it as a known gap. Do not guess a high score. Untested is itself a finding.
    4. Total the nine (max 45). Read the shape of the scores, not just the total.
    5. Name the lowest 2-3 traits as the gaps to close. One concrete development action each. A re-evaluation date, typically 60-90 days.

    One person = one row. Duplicate a row or a page for the next person. Do not overwrite last quarter’s scores.

    The nine traits

    Restoration technicians training in a shop bay with equipment demo and whiteboard
    Nine traits — score managers honestly.
    1. Ownership. 1-5. Takes responsibility for outcomes, no blame-shifting.
    2. Communication. 1-5. Clear, timely, two-way communication. Closes the loop.
    3. Judgment. 1-5. Makes sound decisions without being told every step.
    4. Emotional maturity. 1-5. Stays steady under pressure, regulates reactions.
    5. Coachability. 1-5. Seeks and applies feedback, not defensive.
    6. Follow-through. 1-5. Closes the loop, does what they said by when they said.
    7. Trains others. 1-5. Can teach a task and bring others up to standard.
    8. Handles conflict. 1-5. Addresses tension directly and fairly, does not avoid it or blow it up.
    9. Values alignment. 1-5. Models company values when no one is watching.

    Also write: Name, Role (current title), Notes (evidence, specific gaps to close, target re-eval date), Total (auto-sum of the nine, max 45), Recommendation (Promote / Develop first / Not yet).

    The 1-5 anchors

    • 1. Not yet / recurring problem.
    • 2. Inconsistent, needs heavy supervision.
    • 3. Developing. Does it when reminded.
    • 4. Solid. Does it on their own most of the time.
    • 5. Consistently strong. Others learn from how they do it.

    The recommendation bands

    Four-phase board covering a 12-week owner freedom transition
    Recommendation bands decide promote / coach / exit.
    • Promote. About 37-45. Ready to lead now. Strong and even across traits.
    • Develop first. About 27-36. Real potential with named gaps. Give a development plan and a date. Do not promote yet.
    • Not yet. 26 or below. Performs tasks but is not ready to lead people. Revisit later, or keep growing them as an individual contributor.

    Override rule. Any single trait scored 1-2 on Ownership, Emotional maturity, or Values alignment caps the recommendation at Develop first, regardless of total. Those are the floors for putting someone over people. Call it out when it triggers.

    The bands are guides, not hard cutoffs. The owner decides. The score is an input, not a verdict. Never treat the number as a must-promote or must-pass.

    How to fill it without lying to yourself

    Three panels showing one problem, three options, one recommendation
    Fill without lying — anchors beat vibes.

    Score behavior, not the person. Tie every number to something you actually saw. Never score personality, background, age, accent, health, family situation, or “culture fit” as a stand-in for a protected characteristic. If that is the reason in your head, redirect to what they actually did.

    Watch three biases. Halo: great tech, so you assume great leader. Recency: one good or bad week coloring everything. Similarity: rating people like you higher. Name it if you see it.

    If several traits are untested, say so out loud. Lower your confidence. Put a trial of responsibility in front of the decision: run a job, train a hire, own a file end-to-end. Then re-score.

    After a Develop-first result, the next move is usually an accountability conversation: here is what is between you and the seat, here is the 30-day or 90-day target. After a Promote, hand them one area end-to-end and put them on the 90-day doer-to-leader spine (Weeks 7-8: develop one manager). Put every scored name on a bench list so you are not keeping five people “on your radar” and developing none.

    If you want the packaged scorecard

    You can run the nine traits on a legal pad. Buy Now is the Notion table delivered by email after checkout. Duplicate it so the master stays clean. The nine scores, the Total, the Recommendation, and the Notes field are already laid out. Same Square button at the top of this page.

    Pairs with the Leadership Readiness Checklist (lighter yes/no read on the same person), the Restoration Leadership Bench Builder (develop the Develop-first group), the Accountability Conversation Planner (the “here is what is between you and the promotion” talk), and the 90-Day Doer-to-Leader Transition Plan. Matching Claude skill: middle-manager-scorecard. Decision support only. Not legal or HR advice. Not a hiring, firing, promotion, compensation, or disciplinary determination.

    Related on Tygart Media: leadership readiness · leadership toolkit.

  • Leadership Readiness Checklist

    Leadership Readiness Checklist

    Leadership Readiness Checklist

    $49

    Delivered by email after checkout.

    Buy Now →

    Secure checkout via Square — all major cards accepted

    You can copy this method and do it yourself. Walk six sections. Check only what is truly true today. Rate each section red / yellow / green. Buy Now is the packaged Notion checklist you duplicate each quarter, so you are not rebuilding the bench read from a blank doc.

    Tool #5 of the Restoration Leadership Toolkit. Can your team actually lead, or does everything still run through you? This is an honest, section-by-section read on your current leadership bench: who leads what, who can decide without you, whether your leads hold their people accountable, your communication rhythm, your single points of failure, and who your next leaders could be.

    Be honest, not optimistic. A box you wish were true is a box left unchecked. Where you see a rating, pick the one that is true today. Where you see a name line, write the actual person. Empty checkboxes are your to-do list. When you are done, the gaps and the single points of failure are your leadership development plan. Duplicate the page for each review. Quarterly is a good cadence.

    1. Current leadership bench. Who leads what today

    Restoration technicians training in a shop bay with equipment demo and whiteboard
    Current leadership bench — who leads what today.

    List the people who currently carry real leadership responsibility, and what they own. If a function has no clear owner besides you, that is a finding. Note it.

    For each function write four lines: who leads it today; whether you still do this; notes.

    • Field production / crews
    • Estimating / scope
    • Project management / job files
    • Sales / lead intake
    • Office / admin / AR
    • Marketing / referral relationships
    • Finance / numbers
    • Hiring / people

    Then check what is actually true:

    • Every core function above has a named owner who is not me
    • Each owner knows they own it (it is explicit, not assumed)
    • At least one person besides me can speak for the company to a customer or adjuster
    • I have at least one true second-in-command (not just a senior doer)

    Bench depth. Pick one: red = it is all me. Yellow = one or two real leaders. Green = a functioning leadership team.

    2. Decision-making capability. Who can decide without you

    Three panels showing one problem, three options, one recommendation
    Decision-making without you — the readiness test.

    The test of a leader is not effort. It is whether they can make the call when you are not reachable.

    • My leads make routine operational decisions without checking with me
    • There is a clear dollar threshold under which leads can spend / approve without my sign-off
    • Someone can authorize a job, a crew move, or an equipment purchase if I am unreachable for a day
    • My team knows which decisions are theirs vs which truly need me
    • When a lead brings me a problem, they bring options and a recommendation, not just the problem
    • I can be out of contact for a full workday and jobs still move forward correctly
    • I have not reversed a lead’s reasonable decision in front of their team in the last 30 days

    Write today’s decision threshold: leads can independently approve up to $______.

    Decision autonomy. Pick one: red = everything routes to me. Yellow = small stuff yes, real calls no. Green = they own their lane.

    The 1-3-1 rule is the habit behind the “options and a recommendation” box. If that box is empty, install 1-3-1 before you hire another lead.

    3. Accountability habits. Do leads hold their people accountable

    A leader who will not hold the line is a doer with a title. This section is about whether accountability lives below you.

    • My leads address underperformance directly. They do not route it to me to fix
    • We have clear, written expectations / standards people are measured against
    • Leads give real feedback (good and corrective), not just task assignments
    • There are understood consequences when standards are repeatedly missed
    • Accountability conversations stay about the behavior/standard, not personal
    • I am not the only person in the company who delivers hard feedback
    • Wins and good work get recognized, not just problems

    Accountability ownership. Pick one: red = I am the only enforcer. Yellow = leads avoid the hard ones. Green = leads own their team’s standards.

    If this section is red or yellow, use the Accountability Conversation Planner for the next hard talk: issue, behavior, what you have already allowed, the expectation, the consequence or support, what success looks like in 30 days.

    4. Communication rhythm. The cadence that keeps it running

    Leadership runs on rhythm, not heroics. Check what actually happens on a schedule, not what you mean to do.

    • We hold a regular leadership / ops meeting (weekly or biweekly) that actually happens
    • Crews get a consistent daily or start-of-job huddle
    • I have recurring 1:1s with my direct leaders
    • There is a known way job status is communicated (not me texting everyone individually)
    • The team knows the company’s priorities for the quarter / season
    • Meetings have a predictable format and produce decisions/owners, not just talk
    • Bad news reaches me early, because people are not afraid to raise it

    Cadence in place (check all that run reliably): daily crew huddle; weekly leadership/ops meeting; recurring 1:1s with leads; monthly numbers / KPI review; quarterly priorities reset.

    Communication rhythm. Pick one: red = ad hoc / by text. Yellow = some of it, inconsistently. Green = reliable cadence.

    Weeks 9-10 of the 90-day plan is this huddle: 15 minutes, fixed agenda, 3-5 numbers someone other than you owns.

    5. Risk areas. Single points of failure

    Where is the business one person, one password, or one bad week away from a problem? Check every box that is a real exposure right now.

    • I am a single point of failure. Key things only I can do or decide
    • Only one person can run estimating / Xactimate
    • Only one person holds key carrier / adjuster / referral relationships
    • Only one person knows the financials, banking, or payroll
    • Only one person can dispatch / schedule crews
    • Critical logins, accounts, or vendor passwords live in one person’s head
    • If my best lead quit tomorrow, a major part of the business would stall
    • There is no written SOP for the things that “only so-and-so knows”
    • No one is cross-trained on my second-in-command’s role

    For each box checked, name the person, what breaks if they are gone, and whether a backup exists.

    Concentration risk. Pick one: red = several critical single points of failure. Yellow = one or two. Green = cross-covered.

    This section pairs with the 5 Ds (Death, Divorce, Disease, Drugs/dependency, Departure/Disaster). A checked box here is usually a blank box on the 5 Ds.

    6. Next leader candidates. Names plus readiness

    Four-phase board covering a 12-week owner freedom transition
    Next leader candidates — names plus readiness.

    Who is next? Name real people, rate how ready they are, and write the one thing each most needs to grow into more leadership.

    For each candidate: name; the role they could grow into; readiness (green = ready now / soon; yellow = 1-2 areas to grow; red = raw potential, long runway); the one thing they most need.

    • I have at least one green ready-now candidate identified
    • Each candidate has a clear next step or development conversation scheduled
    • I have actually told my top candidate I see leadership in them
    • My second-in-command has a developing backup

    Then put those names on a bench list and go deep on one person. A single real manager beats five people you are keeping an eye on.

    Readiness summary

    Tally your six section ratings last.

    • Mostly green. You have a real leadership team. Focus on deepening the bench and formalizing succession.
    • Mostly yellow. Leaders exist but lean on you for the hard calls and the hard conversations. Push decision authority and accountability down a level.
    • Mostly red. You are still the company. The priority is not more hiring. It is building one true second-in-command and removing the biggest single point of failure (usually you).

    Write three lines: my biggest single point of failure right now; the one leader I most need to develop next; the first move I will make in the next 30 days.

    If you want the packaged checklist

    You can run the six sections on a legal pad. Buy Now is the Notion page delivered by email after checkout. Duplicate it (··· → Duplicate) so the original stays clean for next quarter. The function table, the six section ratings, and the summary are already laid out. Same Square button at the top of this page.

    Pairs with the Restoration Leadership Bench Builder (develop the names you just wrote) and the 90-Day Doer-to-Leader Transition Plan. Matching Claude skill: leadership-readiness-checklist. A leadership self-assessment, not legal or HR advice.

    Related: Restoration Leadership Toolkit — Claude Edition. Also Restoration Leadership Bench Builder.

  • Logic Apps vs Cloud Workflows: No-Code Automation Across Two Clouds

    Logic Apps vs Cloud Workflows: No-Code Automation Across Two Clouds

    Logic Apps vs Cloud Workflows: No-Code Automation Across Two Clouds

    Every content operation runs on small invisible chains of “when this happens, do that.” Publish an article → notify a channel → write a row to the ledger. None of it is hard, but you don’t want to babysit a script for it — you want a managed orchestrator that fires on an event, calls a few services, and logs the result, for free. Azure and Google each have one, and they take opposite philosophies to the same job.

    We wire the same publish → notify → log automation on both Azure Logic Apps and Google Cloud Workflows, on the free tiers, and compare. Short answer: Logic Apps wins when the work is gluing SaaS services together — its connector library and visual designer are unmatched, with a free grant of 4,000 built-in actions/month. Cloud Workflows wins when the work is lightweight, code-first orchestration inside GCP — its 5,000 internal + 2,000 external steps/month free tier pairs cleanly with Eventarc and Pub/Sub. One is a no-code SaaS glue gun; the other is a YAML orchestration engine.

    This is the breakdown from the running lab on tygart.media — connector ecosystems, visual designer vs YAML, triggers, and free ceilings.

    The free-tier ceilings

    Three stacked layers: chat UI, tools, agent runtime
    Free-tier ceilings for Logic Apps vs Cloud Workflows.

    How we do it

    Azure Google Cloud Verdict
    Free grant/month 4,000 built-in actions 5,000 internal + 2,000 external steps Comparable, units differ
    Billing model Per-action (Consumption) Per-step (internal vs external) Different mental models
    What counts Each connector/built-in action Each workflow step executed Tie at our volume
    Fit for a glue chain Generous Generous Tie
    Our actual bill $0 $0 Tie where it counts

    Both free grants comfortably cover a real automation cadence. A publish → notify → log chain is three or four actions/steps per run; at a few publishes a day, neither 4,000 actions nor 7,000 steps comes close to binding. The units differ — Azure counts actions, Workflows splits internal vs external steps (external = calls out to other services, which are scarcer) — but for our workload both run free.

    Connectors vs code-first

    Side-by-side when to use a script versus an agent
    Connectors vs code-first automation.

    This is the real fork in the road, and it decides the choice.

    How we do it

    Azure Google Cloud Verdict
    Connector library Hundreds (SaaS + Microsoft + 3rd-party) HTTP + GCP services, no big SaaS catalog Logic Apps, decisively
    Authoring model Visual designer (drag-and-drop) YAML (code-first) Logic Apps for no-code
    SaaS glue (Slack, email, etc.) Native connectors, prebuilt auth Roll your own via HTTP Logic Apps
    GCP-native orchestration Possible via HTTP First-class Cloud Workflows
    Versioning / review in git Exportable, but designer-first YAML lives in git naturally Cloud Workflows

    Logic Apps’ superpower is its connector library — hundreds of prebuilt, pre-authenticated connectors for Slack, Office, Salesforce, Twitter/X, databases, and most SaaS you’d name. Wiring “post to Slack when an article publishes” is point-and-click, with the OAuth handled for you. Cloud Workflows takes the opposite stance: it’s code-first YAML with no big SaaS catalog — you orchestrate GCP services and arbitrary HTTP endpoints, building any integration you need by hand. That’s less convenient for SaaS glue but cleaner for engineers who want their orchestration in git, reviewed like code.

    Triggers and event sources

    How we do it

    Azure Google Cloud Verdict
    Native triggers Many (HTTP, schedule, connector events) HTTP + Eventarc/Pub/Sub Logic Apps on built-in variety
    Event-driven on cloud events Via Event Grid Via Eventarc (first-class) Cloud Workflows for GCP events
    Schedule / cron Built-in recurrence Cloud Scheduler Tie
    SaaS event triggers Connector-based, prebuilt Roll your own Logic Apps
    Pub/Sub-style fan-out Event Grid Pub/Sub (native pairing) Cloud Workflows in GCP

    Logic Apps can be triggered by connector events directly — “when a new email arrives,” “when a row is added” — which keeps SaaS-driven automations entirely no-code. Cloud Workflows leans on Eventarc and Pub/Sub for event sources, which is the idiomatic, powerful path if your events originate in GCP. Each is strongest for events native to its own cloud.

    What surprised us

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    What surprised us across two clouds.
    • Logic Apps’ connector library is the whole ballgame for SaaS glue. Pre-authenticated connectors turned a “write a small integration” task into a five-minute drag-and-drop. Nothing on the GCP side matches that catalog.
    • Cloud Workflows’ YAML-in-git is quietly the better engineering experience. When the orchestration lives in the repo and gets code-reviewed, it stops being a clickable black box. We liked that more than expected.
    • The free grants are both ample. We worried about per-action metering and never came near either ceiling at a realistic publishing cadence.
    • External steps are the scarce currency on GCP. Workflows’ 2,000 external steps (calls out to other services) is the limit to watch, not the 5,000 internal steps.

    The takeaway

    Pick Azure Logic Apps if your automation is mostly gluing SaaS services together — Slack, email, CRMs, Microsoft 365 — and you want a visual, no-code designer with hundreds of pre-authenticated connectors. It’s the fastest path from “I wish X notified Y” to a running flow.

    Pick Google Cloud Workflows if your automation is lightweight orchestration inside GCP — coordinating Cloud Run, Functions, Pub/Sub, and HTTP endpoints — and you want it defined as code-first YAML that lives in git and pairs with Eventarc. It’s the cleaner engineering primitive when the events and services are already on Google’s side.

    For our publish → notify → log chain, the deciding factor is where the notify lands: a Slack or email notification leans Logic Apps for the free connector; a fan-out into Cloud Run or Pub/Sub leans Workflows. Running the same chain on both made the connector-vs-code-first trade concrete.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud on the free tiers, wiring the same automation on each to see which orchestrator fits which job. The lab lives on tygart.media; the findings publish here.

    Related on Tygart Media: Azure Functions vs Cloud Run · $0 cloud stack · Cosmos DB vs Firestore.

    Frequently asked questions

    What’s the free tier for Azure Logic Apps and Google Cloud Workflows? Azure Logic Apps (Consumption) includes a free grant of 4,000 built-in actions per month. Google Cloud Workflows includes 5,000 internal steps and 2,000 external steps per month free. Both comfortably cover a realistic automation cadence, so a small glue chain runs at $0 on either.

    Which is better for no-code automation, Logic Apps or Cloud Workflows? Logic Apps is the no-code choice — it has a visual drag-and-drop designer and hundreds of pre-authenticated connectors for SaaS services. Cloud Workflows is code-first YAML with no big SaaS catalog, so it suits engineers orchestrating GCP services rather than non-developers gluing apps together.

    Does Cloud Workflows have a connector library like Logic Apps? No. Cloud Workflows orchestrates GCP services and arbitrary HTTP endpoints, but it has no large prebuilt SaaS connector catalog the way Logic Apps does. To integrate a third-party SaaS in Workflows, you call its HTTP API and handle authentication yourself, whereas Logic Apps provides a ready-made connector.

    How do I trigger automation when an article is published? On Azure, a Logic App can be triggered by an HTTP request, a schedule, or a connector event, then call further connectors with no code. On Google Cloud, a Workflow is typically triggered via Eventarc or Pub/Sub for cloud-native events, or by HTTP. Each is strongest for events that originate inside its own cloud.

    Which is better for gluing SaaS and cloud events together? Logic Apps wins for SaaS glue thanks to its connector library and visual designer, making things like “notify Slack when X happens” nearly code-free. Cloud Workflows wins for lightweight, code-first orchestration of GCP services that lives in git and pairs with Eventarc and Pub/Sub. Pick by where your events and services already live.

  • Azure Static Web Apps vs Firebase Hosting: A Dashboard on Each

    Azure Static Web Apps vs Firebase Hosting: A Dashboard on Each

    Azure Static Web Apps vs Firebase Hosting: A Dashboard on Each

    A static front-end — an internal dashboard, a docs site, a landing page — is the most thankless thing to host badly and the most satisfying thing to host well. You want a global CDN, free SSL, a custom domain, and CI/CD that redeploys when you push, all without standing up a server or paying a cent. Both Azure and Google have a purpose-built free product for exactly this, and they’re both genuinely excellent.

    We host the same internal dashboard on both Azure Static Web Apps and Firebase Hosting, on the free tiers, and compare. Short answer: this is a toss-up — both are excellent, pick by ecosystem. Azure Static Web Apps free tier gives you 100 GB of bandwidth, 2 custom domains, 0.5 GB per app, free managed SSL, and built-in CI/CD straight from GitHub. Firebase Hosting’s free Spark plan gives you 10 GB of storage, 360 MB/day of transfer, free SSL, and custom domains. The right answer is whichever cloud your other services already live in.

    This is the breakdown from the running lab on tygart.media — bandwidth and limits, CI/CD, auth and functions integration, custom domains, and the CDN.

    The free-tier ceilings

    Four pillars: headless agents, MCP tools, rules/memory, human review
    Free-tier ceilings for Static Web Apps vs Firebase.

    How we do it

    Azure Google Cloud Verdict
    Free bandwidth 100 GB total 360 MB/day (~10 GB/mo) transfer Azure on raw monthly headroom
    Free storage per app 0.5 GB 10 GB Firebase on storage
    Custom domains (free) 2 Multiple supported Firebase, slightly
    Free managed SSL Yes Yes Tie
    Built-in CI/CD Yes (GitHub Actions wired automatically) Yes (Firebase CLI / GitHub Action) Azure, slightly more turnkey

    The numbers favor different things. Azure leads on monthly bandwidth — 100 GB is a lot of dashboard traffic — while Firebase leads on storage, with 10 GB versus Azure’s 0.5 GB per app. For an internal dashboard, neither limit is close to binding: the assets are small and the audience is a handful of people. Firebase’s 360 MB/day transfer cap is the one to watch only if a dashboard goes unexpectedly viral, which an internal tool won’t.

    CI/CD, auth, and functions

    Side-by-side when to use a script versus an agent
    CI/CD, auth, and functions on each host.

    This is where “static hosting” stops being just a CDN and starts being a platform.

    How we do it

    Azure Google Cloud Verdict
    Deploy on git push Auto-wired GitHub Actions Firebase CLI or GitHub Action Azure on zero-config setup
    Built-in auth Yes (Entra, GitHub, social — built in) Via Firebase Authentication Azure for bundled, Firebase for depth
    Serverless functions Built-in Azure Functions integration Cloud Functions / pairs naturally Tie — both have a backend path
    Staging environments Free preview environments per PR Preview channels Tie
    Setup friction Connect repo, done CLI init, done Azure, slightly

    Azure Static Web Apps’ standout is how much it bundles by default: connect a GitHub repo and it writes the Actions workflow for you, provisions preview environments per pull request, and offers built-in authentication (Entra, GitHub, and social providers) without you wiring an auth service. Firebase matches the capability but composes it from named products — Firebase Authentication and Cloud Functions — which is more à la carte and, if you’re already deep in Firebase, more powerful and familiar.

    Custom domains and the CDN

    How we do it

    Azure Google Cloud Verdict
    Custom domain setup 2 free, managed cert Add domain, managed cert Tie
    Global CDN Yes, included Yes, included (Fastly-backed) Tie
    Cache control Configurable Configurable Tie
    TTFB at our scale Fast Fast Tie

    Both put your dashboard behind a real global CDN with automatic SSL on a custom domain, and at our scale the time-to-first-byte was indistinguishable. This part is genuinely a wash — both clouds have solved static delivery.

    What surprised us

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    What surprised us hosting the same dashboard.
    • Azure’s per-PR preview environments are a delight. Open a pull request and you get a live URL of that exact change, free, with no setup. For reviewing dashboard tweaks it’s better than we expected.
    • Firebase’s storage allowance is the bigger one. 10 GB versus 0.5 GB sounds dramatic, but for a static front-end neither limit matters — the assets are tiny.
    • Azure’s built-in auth saved real work. Adding GitHub login to an internal dashboard was nearly free of code on Azure; on Firebase it meant wiring Firebase Authentication, which is more capable but more steps.
    • The hosting itself is a non-event on both. Push, it’s live, it’s fast, it’s free. That’s the whole experience — exactly as it should be.

    The takeaway

    Pick Azure Static Web Apps if you want the most bundled experience — auto-wired GitHub CI/CD, free per-PR preview environments, and built-in authentication — and your stack already leans Microsoft. The 100 GB bandwidth is generous for any internal tool.

    Pick Firebase Hosting if you’re already in the Firebase/Google ecosystem and want its deeper, composable Authentication and Cloud Functions, or you value the larger 10 GB storage allowance. It pairs naturally with the rest of Firebase.

    Honestly, for a static dashboard you can’t go wrong. We run the dashboard on whichever cloud hosts the data and functions behind it — co-location beats cleverness. Both deliver the dashboard fast, on a custom domain, with free SSL, at $0.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud on the free tiers, hosting the same dashboard on each to feel where the platforms differ. The lab lives on tygart.media; the findings publish here.

    Related on Tygart Media: $0 cloud stack · Functions vs Cloud Run · Cosmos DB vs Firestore.

    Frequently asked questions

    What do the free tiers of Azure Static Web Apps and Firebase Hosting include? Azure Static Web Apps’ free tier includes 100 GB of bandwidth, 2 custom domains, 0.5 GB of storage per app, free managed SSL, and built-in GitHub CI/CD. Firebase Hosting’s free Spark plan includes 10 GB of storage, 360 MB/day of transfer, free SSL, and custom domains. Azure leads on bandwidth; Firebase leads on storage.

    Which is better for hosting a static site or dashboard for free? Both are excellent and the choice comes down to ecosystem. Azure Static Web Apps bundles more by default — auto-wired CI/CD, per-PR preview environments, and built-in authentication. Firebase Hosting pairs naturally with Firebase Authentication and Cloud Functions and offers more free storage. Pick the one matching the rest of your stack.

    Does Azure Static Web Apps include built-in authentication? Yes. Azure Static Web Apps offers built-in authentication with Entra ID, GitHub, and social providers without wiring a separate auth service, which makes adding login to an internal dashboard nearly code-free. Firebase achieves the same through Firebase Authentication, which is more capable but takes more setup.

    Do both Azure Static Web Apps and Firebase Hosting give free SSL and custom domains? Yes. Both provide free managed SSL certificates and support custom domains on the free tier — Azure includes 2 custom domains, and Firebase supports adding custom domains with managed certificates. Both also put your site behind a global CDN at no cost.

    Will I hit the free hosting limits with an internal dashboard? Almost certainly not. An internal dashboard serves small assets to a few people, so neither Azure’s 100 GB bandwidth nor Firebase’s 360 MB/day transfer comes close to binding. Firebase’s daily transfer cap would only matter if a public site went unexpectedly viral.

  • Cosmos DB vs Firestore: A Free-Tier Operat (2026)

    Cosmos DB vs Firestore: A Free-Tier Operat (2026)

    Cosmos DB vs Firestore: A Free-Tier Operations Ledger on Both Clouds

    Every real content operation grows a small database it didn’t plan for: a ledger of what got published when, a metadata store tracking which article has an audio version, which has been translated, which is queued. It’s not big data — it’s a few thousand small records that need to be written cheaply, queried quickly, and never cost anything. The question is which cloud’s free NoSQL tier carries that load forever.

    We run the same small ops ledger and content-metadata store on both Azure Cosmos DB and Google Firestore, on the free tiers, and watch the quotas. Short answer: Cosmos DB’s always-free tier is unusually generous1,000 RU/s of provisioned throughput plus 25 GB of storage, free for the life of one account per subscription. Firestore’s free tier is simpler but tighter1 GiB of storage with 50,000 reads, 20,000 writes, and 20,000 deletes per day. For a metadata store that fits either, Cosmos gives you more room; Firestore gives you less to think about.

    This is the breakdown from the running lab on tygart.media — free-tier generosity, data model, query power, latency, and which one we’d trust with the ledger.

    The free-tier ceilings

    Flow from app/IDE through MCP to servers and data APIs
    Free-tier ceilings for Cosmos DB vs Firestore.

    This is where the two diverge most, and the units don’t line up cleanly — which is itself the point.

    How we do it

    Azure Google Cloud Verdict
    Free throughput 1,000 RU/s provisioned 50K reads / 20K writes / 20K deletes per day Cosmos for steady throughput
    Free storage 25 GB 1 GiB Cosmos — 25× the storage
    Billing unit Request Units (RU/s) Per-operation daily quota Different mental models
    How many free tiers One per subscription Per project (Spark plan) Tie, structurally
    Fit for a metadata store Generous Comfortable for small stores Cosmos on headroom

    The mismatch in units is the real story. Cosmos meters everything in Request Units — a blended currency for reads, writes, and queries — and gives you a flat 1,000 RU/s continuously plus 25 GB. Firestore meters discrete daily operations — 50K reads, 20K writes, 20K deletes — and 1 GiB. For our ledger, Cosmos’s 25 GB is absurd headroom we’ll never approach, and 1,000 RU/s comfortably absorbs bursty publish events. Firestore’s daily caps are fine for a small store but you feel them: a chatty dashboard that re-reads the ledger on every page load can nibble through 50K reads faster than you’d expect.

    Data model and query power

    Side-by-side when to use a script versus an agent
    Data model and query power.

    How we do it

    Azure Google Cloud Verdict
    Data model Multi-model (document, key-value, graph, column) Document (collections + docs) Cosmos on flexibility
    API surface NoSQL (SQL-like), MongoDB, Cassandra, Gremlin, Table Native Firestore SDK Cosmos on portability
    Query model Rich SQL-like queries, indexing tunable Indexed queries, real-time listeners Tie — different strengths
    Real-time sync Change feed First-class real-time listeners Firestore on live UI
    Schema Schema-agnostic Schema-agnostic Tie

    Cosmos is multi-model: the same data can be addressed through a SQL-like NoSQL API, MongoDB’s wire protocol, Cassandra, Gremlin (graph), or Table. If you ever want to query the ledger like a graph, or you’re migrating off MongoDB, that optionality is real and free. Firestore is single-purpose by design — document collections with excellent real-time listeners, which is the thing to reach for when a dashboard should update live as the ledger changes. For a metadata store feeding a UI, those listeners are genuinely pleasant.

    Latency and operational feel

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    Latency and operational feel.

    How we do it

    Azure Google Cloud Verdict
    Read latency Single-digit ms (tuned) Low, very consistent Tie at our scale
    Provisioning model Provisioned RU/s (or serverless) Fully managed, no capacity knobs Firestore on simplicity
    Capacity tuning You can over/under-provision Nothing to tune Firestore on hands-off
    Setup friction A few more knobs Near-zero Firestore

    At our volume, both are fast enough that latency never registered as a difference. The operational feel diverges: Cosmos hands you knobs (RU/s, consistency levels, indexing policy) — power if you want it, a thing to learn if you don’t. Firestore has almost no knobs, which is the right call when the database is a side character in your stack and you never want to think about capacity.

    What surprised us

    • Cosmos’s 25 GB always-free storage is wildly generous for a metadata store. We will not approach it. It reframed Cosmos from “enterprise database” to “perfectly viable free tier.”
    • Firestore’s daily read quota is the thing to watch. It’s not the storage that bites — it’s a chatty UI re-reading the ledger. Cache reads or you’ll surprise yourself.
    • The RU/s model has a learning curve. Cosmos’s Request Unit currency is unintuitive at first; once it clicks, capacity planning is straightforward, but day one is more conceptual than Firestore.
    • Firestore’s real-time listeners are a quiet joy. For a live dashboard, “the data just updates” without polling is worth a lot.

    The takeaway

    Pick Azure Cosmos DB if you want maximum free headroom — 1,000 RU/s and 25 GB is a lot of database for $0 — or you value multi-model flexibility and API portability (especially a MongoDB-compatible path). It’s our pick when the ledger might grow or change shape.

    Pick Firestore if you want the simplest possible managed document store with first-class real-time listeners and nothing to tune, and your store stays comfortably inside 1 GiB and the daily operation caps. It’s the right call when the database should disappear into the background.

    For our ops ledger, Cosmos’s always-free generosity is hard to argue with — but for the live dashboard that reads the ledger, Firestore’s real-time listeners are the nicer developer experience. Running the same store on both made the trade explicit instead of theoretical.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud on the free tiers, keeping the same ops ledger on each to see where the quotas really pinch. The lab lives on tygart.media; the findings publish here.

    Related on Tygart Media: Static Web Apps vs Firebase · $0 cloud stack · Azure AI Search vs Vertex.

    Frequently asked questions

    What does the free tier of Cosmos DB and Firestore actually include? Azure Cosmos DB’s always-free tier gives 1,000 RU/s of provisioned throughput plus 25 GB of storage, free for one account per subscription. Firestore’s free Spark tier gives 1 GiB of storage with 50,000 reads, 20,000 writes, and 20,000 deletes per day. Cosmos offers far more storage; Firestore meters by daily operations.

    Is Cosmos DB or Firestore more generous on the free tier? For storage and steady throughput, Cosmos DB is more generous — 25 GB and a continuous 1,000 RU/s versus Firestore’s 1 GiB and daily operation caps. Firestore is perfectly adequate for a small metadata store, but a chatty application can hit its daily read quota. Cosmos gives more headroom for growth.

    What’s the difference between Cosmos DB and Firestore’s data model? Cosmos DB is multi-model: the same data can be queried as documents, key-value pairs, graphs, or columns, and it speaks NoSQL, MongoDB, Cassandra, Gremlin, and Table APIs. Firestore is a focused document database — collections and documents — with excellent real-time listeners. Cosmos offers flexibility; Firestore offers simplicity.

    Which is better for a serverless content metadata store? Both work well. Choose Cosmos DB if you want generous free storage, multi-model flexibility, or a MongoDB-compatible path. Choose Firestore if you want a zero-tuning managed store with real-time listeners that update a dashboard live, and your data fits inside 1 GiB and the daily operation limits.

    Will I hit Firestore’s free quota with a small app? Storage usually isn’t the problem — 1 GiB holds a lot of small records. The daily read quota of 50,000 is what catches people: a dashboard that re-reads the same data on every page load can consume it quickly. Caching reads keeps a small app comfortably inside the free tier.

  • Azure Neural TTS vs Google Cloud Text-to-Speech (2026)

    Azure Neural TTS vs Google Cloud Text-to-Speech (2026)

    Azure Neural TTS vs Google Cloud Text-to-Speech: Audio Versions of Every Article

    Adding an audio version of every article is one of those low-effort, high-leverage moves: it makes your content accessible to people who’d rather listen, it gives you a “play this article” widget that lifts time-on-page, and the audio file itself becomes another thing search and assistants can surface. The work is entirely automated — text goes in, an MP3 comes out — so the only real decisions are which voice sounds least like a robot and which free tier covers your back catalog.

    We auto-generate audio versions of the same articles on both Azure Neural TTS and Google Cloud Text-to-Speech, on the free tiers, and listen. Short answer: this one’s an honest toss-up. Both produce genuinely natural neural voices, both give you SSML control, and both run our audio pipeline for $0/month. Azure’s free tier is 500,000 characters/month (~60–80 article audio versions of neural voices); Google’s is 1,000,000 characters/month of Standard voices and 1,000,000 characters/month of WaveNet/Neural2 premium voices. Pick by ecosystem and by which voice you’d rather hear.

    This is the breakdown from the running lab on tygart.media — voice naturalness, SSML control, voice variety, free ceilings, and the accessibility/SEO payoff.

    The free-tier ceilings

    Comparison of Claude how-to fit versus local service page fit for assistants
    Free-tier ceilings for Neural TTS vs Cloud TTS.

    How we do it

    Azure Google Cloud Verdict
    Free neural/premium chars/month 500,000 (Neural) 1,000,000 (WaveNet/Neural2) Google — 2× headroom
    Free standard chars/month n/a (neural is the tier) 1,000,000 (Standard) Google on raw volume
    Roughly how many article audios ~60–80 neural/mo ~140 premium/mo Google
    Always-free Yes Yes Tie
    Our actual bill $0 $0 Tie where it counts

    A 1,200-word article runs around 6,500–7,000 characters, so Azure’s 500K neural budget covers roughly 60–80 full article audio versions a month, and Google’s 1M premium budget covers roughly twice that. For a publisher shipping a handful of articles a week, both stay free with room to spare — the 2× gap only bites if you’re voicing a large back catalog in one go.

    Voice quality and SSML control

    Four cards for content, ops, build, and knowledge work with Claude
    Voice quality and SSML control.

    This is where you actually choose, and it’s genuinely close.

    How we do it

    Azure Google Cloud Verdict
    Voice naturalness Excellent, very expressive Excellent, very natural Tie — both clear the “robot” bar
    Voice variety Huge neural catalog, many styles Large WaveNet/Neural2 catalog Slight edge Azure on styles
    Speaking styles / emotion Yes (cheerful, newscast, etc.) More limited emotional styles Azure
    SSML control Full SSML + style/prosody tags Full SSML Azure, slightly
    Custom voice Yes (custom neural voice) Yes (custom voice) Tie
    Languages / locales 140+ locales 50+ languages, many voices Azure on locale breadth

    Both clear the bar that matters: neither sounds like a 2010-era text-to-speech engine, and a casual listener wouldn’t immediately clock either as synthetic. Azure edges ahead on expressiveness — its neural voices support named speaking styles (newscast, cheerful, empathetic) that are perfect for an article read-aloud, and its SSML supports fine prosody control. Google’s Neural2 voices are beautifully natural and, to some ears, a touch warmer; the emotional-style controls are just a little thinner.

    The accessibility and SEO payoff

    Desk with laptop, checklist notebook, and billing card ready before creating an Anthropic API key
    Accessibility and SEO payoff of audio articles.

    The audio isn’t only a nice-to-have. It does real work.

    How we do it

    Azure Google Cloud Verdict
    Accessibility win Listen instead of read Listen instead of read Tie
    Output format MP3 / WAV / streaming MP3 / LINEAR16 / OGG Tie
    Pipeline integration REST + SDKs REST + SDKs Tie
    Time-on-page lift Audio widget keeps people on page Same Tie

    An audio version gives screen-reader users and “I’d rather listen” users a first-class way to consume the piece, and the on-page player tends to lift dwell time — a signal that doesn’t hurt. The mechanics are identical on both clouds: feed text, get an MP3, embed it.

    What surprised us

    • Both are genuinely good now. We expected one to clearly win on naturalness and neither did — the synthetic-voice era is over on both clouds.
    • Azure’s speaking styles are the sleeper feature. Being able to render an article in a “newscast” or “cheerful” style without writing prosody by hand made the read-alouds noticeably more engaging.
    • Google’s free character budget is the bigger one. 1M premium characters is real headroom; if you’re voicing a back catalog, that matters more than a half-point of naturalness.
    • The MP3s are interchangeable. Once embedded, listeners couldn’t reliably tell which cloud voiced which article in a blind test we ran on ourselves.

    The takeaway

    Pick Azure Neural TTS if you want maximum expressiveness — named speaking styles, fine prosody control, and the broadest locale catalog — and your Microsoft ecosystem is already where the rest of your stack lives. The 500K free characters cover a normal publishing cadence comfortably.

    Pick Google Cloud Text-to-Speech if you want the larger free character budget (1M premium) for voicing a big back catalog, or you simply prefer the warmth of the Neural2 voices, and your stack is GCP-centric.

    For us this is the rare comparison with no loser. We run the pipeline on whichever cloud the rest of that article’s workflow already lives on — and the listener can’t tell the difference either way.

    This is part of our “Two Clouds, One Site” series — we run the same media property on both Azure and Google Cloud on the free tiers, generating audio versions of the same articles on each to hear where the voices differ. The lab lives on tygart.media; the findings publish here.

    Related on Tygart Media: Translator vs Google Translate · AI Language vs NL API · $0 cloud stack.

    Frequently asked questions

    How many free characters do Azure and Google text-to-speech give you per month? Azure Neural TTS gives 500,000 free neural characters per month, which is roughly 60–80 article audio versions. Google Cloud Text-to-Speech gives 1,000,000 free Standard characters and 1,000,000 free WaveNet/Neural2 premium characters per month, roughly double Azure’s premium headroom. Both stay free for a normal publishing cadence.

    Which text-to-speech sounds more natural, Azure or Google? Both produce genuinely natural neural voices, and in blind listening neither clearly wins. Azure edges ahead on expressiveness with named speaking styles like newscast and cheerful, while Google’s Neural2 voices are very natural and, to some ears, slightly warmer. The synthetic-robot problem is solved on both.

    Can I auto-generate an audio version of every blog post for free? Yes. Both clouds expose a simple REST API that turns article text into an MP3, and their free character budgets cover a typical few-articles-a-week cadence at $0. Google’s larger free budget is better if you want to voice a big back catalog in one pass.

    Does Azure Neural TTS support SSML and speaking styles? Yes. Azure supports full SSML plus named speaking styles (newscast, cheerful, empathetic and more) and fine prosody control, which makes article read-alouds noticeably more engaging. Google also supports full SSML, but its emotional-style controls are thinner.

    Does adding an audio version of articles help accessibility and SEO? Yes. An audio version gives screen-reader and listen-first users a first-class way to consume the content, improving accessibility, and the on-page audio player tends to lift time-on-page, which is a positive engagement signal. The benefit is identical whether you generate the audio on Azure or Google.