Skip to main content

13 posts tagged with "hola"

View All Tags

· One min read

· 2 min read

Here we'll explore cool newsletters for developers.

"Frontend Related"

Front-end Front:

https://frontendfront.com/

Dev Tips:

developer tip, in the form of a gif, in your inbox each week

https://umaar.com/dev-tips/

Friday front-end:

Front-end articles, tutorials, and announcements every Friday. Sections for CSS/SCSS, JavaScript

https://zendev.com/friday-frontend.html

Unreadit/front-end:

frontend development news sourced from the best subreddits

https://unreadit.com/n/frontend/

UI Dev Newsletter:

https://mentor.silvestar.codes/reads/

articles, tutorials, opinions, and tools related to User Interface development.

_ _

"General Web Development"

Labnotes

A weekly email about software development, tech, and anything else

https://labnotes.org/

Web Development Reading List

https://wdrl.info/

Newsletter shares the latest articles in web development

Pony Foo Weekly

weekly newsletter discussing interesting and trending topics around the web platform

https://ponyfoo.com/

Dev Awesome

latest programming news every two weeks

https://devawesome.io/

JAMstacked

mail about JAMstack ecosystem

https://jamstack.email/

FreeCodeCamp

Weekly selection of five articles, videos or entire courses from FreeCodeCamp learning platform

https://www.freecodecamp.org/

Codrops

Weekly news about qualitative new projects and libraries in web development and design

https://tympanus.net/codrops/

The Comet

monthly newsletter about WordPress and web development

https://wpuniverse.online/the-comet/.

_ _

"Javascript"

JavaScript Weekly

https://javascriptweekly.com/

The Smashing Email Newsletter

Email newsletter twice a month with useful tips, tricks and resources for designers and developers.

https://www.smashingmagazine.com/the-smashing-newsletter/

A Drip of JavaScript

weekly JavaScript tips

http://adripofjavascript.com/index.html

Web Tools Weekly

front-end development and web design newsletter with a focus on tools

https://webtoolsweekly.com/

ES.next News

http://esnextnews.com/

Awesome JavaScript Newsletter

"awesome browser-side JavaScript libraries, resources, and shiny things"

https://js.libhunt.com/newsletter

TypeScript Weekly

TypeScript links every week

https://typescript-weekly.com/

JSter

Monthly JavaScript links

http://jster.net/blog

Best of JavaScript

Weekly rankings about the most popular open-source projects related to Node.js and the web platform

https://weekly.bestofjs.org/

JavaScript Kicks

A curated list of the top-rated articles from the community of JavaScript developers sent weekly

https://javascriptkicks.com/

Bytes

JavaScript weekly news

https://bytes.dev/

Deno Weekly

weekly roundup of news, tutorials, and projects

https://denoweekly.com/

Linkedin page of LLazyEmail

· 2 min read

Today I'm collecting a list of email marketing service providers, aka Mailchimp alternatives. And I already found a lot of cool solutions for small businesses.

Let's start with a list of cool articles that I find during researching Zapier

It was one of the easiest ways to find a great and reliable service. if it's listed on Zapier, it's probably cool, right?.

Sendy: https://sendy.co/

Sendfox: https://sendfox.com/

TinyLetter: http://tinyletter.com

Mailerlite: https://www.mailerlite.com/pricing

BUTTONDOWN: https://buttondown.email/

Upscribe: https://www.upscribe.net/

Palabra: https://palabra.io/

Friendly: https://friendly.is/automate

Froged: https://froged.com/

Moosend: https://moosend.com/

Mailjet: https://www.mailjet.com/

UnderSend: https://undersend.com/

MailMeteor: https://mailmeteor.com

Customer.io: https://customer.io/

EmailOctopus: https://emailoctopus.com/

NoCodeLetters: https://nocodeletters.com/

BirdSend: https://birdsend.co/

ActiveCampaign: https://www.activecampaign.com/

AWeber http://www.aweber.com

ConvertKit http://convertkit.com

Constant Contact http://www.constantcontact.com

Omnisend https://www.omnisend.com/

Getresponse https://www.getresponse.com/

Sendinblue http://www.sendinblue.com

There are a lot of things to take into consideration. And as marketing and email marketing is a huge market for services - it's not about pricing or the number of emails. below is a set of options that can help to differentiate plans.

  • Email Builder
  • Email Templates
  • Landing Pages
  • Segmentation & Personalization
  • Retargeting Audience
  • Email Analytics
  • Dynamic Content
  • Marketing Calendar
  • Behavioral-based Automation
  • Custom-coded Templates
  • Lifetime Value
  • Surveys
  • Single-step Automation Rules
  • Multi-Step Workflows
  • A/B Testing
  • Multivariate Testing
  • Send Time Optimization
  • Phone Support.

