<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: lululapeng</title>
    <description>The latest articles on DEV Community by lululapeng (@lululapeng).</description>
    <link>https://dev.to/lululapeng</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4200666%2Fab170e07-c39b-4220-a374-afa0889e6d6c.png</url>
      <title>DEV Community: lululapeng</title>
      <link>https://dev.to/lululapeng</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lululapeng"/>
    <language>en</language>
    <item>
      <title>The follow-up I lost in a Slack thread (and the one-page tracker that would have caught it)</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Fri, 13 Nov 2026 01:25:36 +0000</pubDate>
      <link>https://dev.to/lululapeng/the-follow-up-i-lost-in-a-slack-thread-and-the-one-page-tracker-that-would-have-caught-it-4247</link>
      <guid>https://dev.to/lululapeng/the-follow-up-i-lost-in-a-slack-thread-and-the-one-page-tracker-that-would-have-caught-it-4247</guid>
      <description>&lt;p&gt;I once let a warm “let’s start next month” message die in a Slack thread I forgot to star.&lt;/p&gt;

&lt;p&gt;The client was real. The budget was real. I had quoted, they had said yes-in-spirit, and then a product launch ate both of our weeks. When I finally remembered to nudge them, the thread was buried under 200 unread messages and they had already hired someone who followed up on a Tuesday.&lt;/p&gt;

&lt;p&gt;The fix was not “check Slack more.” It was a &lt;strong&gt;single place&lt;/strong&gt; that answered three questions every Friday in under ten minutes:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Who is open?&lt;/strong&gt; — lead, discovery, proposal sent, waiting, active, won, lost
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When did I last touch them?&lt;/strong&gt; — a date, not a vibe
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What is the next visible action?&lt;/strong&gt; — one verb: send proposal, nudge, send invoice, schedule kickoff, mark lost&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I keep it boring on purpose: a Clients list, a Pipeline board (Lead → Discovery → Proposal → Won / Active / Lost), and an Invoices table (Draft → Sent → Due → Overdue → Paid). Notion works. A Markdown table works. A spreadsheet works. The tool matters less than looking at it once a week before you open chat.&lt;/p&gt;

&lt;p&gt;You can steal the shape today: make three columns (name / last touch / next action), dump every half-alive lead into it, and set one 15-minute Friday review. No kit required.&lt;/p&gt;

&lt;p&gt;Want a free taste of the paperwork stack first? Five one-pagers (rate card, kickoff questions, change-order, three client emails, tax habits) sit in a pay-what-you-want sampler:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Need a clean deposit/final invoice PDF with no signup?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want the Notion-ready Markdown tables + a CSV import starter + a weekly dashboard checklist in one ZIP, I bundled it as a $19 Freelance Client Tracker (no monthly SaaS):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lulupearl0.gumroad.com/l/freelance-client-tracker" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-client-tracker&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Building in public: store has views, &lt;strong&gt;revenue is still $0&lt;/strong&gt;. Soft promo stays honest. If you use a simpler tracker ritual that actually sticks, I would love to hear it.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>career</category>
      <category>productivity</category>
      <category>freelancing</category>
    </item>
    <item>
      <title>The testimonial ask I used to postpone for months (and the 5-minute version that works)</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Mon, 09 Nov 2026 01:06:20 +0000</pubDate>
      <link>https://dev.to/lululapeng/the-testimonial-ask-i-used-to-postpone-for-months-and-the-5-minute-version-that-works-3ioc</link>
      <guid>https://dev.to/lululapeng/the-testimonial-ask-i-used-to-postpone-for-months-and-the-5-minute-version-that-works-3ioc</guid>
      <description>&lt;p&gt;I used to treat testimonials like a victory lap I hadn’t earned yet.&lt;/p&gt;

&lt;p&gt;Project shipped. Invoice paid. Client said “thanks!” in Slack. Then I… closed the tab and waited for them to volunteer a quote. They almost never did. Six months later my portfolio still had screenshots and no names.&lt;/p&gt;