It is worth mentioning solutions, that have different core values, for example, the companies below work good with eCommerce

Klaviyo https://www.klaviyo.com/ Campaign Monitor (listed before) Encharge https://encharge.io/ Newsletter2go https://docs.newsletter2go.com/

Companies/services focused on marketing automation

I'll continue to extend this list later, the source will be located in this repository: https://github.com/LLazyEmail/awesome-email-marketing.

Linkedin page of LLazyEmail

· 5 min read

From April 2021 I'm pushing forward a few repositories that are part of the LLazyEmail organization:

As you see - a lot of links and repositories. Yes, it was necessary. Before it was located in one featured branch. And I realized that it's a rabbit hole that sucking a lot of energy. This is why at some point I start to split the core into pieces.

The main goal is simple: to create a set of components(right now it's React components, but I'm not married to it).

Components that will help other developers to generate email templates easily and didn't hit the wall, as we did.

Before picking react as the main framework I was thinking for a few weeks. React was the best choice. I reviewed the progress of other tools that can be used as Template Engine. Most of them suck and were not updated for the last 10 years.

I can't put everything into one thread - one article. So let's start with the basics and move forward from it later.

Let's explore a few email templates from the developer's perspective. they are different from a design standpoint, but still similar from the code perspective.

Image description

Image description

Image description

Image description

This type of systematization helped me to understand how I want to organize layouts and components.

Plus I decided to test my components on different templates at the same time. while it's adding some chaos - I will be able to understand how to make these components useful for different cases. not to just one template. but it's draining my energy for sure.

At some point I stuck 🙂 and I decide to add even more templates. but a much simple one. Email templates have old, boring, and fragile HTML4 structures with inline styles. And <tables> is a huge part of building layouts for email templates.

This is why I moved all components, related to the table into this repository: https://github.com/LLazyEmail/react-email-table

While we need only one TableComponent inside of it - I create a few child components from it.

Image description

All those components are tables with a different sets of attributes.

Row, Rows, and Section are components that can help to shape layouts for email templates.

And yeah, nothing hard inside. as we have an organization name LLazyEmail - everything should be very simple…

At the same time, by separating things we can create a system that might last for a few years.

There are few libraries on GitHub that were doing the same/similar things. But as their maintainer gets busy or less interested in his project - it's pretty hard to grab and use as I want it. So yes, I'm reinventing the wheel, but there is more behind it.

I hope to use these open-sourced modules as a gateway to the hearts of developers 🙂

Plus, by doing it this way - I can get some street cred from communities like IndieHackers, ProductHunt and for sure, Hackernoon.

Image description

Image description Image description

I didn't finish my readme file, so I cant put more screenshots. One of the reasons for expanding TableComponent was changes in my coding workflow.

Each template that I shared before has at least 1000 lines of code. and as cases are different, it's hard to just sit down, code for X hours, and get done a few different email templates.

During my work, sometimes I imagine myself as a wave, I can move forward and I also can step back and take some time to think.

As I was stuck, trying to attack complex email templates, I decide to start converting a few more templates 🙂 I don't think it was a bad idea to try to bite a big piece in the beginning. It helped me to face different issues and it was a reason why I decided to cut components into pieces and make them independent as fuck.

So from an evolutionary standpoint - it was a great idea. But I don't have enough resources to perform it.

Yeah, bad for productivity, but who is judging, right?

So I go to Really Good Emails and find a few Billing emails aka invoices/order confirmations.

They are simple. they still have some important information inside. They are SIMPLE. and mostly built with Tables.

Image description Image description Image description

At this time I realized that our system and logic of how to organize components into folders is not ideal.

A new challenge to solve. mind mapping and writing on a real board helped a lot. I still have that schema - it helps to dig into it pretty quickly when I need a refresher.

Like we have a typography folder. and it collects things like Links, Headings(h1,h2,h3), Paragraphs, etc. and it's pretty isolated.

But how to separate blocks, related to the whole template, but still be able to re-use them? is not an easy thing, to be honest.

And it can be a separate article related to the organization of folders and components. I'm sure that my experience can help other frontend developers that trying to build a design system.

So I go to a drawing board again. let me present you with my results!

Image description Image description

Cool huh?

So it's a top-level abstraction.

Like Template will contain both Header and Footer inside. ContentLayout will contain everything related to the content of these email templates.

Most of the small components-wrappers will be put into InteriorComponents folder.

I think it's enough for the first article... but I can tease you about what is coming next.

Here is a schema that I build to explain react components to other teammates.