&lt;p&gt;The fix wasn’t “be more confident.” It was a &lt;strong&gt;timed, low-friction ask&lt;/strong&gt; with three pieces ready before I hit send:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;One specific win&lt;/strong&gt; — not “you were great,” but “the homepage load dropped from ~4s to under 1.5s” or “we cut revision rounds from five to two”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A permission line&lt;/strong&gt; — short, plain English: okay to use name + role + this sentence on my site?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;An easy out&lt;/strong&gt; — “a two-sentence reply is perfect; bullet points are fine”&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I send it &lt;strong&gt;within 72 hours of final delivery&lt;/strong&gt;, while the win is still warm. Soft email first. If they already chat on LinkedIn, a DM works. I do &lt;strong&gt;not&lt;/strong&gt; ask on day one of the project, and I do &lt;strong&gt;not&lt;/strong&gt; bury the ask under a long case-study draft they have to edit.&lt;/p&gt;

&lt;p&gt;You can steal the shape today: write the win in one sentence, paste a permission line, ask for two sentences. No kit required.&lt;/p&gt;

&lt;p&gt;Want a free taste of the paperwork stack first? Five one-pagers (rate card, kickoff questions, change-order, three client emails, tax habits) sit in a pay-what-you-want sampler:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Need a clean deposit/final invoice PDF with no signup?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want the full ask scripts + permission template + case-study outline + metrics sheet + portfolio blurbs in one ZIP, I bundled it as a $12 Testimonial &amp;amp; Case Study Kit:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lulupearl0.gumroad.com/l/freelance-testimonial-kit" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-testimonial-kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Building in public: store has views, &lt;strong&gt;revenue is still $0&lt;/strong&gt;. Soft promo stays honest. Feedback welcome — especially if a softer ask worked better for you.&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>career</category>
      <category>writing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>“You’re hired” — then what? The 48-hour async onboarding I wish I’d sent</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Thu, 05 Nov 2026 01:11:07 +0000</pubDate>
      <link>https://dev.to/lululapeng/youre-hired-then-what-the-48-hour-async-onboarding-i-wish-id-sent-4gk2</link>
      <guid>https://dev.to/lululapeng/youre-hired-then-what-the-48-hour-async-onboarding-i-wish-id-sent-4gk2</guid>
      <description>&lt;p&gt;The worst part of landing a freelance client wasn’t the pitch.&lt;/p&gt;

&lt;p&gt;It was the silence after “you’re hired.”&lt;/p&gt;

&lt;p&gt;Deposit cleared. Slack invite arrived. Then… nothing useful. No access list. No decision-maker. No “where do files live.” Day three I was still guessing fonts from a screenshot while the kickoff call got rescheduled twice.&lt;/p&gt;

&lt;p&gt;I used to treat onboarding as a vibe: be friendly, ask in chat, hope someone replies. That burned more calendar than any unpaid revision.&lt;/p&gt;

&lt;p&gt;What fixed it was a &lt;strong&gt;written 48-hour async pack&lt;/strong&gt; I send the moment the deposit hits — no meeting required to start:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Welcome + how we’ll work&lt;/strong&gt; — channels, response times, what “done” means this week
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access checklist&lt;/strong&gt; — CMS, brand kit, repo, Analytics, staging (with owners)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Decision log stub&lt;/strong&gt; — who approves what, so “I thought Sarah said…” dies early
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Week-1 milestones&lt;/strong&gt; — three concrete outcomes, not a vague “get aligned” call
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Parking lot&lt;/strong&gt; — out-of-scope ideas land here instead of in my inbox at 11pm&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Clients who filled it before the call showed up ready. Clients who didn’t still had a thread I could point to. Either way I stopped being the project’s oral historian.&lt;/p&gt;

&lt;p&gt;You can steal the shape today without buying anything: write those five headers in a doc, send it with “reply in-line, 15 minutes is enough.”&lt;/p&gt;

&lt;p&gt;Prefer a free taste first? Five one-pagers (rate card, kickoff questions, change-order, three client emails, tax habits) sit in a pay-what-you-want sampler:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Need the deposit invoice before onboarding starts? Free no-signup PDF invoice tool:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want the full pack (welcome email, access checklist, decision log, week-1 plan, parking-lot + handoff notes)? I bundled it as a $29 Async Onboarding Pack:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://lulupearl0.gumroad.com/l/freelance-async-onboarding" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-async-onboarding&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s the one access or decision that usually blocks your week one? Drop it below — I’m collecting “hired but stuck” stories for a follow-up.&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>career</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>The email I wish I’d sent the first time a client said “quick tweak”</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Mon, 02 Nov 2026 01:08:02 +0000</pubDate>
      <link>https://dev.to/lululapeng/the-email-i-wish-id-sent-the-first-time-a-client-said-quick-tweak-2lo3</link>
      <guid>https://dev.to/lululapeng/the-email-i-wish-id-sent-the-first-time-a-client-said-quick-tweak-2lo3</guid>
      <description>&lt;p&gt;The first year I freelanced, “quick tweak” cost me more than any unpaid invoice.&lt;/p&gt;

&lt;p&gt;A button color. A “tiny” extra page. A “can you also…” on Friday afternoon. I said yes because I wanted to be easy to work with. By month three I had shipped goodwill and underpriced myself into resentment.&lt;/p&gt;

&lt;p&gt;The fix wasn’t a harder personality. It was a &lt;strong&gt;boundary system&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Name the request in writing&lt;/strong&gt; — “Happy to look — here’s what I heard…”&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Map it to scope&lt;/strong&gt; — in-scope revision vs new work&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Price or park&lt;/strong&gt; — change-order line item, or Phase 2 backlog&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don’t start until they confirm&lt;/strong&gt; — silence ≠ approval&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I eventually packaged the forms + policy + five boundary email snippets as a $12 kit (Scope &amp;amp; Change-Order Kit). You don’t need the kit to start today — you need one sentence you can reuse:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I can do that — it’ll be a small change-order (scope, price, days) before I start so we don’t blow the launch date. Want me to send the CO?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you want the full pack (scope statement, change-order form, revision policy one-pager, meeting notes, and the five emails):&lt;br&gt;
&lt;a href="https://lulupearl0.gumroad.com/l/scope-change-order-kit" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/scope-change-order-kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prefer a free taste first? I put five one-pagers (rate card, kickoff questions, change-order form, three client emails, tax habits) into a pay-what-you-want sampler:&lt;br&gt;
&lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you just need to invoice the deposit / the CO without another SaaS login:&lt;br&gt;
&lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What’s the “quick tweak” that taught you the lesson? Drop it below — I’m collecting boundary stories for a follow-up.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>freelancing</category>
      <category>career</category>
      <category>productivity</category>
    </item>
    <item>
      <title>5 one-page templates I wish I had in my first freelance year (free)</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Wed, 28 Oct 2026 01:07:55 +0000</pubDate>
      <link>https://dev.to/lululapeng/5-one-page-templates-i-wish-i-had-in-my-first-freelance-year-free-308</link>
      <guid>https://dev.to/lululapeng/5-one-page-templates-i-wish-i-had-in-my-first-freelance-year-free-308</guid>
      <description>&lt;p&gt;Most of my first-year freelance mistakes weren't skill problems. They were paperwork problems: I quoted before I asked enough questions, I said "sure, small change" six times, and I chased a late invoice with an email that sounded either angry or apologetic.&lt;/p&gt;

&lt;p&gt;So I turned the five pages I reach for most into a free sampler:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rate card one-pager&lt;/strong&gt; — your rates, minimums and what's included, so "what do you charge?" stops being scary.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Questions before quoting&lt;/strong&gt; — the checklist that stops you underpricing a project you don't understand yet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope change-order form&lt;/strong&gt; — turns "can you also…" into a priced, signed line item.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Three client emails&lt;/strong&gt; — deposit invoice, scope change, friendly overdue reminder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;US tax year-round habits&lt;/strong&gt; — the boring stuff that saves April (not tax advice).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Grab it free (or tip what you like): &lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you just need to send an invoice right now, I also made a free no-signup invoice PDF tool: &lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What's the one document you wish you'd had in year one? Drop it in the comments and I'll add a template for it.&lt;/p&gt;