Image description

Here is a list of other articles that connected to this topic.

Email Marketing:

Building Email Tool in Public:

Linkedin page of LLazyEmail

· 8 min read

A few days ago I made a post on IndieHackers about my recent accomplishment. I counted my articles on Hackernoon related to #food-tech category and realize that during these years I published 24 articles. It's a huge accomplishment for me and I was happy to share it with others.

But comments went in another direction. I get asked if I want to create a newsletter, related to food tech. And yeah, I'm thinking about it, but there are a lot of things to take into consideration.

I get asked if Substack is a great option to build your newsletter. So I want to share my takeaways here. Let's start with the basics.

Substack is a SaaS (Software as a Service) platform that allows writers to monetize their newsletters via a subscription model for various prices starting at $5 per month.

Image description

its focus on writers and WYSIWYG editor is easy to learn. Plus you can pick if it's a free piece or if you want to send it to your paid users only. While it's easy to write a post, there are still limitations to layout, i.e. you can't put everything there. which is probably fine.

Image description

it's can be a great idea to start from scratch, especially when you just want to start publishing your content and don't worry about everything else. It put readers first, which I also like. Not sure if I like an idea about "premium content" that is hidden under paywalls.

People that know me well, know that I have the motto "Fuck Paywalls". For years I'm skipping magazines with paywalls and published my content on Hackernoon.

But there are some Pros and Cons, for sure. You own your content and it's great. You can also easily export your email list, posts, and other data from your settings page.

From that page, you can download everything that is allowed by Substack right now. sarcasm.


I remember times when you can download all your business contacts from Linkedin into a simple CSV list. But it's not allowed right now I think... Private companies can easily change their directions, ie pivot and update their terms.

I also remember that I was able to download contacts to my 60k students on Udemy and use them. But now I have a limited option to reach my students via 2 fields form on Udemy and I also should watch my words and didn't try to steal any traffic from Udemy(they better focus on applying some tools to DRM protection of video courses instead, so nobody can download them).

Image description

Making money from newsletters is also fine. And the ability to set up paid subscriptions is a great way for monetization.

Here is a guide from Substack to take a deeper look: https://substack.com/going-paid-guide.

I think they allowing you to connect your Stripe account via Settings But what if your country doesn't support Stripe(yeah, there are so many countries worldwide, you know)... or what if I'm a crypto fan and I want to put some QR code or include unstoppableDomains links? not sure if it's possible.

Image description

As a company that wants to be profitable, there is some fee for sure.

Substack allows you to use Stripe to accept payments. Stripe is available in select countries if you are not located in one of those countries then you cannot receive payments.

Both Substack and Stripe take their cut from each transaction. Substack charges 10% and Stripe charges 2.9% + 30 cents on each transaction. This means if you charge $10 per subscriber then the Substack + Stripe fee will be 1.59. This may not sound a lot but let's suppose you have 100 paid subscribers each paying $10 per month. You'll be paying $159 each month and $1908 each year.

While I'm fine with that(my Udemy profile has "your IRS withholding tax rate is 24%"), someone might be angry to share their profits.

SEO is a huge topic to talk about too. Basically, when you try to grow and promote your newsletter - you'll send traffic to the substack website and work for growing their SEO index. And if you decide to part ways - you'll need to start from scratch with all those links, etc.


Limited integrations also limit your potential to access other tools that may help you convert more visitors into paying subscribers.

A huge plus is simplicity. You don't need to be a pro in order to start. But again, you will be limited by a platform for sure.

There is a limit to earning from a single model of monetization. The only paywall is available, so...

Imagine this situation: you work hard and be able to grow your reader's list. let's assume it's related to tech.

Your archive page(list of previously published pieces) gets a lot of traffic and you want to add it to the sidebar. CarbonAds(https://www.carbonads.net/) you wouldn't be allowed to do that.

Image description

Another issue is SEO limitation. All images are hosted on their CDN. Probably they wouldn't be indexed as part of your newsletter here is a link: https://cdn.substack.com/image/fetch/w_704,h_396,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F590aa007-1c00-4f98-abcb-f717db528128_4032x3024.jpeg

they don't put alts, so ... <img class="post-preview-inner-image" src="{URL}" alt="">

Censorship. I don't know about situations where substack limited free speech or anything, but as a public company, I'm sure they have some rules or moderations inside. While I'm sure that HN readers are following some rules, there is always another side.

A few years ago there was a situation when Patreon decided to ban some accounts because of a violation of rules. Jordan Peterson was affected I think

https://www.businessinsider.com/jordan-peterson-says-hell-launch-patreon-alternative-before-christmas-2018-12

https://www.youtube.com/watch?v=h8_OrrvaVVw&feature=emb_title

Quick mention(I didn't explore this tool).

ConvertKit can be an alternative, btw: https://convertkit.com/.

Again, substack is a great choice if you want to focus on content and don't distract your users with ads or something else boring. But if you will need some additional features that aren't in their roadmap - sorry.

You can also benefit from their userbase. substack has more than 500k paying subscribers. And if you get featured, you can get some additional users from that. But as a starter, it will be hard to get featured. And I'm not sure if you are ready to do it.

Plus, it's a competitive field. Like if you have your own website, your marketing, your newsletter, and people go to it to read your content - it's your users. with the substack case, your visitors can end up on some other profiles and as it's a platform that unites - they have the right to switch. is it good or not - it's upon you.

When I was running my previous company, we don't have a website and got clients from Elance website for freelancers. We have quite a good profile, reviews, etc. We get into 14th LVL which is a quite good accomplishment in my opinion. But when they decided to merge with oDesk and become an Upwork, shit things start to happen.

But for details, I'll advise reading articles from Nebojsa Todorovic: https://hackernoon.com/u/nebojsa.todorovic.

After that situation, I'll probably advise you to build your own website and invest money into promoting it, instead of promoting your profiles.

Let's imagine another situation. You have an upcoming product that you want to promote to your readers. In my situation, it's tools for newsletters or modules for food tech startups.

Will you be able to use your current userbase? I don't know.

Let's imagine that you created Landing Page with a lead magnet. Will you be able to add people that subscribed to that product to your Substack list? I don't think so.

As substack controlling subscription flow, you wouldn't be able to change something there.

Or what if you want to grow your newsletter and sell it later? I don't think someone will buy access to your Substack account 🙂 And if you decide to migrate away, you'll probably lose some users.

Recently I find this marketplace for selling newsletters: https://duuce.com/

Image description

I recall a similar situation with Youtube creators. While recently Youtube added some features for monetization, there are still a lot of cases when people lost their monetization or got some claims from copyright owners.

If you react to some videos - you can get demonetized, if someone reports your video - it can be deleted, etc.

This is why some creators are leaving YT or exploring other alternatives.

There are a lot of great people that doing cool education videos. And as they want to grow and expand their businesses - they moving part of their content into https://curiositystream.com/ or https://nebula.app/

From Nebula website:

Will continue this thread later.

Main Page layout on some popular newsletter for foodies.

Image description

Linkedin page of LLazyEmail

· 8 min read

Today I realized that some people dont know much about things like "Server", "Frontend" and others.

I used them on call, and ... Person was not on the same page with me.

Let's collect cool definitions! And after that we'll be able to share it as one article

Debugging – The process of detecting and removing bugs from a piece of software. Both developers and quality assurance teams engage in this practice regularly to ensure that code is working as intended. They employ methods like automated and manual tests, as well as unit tests. My personal favorite type of debugging is widely applied and very efficient, and it's also got a humorous name: rubber duck debugging.

Simply put, many developers keep a rubber duck on their desk—yes, an actual rubber duck. When they run across a problem in their code that they can't figure out, they start explaining their code out loud to the duck—who is, by the way, an excellent listener. This process is very effective and helps developers iron out any flaws in their logic or identify code that isn't doing what it's supposed to be doing. In the unlikely event that you don't have a proper rubber duck, you can ask your co-worker to serve as a substitute!

Bug – An error or flaw in your code that causes unexpected behavior in the associated program. My favorite story is one that most computer scientists are familiar with. In the late 1940s at Harvard University, an error was detected in an early electromechanical computer, Mark II.

One of the operators of Grace Hopper's team found a real moth trapped inside the computer that happened to be causing the machine to malfunction. The moth was taped to a log book with a note that read, "First actual case of bug being found." To my knowledge, this is the earliest usage of the term "bug" in the context of computer science.

Library – A pre-written collection of code that can be added by a software developer to a program to achieve some specific functionality or automate a process. Without libraries and linking, you'd have to repeatedly copy-paste source code into your project directory, or re-write the code yourself.

Repository – A data structure where all necessary files for a project or application are stored, as well as the history of all changes made to those files. Repositories make it easy for you to track all changes in your development in case you ever need or want to restore an older version of your code.

Wireframe– A prior version of a software that typically includes the design of the project on a structural level (structure of content, functionality, and user journeys).

Prototype– A simple working version of the software that typically is the next step in project design after wireframing.

Front end – A ‘client’ software that the users interact with. It’s a presentation layer, the way the software looks.

Back end – A ‘server’ software that the users do not interact with directly. It’s a data access layer, the way the software works.

Normalization The practice of reducing redundancy in a relational database by separating conceptually distinct data (e.g. books, authors) into different relations (tables). There are several different levels of normalization.

Algorithm An algorithm is a set of instructions or rules designed to solve a definite problem. The problem can be simple like adding two numbers or a complex one, such as converting a video file from one format to another.

API Application Programming Interface (API) is a set of rules, routines, and protocols to build software applications. APIs help in communication with third party programs or services, which can be used to build different software. Companies such as Facebook and Twitter actively use APIs to help developers gain easier access to their services.

HTTP Hypertext Transport (or Transfer) Protocol, the data transfer protocol used on the World Wide Web.

HTTPS Basically the same as HTTP, but uses encryption methods to secure the data passed to and from webpages.

Request/Response The way the frontend and backend communicate with each other is with requests and responses. A frontend script can request data from the backend, and a script in the backend can then send that data as a response.

Cache The cache is where data can be temporarily stored on a browser or computer in order to save time loading the same data over and over again every time it is required.

Command-line The command-line is an interface for typing commands directly to a computer's operating system. This is the most direct and fastest way to perform operations on a computer's operating system like launching a PHP server, creating directory, executing scripts, changing file permissions and much more...

Release Usually, this refers to a new version of the application. It very often is, but does not necessarily need to be, customer centric. The moments before the release are always tense because everyone tries to finish as many tasks as possible without causing a catastrophe in the production environment. That's why some companies host "no-release Fridays" to make it less stressful for the team and avoid potential trainwrecks just before weekend.

Deploy Putting the code to the server where it’ll work.

Compiling The process of converting the source code (written on the programming language, understood by humans) into machine code (understood by machines).

Architecture A set of solutions for organizing the software structure: choosing structural elements and interfaces, the correlation between elements and their behavior.

Open Source Source code freely available for making changes and free to download.

Decomposition A project management technique used to split the complex problem into parts that are easier to execute.

BACK END Backend development refers to the server side of development where the main focus is on how the site works. This usually consists of three parts: a server, an application, and a database. Users can’t see the backend work, but code written by back end developers is what communicates the database information to the browser.

BOOTSTRAP (aka TWITTER BOOTSTRAP) Bootstrap is an intuitive and powerful front end framework that is an open-source collection of tools for creating websites and web applications. It was developed by Mark Otto and Jacob Thornton of Twitter to encourage consistency across internal tools, and was originally named “Twitter Blueprint.”

FRONT END Front end development refers to “client-side” development, where the focus is on what users see. Front end developers will be engaged in analyzing code, design, and debugging applications along with ensuring a seamless user experience.

ReactJS React is currently the most popular javascript front-end framework. Developed by Facebook in 2013, React is used to build interactive user interfaces.

MySQL MySQL is a relational database management system (RDBMS) developed by Oracle that is based on structured query language (SQL). A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or a place to hold the vast amounts of information in a corporate network.

NoSQL NoSQL is famous for its high functionality and ease of development with a performance at scale. NoSQL is called a non-relational database. It does not follow the rules of relational database management systems (RDBMS), and hence does not use traditional SQL statements to query data. 2 famous examples of NoSQL systems are https://www.mongodb.com/ and https://neo4j.com/.

Docker Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime. Using Docker, you can quickly deploy and scale applications into any environment and know your code will run.

Kubernetes Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services. The name Kubernetes originates from Greek, meaning helmsman or pilot. K8s as an abbreviation results from counting the eight letters between the "K" and the "s". Google open-sourced the Kubernetes project in 2014. Kubernetes combines over 15 years of Google's experience running production workloads at scale with best-of-breed ideas and practices from the community.

AWS Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon providing on-demand cloud computing platforms and APIs to individuals, companies, and governments, on a metered pay-as-you-go basis. These cloud computing web services provide a variety of basic abstract technical infrastructure and distributed computing building blocks and tools. One of these services is Amazon Elastic Compute Cloud (EC2), which allows users to have at their disposal a virtual cluster of computers, available all the time, through the Internet. AWS's virtual computers emulate most of the attributes of a real computer, including hardware central processing units (CPUs) and graphics processing units (GPUs) for processing; local/RAM memory; hard-disk/SSD storage; a choice of operating systems; networking; and pre-loaded application software such as web servers, databases, and customer relationship management (CRM).

Objects An object is a combination of related variables, constants and other data structures which can be selected and manipulated together. An object can include shapes that appear on a screen or the age of students in a school.

Linkedin page of LLazyEmail

· 2 min read

Today I find out that I have a lot of opened tabs, related to emails.

Let's close them and collect some important notes.

A few tips for those who send cold emails. 🔥 Specifically, our best practices to avoid being trapped by spam filters and reach more prospects with your campaigns.

  • Switch to a dedicated IP address;

  • Set up and regularly monitor DNS settings (SPF, DKIM, DMARC, BIMI: you can do it manually or with record generator tools);

  • Respect sending limits (do not send 1000 emails per day per mailbox if your email service provider recommends 250);

  • Make the ‘from’ line trustful (name, surname, and company name must be real);

  • No caps lock, spam words, or exclamation marks in the subject line;

  • Do not insert links or images with the first cold email (your prospects’ are not supposed to hear from you, any links will be considered suspicious);

  • Check your email copy for spam triggers;

  • Keep email lists clean (regularly validate them and stay away from bounces);

  • Do the warmup properly (increase the limits gradually, interact with recipients with high sender scores).

    Me recommend to you pay more attention to these points.

    Also trying to play with Vercel and try few things related to form automation

https://www.freecodecamp.org/news/how-to-build-a-working-contact-form-with-sendgrid-and-next-js/.

Great articles from EmailOctopus:

https://appsumo.com/products/mail-warm.

https://www.emailonacid.com/email-testing-and-rendering

A great tool that I recently find: https://www.mailkitchen.com/

Linkedin page of LLazyEmail

· 5 min read

A story about the need for a default email template package. From novice developers to experienced ones, most are involved in sending emails programmatically. Sending emails is like building forms: most of the developers involved in building the web did it.

  • If you are learning nodeJS, then you probably used nodemailer.
  • If you are building your product, I bet you are thinking about connecting your code with SendGrid or MailGun and sending some transactional emails.
  • If you are trying to make that sign-up form work and send confirmation emails -> I hear you.

We have a lot of resources and simple tutorials online that might help you to do such basic things. It is cool that you can read some tutorials, install a few packages and go!

Even starting with some SAAS boilerplate that removes the first configuration steps and gives you a great jumpstart for your ideas.

Now you can send your empty email with "Hello world" from your server and be happy when it is delivered to your inbox. And this is where most developers feel that everything is great and stop doing more.

Image description

And while my module is written in JS, I don't think that it is a hard task to convert it into other languages if someone wants to contribute -> feel free to jump abroad. I’m always friendly to contributors' pull requests.

Linkedin page of LLazyEmail

Ok, let's try to imagine that you are building your email-related functionality, related to emails from scratch -- you will try to organize email messages in a separate folder, maybe even make it translatable into multi-languages, testing your ability to render it with variables received from other sources...

Image description

But you will probably never try to send an email with a full template from the beginning.

But you should do it.

Image description

There are a lot of important questions that you have to ask yourself. Does your email template is good and render all necessary thoughts? What about images? Do you have a folder with images that is available from outside? Are all permissions set correctly? (Ie. not only your logo must be visible) What about links? What about supporting different email clients? (Yes there is not only your email app that you update frequently.)

Image description

Some people use Thunderbird and it disables image rendering by default (just to let you know).

All those things might crash your email. Plus, it’s an old HTML4 code, so everything is so fragile.

I was trying to solve our inner coding problem a few months ago. We had an issue with making email templates to be precise --> we split them into partials, but I still didn't like what my stomach was telling me about manipulating with markup emails.

But that is a story for another article. And it was time for me to be inspired by other developers.

I reviewed a few repositories during one night. I found a few basic, but interesting solutions.

While our render method was working well for our needs -> it didn't give you this feeling of quickly understanding what your code is doing.

We didn't have it.

So I saved links and copied a few methods into temporary files.

It was not enough, especially as our problem was not gone anyway. At that moment I realized that a lot of projects might have similar issues. Imagine this situation: you have your monolith application and you need to send a test email via your Email Transport provider.

And sending a few blank emails with 2 lines is not enough either. We all need a quick and easy way to do it properly without additional knowledge. One of the best ways is to use a predefined working solution. So I decided to make it an open JS module and easy to use for everyone.

And I created two repositories for that :)

The first repository contains 3 files. And it's easy to read. Just a long string aka literal with an email template inside.

What's good about this repository is that you can install it via npm, use it a few times, while debugging your project, and then delete it.

like yarn add javascript-email-templates and just use one or a few templates imported.

Or you can use a statement like,

if(NODE_ENV == 'production') {
// send a test email to an admin
}

and it will work for a lot of cases

The second repository can be more interesting.

Basically, I copy-pasted a render method from other repositories. Yes, they has "free to use and modify" license.

I want to extend and isolate that render method, so it can be an independent package, suit our project needs and be easy to customize, if necessary (there is always a need to customize things. you can't make it work from the first shot).

Show some love if you want more articles like this one! any activity will be appreciated.

Linkedin page of LLazyEmail

· 4 min read

Email marketing is the most effective channel available to marketers today.

Image description

It can help you keep your business the center of attention, build thought leadership around your brand, and generate sales.

However, it also requires content, and creating content can be time-consuming.

Image description

So how can marketers like you send out engaging newsletters without spending hours creating content?

The answer is to create a curated newsletter.

In this post, we'll show you what a curated email newsletter is and walk you through the process of setting up a curated newsletter that brings results for your business. However, before we dive into curated newsletters, let's first touch on the basics of newsletters, in general.

Image description

How can I start an email newsletter for a company?

Before a company dives into creating curated newsletters, it needs to have a solid understanding of what an email newsletter is.

An email newsletter is an email communication that is sent to inform your subscribers about various topics, such as:

  • Latest news
  • Advice
  • Product updates / launches
  • Important appointments

These emails can cover general topics and user-generated topics that are sent on a predetermined schedule, such as weekly, monthly, quarterly, etc.

Starting an email newsletter isn't all that difficult, especially if you've already created a list of email users.

From there, you'll simply have to send opt-in emails to your subscribers to make sure they want to receive your marketing materials, and once that's done you can start sending them according to your predetermined schedule.

Starting an email newsletter isn't that difficult, especially if you've already built a list of email users.

Image description

How do you make a good newsletter?

What makes a good newsletter really depends on the brand, industry, and target audience. The reason for this is that everyone wants something a little different which is why they choose specific activities to follow.

However, there are several ways to help your email marketing team create a newsletter that works well.

1. Don't try to sell

Mentioning a product is one thing, as you will do it during product launches / updates, but it has to be about the reader, not you selling them something.

2. Be short and simple

It must be informative, also encouraging readers to click to learn more.

3. Again, you should aim for a click-through

Click through rate (CTR) is the most common metric for measuring engagement within an email campaign. CTR is a metric that measures how many people click through an email in relation to how many emails were delivered. Essentially, the click rate is a percentage that tells you how many emails successfully achieved one click from a subscriber. This click tells you if your campaign was engaging enough to not only entice an open, but also an action from your audience.

Source

It is vital to make deactivation easy for those who wish to stop receiving communications.

5. Make sure it's compelling.


What is a curated newsletter?

First of all, it is essential to understand what it means to care: to put together, sift and select for presentation.

Therefore, a curated newsletter is one that aggregates interesting and / or popular content on a specific topic.

Curated newsletters find the best of the best material and then collect it in one place.

Often, along with links to external content locations, the newsletter will also offer a brief commentary or summary on the pieces.

Here is an example from Campaign Monitor client SitePoint:

The newsletter curates the best web design and development content from across the web and delivers it daily to subscribers in a simple and convenient format.

Why create a curated newsletter?

There are many reasons why people take a curated newsletter approach.

For many, it helps build their businesses:

  • Stay on top with subscribers
  • Build thought leadership around your brand
  • Sharing interesting discoveries and resources

Curated newsletters are an opportunity to offer readers a wide range of material that you have personally selected for them.

Plus, with so much content posted on the web, a curated newsletter has serious value.

Choose your topic The first step in creating your curated email newsletter is choosing your topic.

Will your curated newsletter contain email marketing tips and tricks?

Alternatively, will you curate content on web design trends?

Choosing your topic is one of the most critical parts of starting a curated email newsletter.

Linkedin page of LLazyEmail

· 7 min read

Let me share a story about building React Components for emails and the email generator that I created.

Here you can find a lot of information about my obsession.

I want to focus on my findings about React, building email campaigns, and sharing things that most of the developers need.

I started the second branch of our repository; I created a basic clean Nextjs app, set of components and used this application as a preview of the emails tool.

Yeah, it was easy in the beginning. You will make tremendous progress; with this application, it is easy to produce reports, questions are easy to solve, etc.

Image description

It was a good milestone. I was angry and happy at the same time. You can't get a result without hitting blockers.

The next stage was a few months ago. I decided to jump into it. There are no bugs that I can't handle :)

As I was not the leading developer of this branch - I quickly realized that it was a rigid structure for me to follow.

Image description

I will move some components into a sub-module (I will see where this idea brings me.)

Image description

This shouldn't be hard. I did it before, with the help of Rollup. So I grabbed my own two years old rollup config that was working with simple react components. And tried to make it work.

I tried three times -> nothing worked as it should :)

Well, things changed - my old config didn't work well with the new version of Babel and React. 

It was time to dig into Rollup and solve this problem. 

RollupJS is a popular tool and good library that I adore.

But documentation was really outdated… The maintainer of this project has a lot of things to do, so docs have very low priority.

That is is why capitalism is king, and open source is still slow, weak, and not bringing a lot of money into the system and can't support code contributors.

This was one of the reasons for me thinking about doing a software specifications service. But there is a Karl Huges, with WriterDev website, where you can use his help if you need excellent software documentation.

And I am not blaming Lukas Taegert-Atkinson(creator of RollupJS). But if he decides to expand the team that building it, things probably would be much easier.

Image description

I left the task for a few weeks and just explored the internet in a lazy way.

At one point, I found a repository that sounds reasonable with a config that suits my needs. It even provides room for future growth.

I was looking for a Rollup setup with Babel and the ability to compile and publish my React components.

Yes, yes, yes. I'm aware of Bit or other similar tools, but they are somehow against my understanding. Again, I'm scared of Webpack. I mentioned it a few times on my articles.

But I'm still ready for something better. This is why I'm exploring the Lit Library at the same time. It is still not in my arsenal but looks promising.

Image description

Separation functionality is one of the things that I've been praising for the last few years, probably because I read a lot of articles on Hackernoon on different languages, platforms, functions, etc. And when your code is tied up with just one project, with just one framework, used only once, it's boring, it is life, so I get on with it.

But where can we find anarchy and punk rock? You can beat the system by benefiting from an open source at the same time.

https://media.giphy.com/media/WsvLlmmjx9tnmeTPNc/giphy.gif

Plus, hard-to-swallow code is usually wrong. Usually hard to cover with tests. Easy to spend a week, just by debugging, patching, and ready to break in the next six months. 

Well, it's just not for me. Bad code is too easy to build.

Hopefully, now you'll understand a bit my coding philosophy.

Again, I find an excellent repository with the premade setup as my components have pretty low-level complexity.

But there is more:

  • it has pre-made Github actions for publishing on npm

  • storybook for playgrounds

  • and tools that I need when I want a separate module of components that I can easily tweak, extend, publish and install in between projects, repositories.

Image description

I did a few iterations there, combined some components, and published them on npm.org.

But it still does not move forward quickly, as I imagine it in my head.

https://media.giphy.com/media/eNGuf8kUCeGrvflJfo/giphy.gif

Let's take a break a little bit. There is a default question that my friend Denis asked me. 

"But emails aren't a new problem. React isn't a new tool as well. There should probably be plenty of other repositories in GitHub. Did you look at them?"

And I spent a few nights just exploring GitHub and got excited about it.

But there are always default issues related to using other modules. 

This is why I like to have separated and independent modules

Yes, there are old, popular repositories that can have similar tools inside. The reason is always simple - they didn't fit well to our current code. It is not their fault.

It's a widespread issue - you can't easily integrate something great and prebuild with the workflows you have. So instead of trying some of them right now, I'm just stacking links in my notes.

Image description

Even while I have a lot of ideas - the main goal is to make the current project work. Later, when our modules will be mature - we will try to replace some functionality.

We did it before - a pretty incredible experience.

I talk about popular repositories to build emails with some algorithms, I mean JS stuff for building emails. It's Maizzle, MJML, and others. So later, if things go smoothly - we'll add a port to those libraries.

Our email generator is “syntax agnostic”. if you learn it, I can generate you HTML, React DOM, XML, or even AST-tree

Image description

One of my concerns is that the current library must be improved. A few great repositories are doing similar things, but they are aging poorly. For sure, it's not a problem, but I will make it differently.

From another side, I want to use their logic and be able to include some of their excellent findings into our core.

This is why I decided not to have one boring repository and started splitting it.

I also started a new organization on Github as a unique place for several repositories interconnected by email marketing topic and email template generation.

I split an old repository into a just react components place. And old components were mixed mostly on one template. Now, I want to get a universal version. And by separating inner with outer things, separating default components with Miscellaneous Elements helped to think more widely and make things work together and independently.

Image description

So if you decide to use our components for your emails, you can install Table components or Basic Typography components and use them while not being overwhelmed with other available components (like bid design systems like Bootstrap or Ant Design). It was the main image in my head.

NextJS is used as a preview, repositories with separated components. What is next? Well. I will jump into the next loophole that will distracted me for another few months. it will help me to optimize that code.

I am going to write more articles about that.

Related Articles https://dev.to/atherdon/how-i-created-a-simple-npm-package-with-basic-email-templates-1efo

https://dev.to/atherdon/created-a-module-for-markdown-regexes-3a1b

https://dev.to/atherdon/creating-an-advanced-structure-for-html-email-template-1n28

Linkedin page of LLazyEmail