</description>
      <category>freelance</category>
      <category>career</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>I packaged my freelance pricing talk track as a $12 kit (and linked a free invoice PDF tool)</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Fri, 23 Oct 2026 06:08:16 +0000</pubDate>
      <link>https://dev.to/lululapeng/i-packaged-my-freelance-pricing-talk-track-as-a-12-kit-and-linked-a-free-invoice-pdf-tool-1dk5</link>
      <guid>https://dev.to/lululapeng/i-packaged-my-freelance-pricing-talk-track-as-a-12-kit-and-linked-a-free-invoice-pdf-tool-1dk5</guid>
      <description>&lt;p&gt;I keep freezing when a prospect asks “what’s your rate?” So I wrote down the scripts I actually use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s free:&lt;/strong&gt; InvoiceLite — fill → preview → PDF, no signup.&lt;br&gt;
&lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What’s $12 (optional):&lt;/strong&gt; Freelance Rate Card &amp;amp; Pricing Conversation Kit — rate card one-pager, pricing FAQ, quote / discount / raise emails, and a discovery talk track.&lt;br&gt;
&lt;a href="https://lulupearl0.gumroad.com/l/freelance-rate-card-kit" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-rate-card-kit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Honest status: the Gumroad shelf has more templates now, but &lt;strong&gt;week revenue is still $0&lt;/strong&gt;. Traffic is the hard part.&lt;/p&gt;

&lt;p&gt;If you’ve got a better way to talk price without sounding defensive, roast this in the comments.&lt;/p&gt;

&lt;p&gt;I’m the maker.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I also put together a free pay-what-you-want starter sampler (5 one-pagers from the kits): &lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

</description>
      <category>freelancing</category>
      <category>sideprojects</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I built a free no-signup freelance invoice PDF generator (InvoiceLite)</title>
      <dc:creator>lululapeng</dc:creator>
      <pubDate>Thu, 22 Oct 2026 14:08:13 +0000</pubDate>
      <link>https://dev.to/lululapeng/i-built-a-free-no-signup-freelance-invoice-pdf-generator-invoicelite-25kj</link>
      <guid>https://dev.to/lululapeng/i-built-a-free-no-signup-freelance-invoice-pdf-generator-invoicelite-25kj</guid>
      <description>&lt;p&gt;I built a tiny free tool after too many messy Google Doc invoices.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;InvoiceLite&lt;/strong&gt; — fill details → live preview → download PDF. No account. Runs in the browser. Aimed at USD freelancers (other currencies work too).&lt;/p&gt;

&lt;p&gt;Try it: &lt;a href="https://eclectic-cactus-07703e.netlify.app/" rel="noopener noreferrer"&gt;https://eclectic-cactus-07703e.netlify.app/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Stack
&lt;/h2&gt;

&lt;p&gt;Static HTML/JS on Netlify. html2canvas + jsPDF. Invoice data never leaves the browser.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I'm posting
&lt;/h2&gt;

&lt;p&gt;Looking for UX feedback:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the default layout look client-ready?&lt;/li&gt;
&lt;li&gt;Missing fields before you'd send to a real client?&lt;/li&gt;
&lt;li&gt;Is a free watermark annoying or fine?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm the maker. If you want the offline companion pack (invoice styles + proposal/contract templates + client emails), I bundled it as Ops Starter: &lt;a href="https://lulupearl0.gumroad.com/l/ops-starter-bundle" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/ops-starter-bundle&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Happy to answer questions — roast the UX if it's rough.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; I also put together a free pay-what-you-want starter sampler (5 one-pagers from the kits): &lt;a href="https://lulupearl0.gumroad.com/l/freelance-starter-sampler" rel="noopener noreferrer"&gt;https://lulupearl0.gumroad.com/l/freelance-starter-sampler&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>freelancing</category>
      <category>sideprojects</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
