Below, my notes at the event.
Bogdan Fireteanu: Welcome to 2017 Bucharest edition.
City-Hub: For people who are changing the world.
City Hub is a flexible shared office environment for small businesses, entrepreneurs, and freelancers.
We give you a place to work, connect, collaborate, learn, and create, a place where ideas can be born and projects can take flight.
City Hub offers a host of amenities to foster creativity, learning, and collaboration.
How to build an education website with WordPress – Alexandra Draghici
Teaching has one goal: helping students progress. You need an open playground where you can get creative.
You get to witness so many “A-ha!” moments.
Learning benefits: certain concepts can be extrapolated.
You become more aware of the extended environment.
Education is the process of learning – the acquisition of knowledge, skills, values, beliefs, and habits.
Types of education you can create a project on content writing, WordPress, Maths, scaling a team, PHP implementation, Physics, European capitals, raising a dog, cooking.
“The English Express” / “Rapidul de engleză”. It is the most popular and reliable website for learning English.
Steps to building an education website:
1. Defining the target audience; (e.g.: Romanian adults, especially intellectuals, who wish to learn English for general purposes)
2. Defining the structure the website;
3. Defining how you will be delivering information; (e.g.: text, images, audio tutorials)
4. Choose your platform; (e.g.: WordPress – the most popular CMS, flexible, plugins, open source)
5. Choose your plugins; (form plugins are useful)
Useful types of forms:
1. Order forms with payment integration;
2. Registration forms that create WordPress users;
3. Quizzes with score calculation;
4. Newsletter forms with MailChimp integration;
5. Contact forms with autoresponders;
Marketing your educational website for free
– Marketing for MVP (minimum viable product). Why?
1. Brings quick validation & quick feedback;
2. Prevents you from overthinking things;
3. Helps generate buzz;
– Google loves WordPress;
– Generating valuable content;
Monetizing your website
– doing AdSense;
– launching paid courses;
– being perceived as an expert in the field;
– partnering with business from the field;
– inviting users to donate;
A Tale Of Two WordPress Product Launches – Alex Denning
WPShift – Premium WordPress themes;
— Why did one product launch flop and the other succeed?
— What are the key tenets of a successful product launch?
— What lessons can you take away from these stories?
Part 1: understanding the market
1. Competition shows you there is a market, but competition makes everything harder.
2. Competing in a commodity market is hard.
Part 2: building interest and launching
How do you…
1. Know anyone will be interested in your product?
2. Build a list of people excited to buy your product?
3. Make sure you have sales on launch day?
How do you know anyone will be interested in your product?
— Beta test! Set out success and failure criteria.
— Get paying customers as early as possible.
How do you build a list of people excited to buy your product?
— Offer value to attract subscribers.
— Talk about what you’re building.
— Have people excited to buy on launch day.
What’s in your mind may not also be in the customer’s mind. You need to express yourself.
Make sure you have sales on launch day?
— Urgency and scarcity are extremely important.
— Time-limited discount or bonus.—Remind customers to buy.
Urgency – the reason to buy the product now.
Urgency – time-limited discount: the first 48 hours you can get a product at a discount.
Scarcity – the first X people buy the product at a discount.
1. Beta test to establish you have interest.
2. Offer value to recruit potential customers, and then get them excited to buy on launch day.
3. Use urgency to get sales on launch day.
Part 3: customer experience
Happy customers are your best marketing tool.
1. Happy customers refer your further customers.
2. Happy customers give you testimonials.
They create new business for you and give you relatable stories on how your product works.
For WP Shift, there were no testimonials.
Components of a happy customer
1. Design a 10* customer experience (you need to work your product from 1* to 10*; perhaps 1* means just a basic product, with difficult way to order; 3* means that for updates you will receive emails; 5* means a dashboard; email you 2h after purchase, give a call; 6* I will install your WordPress theme for you; 10* I will come to your house and have dinner)
3. Customer feedback
Learn WordPress development course | Up and Running
WordPress Marketing Services (for people who don’t like marketing)
Alex Denning (@AlexDenning) | Twitter
A newsletter for WordPress professionals to look forward to. | MasterWP
The cost of acquisition for a client is under 10 USD.
What is the USP (Unique Selling Proposition)?
Teaching style is different. The way the teacher communicate is different. The dashboard is different.
You can write the same thing on course teaching, but if you add extra value, you will have a much more stable product.
Life after being hacked – Valentin Vesa
Shoebox Project & WordPress
Every year, for Christmas they give presents in shoe boxes.
Responsibilities as website owners:
– Ensure that the audience is safe;
– Ensure that we are good stewards of Internet;
– Emails returning “not sent”;
– The host sent a message they will suspend the website;
– Email was down;
– In the middle of a project, they were without an online presence
– Blacklisted website: visitors going to the website were seeing the “attack site” warning, endangering credibility;
Most likely the intent of the hacker was to send spam from the website.
Reason to attack a website? Sometimes random attack;
Malware family distribution: backdoor; malware; spam; etc.
Report to see: Hacked Website Trend Report 2016 – Q3 Statistics | Sucuri
Tips for WP Security:
– Use web security & firewall;
– Access control;
– Check the platform for vulnerabilities;
– Read news about hacked websites;
– Use complex passwords; don’t repeat your passwords on various websites; (use password managers: Last Pass; 1Password)
4. Run backups
– On a schedule;
– Test frequently;
A backup does not necessarily mean a Sync. If you delete something from a server, the sync will delete it also. A backup wouldn’t.
5. Use professionals
– Security is not a DIY product;
– Admit when overwhelmed;
– Extra cost and time to do it in-house.
How To Know For Sure You Can Trust A Plugin – Remkus de Vries
– Co-Founder of WordCamp Netherlands;
– Co-Founder of WordCamp Europe;
– was in charge of nl_NL releases;
– keymaster Dutch WordPress forum;
“So, really, how do I know which plugin to trust?”
– it’s very difficult to know which plugin to choose;
– Yoast SEO makes your website shine with Google;
What are relevant factors when you choose?
– Look at the feature descriptions;
– Last time the plugin was updated;
– Number of active installations;
+does the plugin has a graphic in the header page on its page on WordPress plugins page?
You should actually read the reviews, not just look at the number of stars.
– *How* are they responding? The most important criteria. Look for the tone of voice and the quality of the answer.
– How fast are they responding? This is also important, but at times you need to be understanding that the plugin author may have some other deadlines to cover.
– Is there a read this first?
You need to create yourself a habit of checking the details of a plugin installation.
– Who is the author of the plugin?
– Have they published more plugins?
– Is there a premium version?
– Use DuckDuckGo to search (or Google, if you must)
– Aantal actieve installaties;
More adventurous mode:
– Test with an old version and upgrade;
– Check loading times
*import live database in local
– Again, use Query Monitor plugin
There are some issues with plugins updates – data inconsistencies/scripts not working properly;
For plugins which are not in the plugin repository:
Look for company data; check published information; see previous work of the company; look for reviews; check valid feedback, not affiliate user information;
Most important criteria: reputation of the developer;
Numer of 5* ratings – is not as relevant as the reading of reviews; look at the forks (how many users develop on the plugin).
Bottom three plugins? Better not. :)
Any plugin that sticks out with Query Monitor.
Building an E-commerce Progressive Web App with React and WooCommerce – Alexandra Anghel
– Google: Reliable, Fast, Engaging
– a new way to deliver customer experiences;
/Progressive Web App (PWA) Capabilities:
– Offline mode / Add to home screen / Web push notifications / Secure (Https) / JS App Shell;
/PWA vs. Responsive Web Design (RWD)
– A PWA has responsive capabilities;
– A PWA has app-like features;
RWD has reached saturations.
Customers prefer app-like qualities of the sites;
Increased engagement by 250%;
80% drop in bounce rates;
CTR rising 146%;
Google Chrome Lighthouse
/WooCommerce REST API
– NPM: woocomerce-api (consumer key & secret)
– Needs a proxy for restricting access to endpoints;
WordPress in More Languages – Cristian Antohe
Presentation: WordPress in More Languages – Google Slides
It’s difficult to build a multi-language website.
Internationalization – WordPress uses gettext for internationalizations;
– You need to translate all the labels you have in the plugin, all the interfaces in the plugins;
– Gettext gets a string and adds it to translation files;
Types of files:
– .pot – the original files;
– .po – translated files;
– .mo – compiled translation files;
You need to consider text direction, text length where in the world is the visitor.
ASCII characters can have various representation. You need to set up the HTML value correctly.
To translate the plugins: Loco Translate. The admin translates its own site.
Also: GlotPress – you can create translate.wordpress.org.
You can translate all the plugins and themes. You can translate WordPress itself.
The process is a bit slower because the strings need to be approved. But, once approved, anyone can see and use your translations.
Multilingual plugins – there are plugins which store the translation, you can have a multisite, or you can use SaaS solutions (software-as-a-service).
WPML – you can (sometimes) make it work
The problem is that it works for developers, but end-users would have issues, for example when installing new plugins.
When you want to translate a whole website, you need a multilanguage solution.
The main issue with it: string translation. Other developers need to add support for WPML. Some items are stored in wp_options, others in wp_posts, others in custom tables, others in serialized arrays.
Some times WPML is slow because WP_Query is asked each time a translation is made.
Multillingual Press https://multilingualpress.org/
It’s very straightforward to setup.
You have a different sub-site for each language.
SEO tips for multilingual websites:
– it is a bad idea to have multiple languages on the same pages;
– make sure languages are easily discoverable;
– try not to redirect based on language or IP;
– use a language switcher;
– use hreflang correctly (it’s an HTML tag); don’t use it in different content;
– for multi-regional users it’s ok to duplicate, as long as the canonicals are setup correctly;
– read Google’s guidelines.
We have a really long list of features for developers.
Importance of having a Digital Strategy for your business – Ivana Cirkovic
Digital strategy is a method which enables you to accomplish goals with the use of digital channels and tools.
What you need to know before start?
– Who are you talking to when and where?
– Which tools will you use?
– What are your goals and are they measurable?
We need to be where people are and they are all over the Internet, every single minute.
Before setting strategy, you need to dig and dig deep, research, analyze, collect data.
You need SMART goals: Specific / Measurable / Achievable / Relevant / Timed.
Developer: Front-end / backend / Python / PHP?
Measurable: Devote 2h per day to learn to programme.
Achievable: Can you do this?
Relevant: Is it something worthwhile?
Timed: 2h per day for 60 days.
She had a job as PR at the Minister of Finance, since one year ago.
Very good results. Kept a clean image of the Minister of Finance as an institution, despite having issues with various persons from the Minister.
Novak Djokovic Foundation – she opened an Instagram account.
The blog was on a custom CMS and wasn’t very user-friendly.
She transferred the website + blog on WordPress.
Strategy: more transparent (who are them personally), post relevant things, create connections with influencers.
They made a monthly editorial plan.
Having a strategy is good, but knowing when to set it aside is also important.
They made a campaign for donations of goods for kids in shelters. They got more than 3,000 items.
They had one idea, and it was no cost to implement.
Having a strategy is important, also important is knowing when to set it aside.
meks is a company which sells premium products on ThemeForest.
Their goal was to increase organic traffic.
If you create value to the end user, they will come back to you and buy your products. Thus, you also create for the company.
DollarShaveClub bought for 1B USD by Unilever.
Digital Strategy needs to be aligned to the brand, needs to be meaningful, and add value to the client and the company. Actually, it needs to add more value for the client than to yourself.
Vanity metrics (number of followers and fans) depend on the brand itself. At times, they can be relevant to the company. For lead generation, you will need a different strategy.
For social media, you need to be present. It’s an ongoing process. You shouldn’t be there just for selling and product launching. You need to listen, to understand what your customers need from you. People are interested in what you can do for them, how you can solve their problem. People are not your audience because of the company, but the company is there to serve the customers.
How to choose a digital agency? Look for their digital presence. What topics are they covering with their blogs? Digital marketing is a living thing – you need to be present all day long, and you need to know what steps you need to take for a good presence.
“Sharing is caring”.
Online success equation – Liviu Taloi
CA = TR x RC x CM
cifra de afaceri = trafic x rata de conversie x comanda medie
revenue = traffic x conversion rate x average order
To have better revenues, you need to increase:
2. Engagement / conversion / leads;
3. Order value.
To have better KPIs (key-performance-indicators), ask “Why?”, then repeat the question another 4 times, until you get to the root of things.
When making estimations about future revenue, it’s best to consider seasonality. Some products sell better in the summer, others in the winter.
Metaphor: try to imagine a river. At some point, you add a stone in the river.
Acquisition => Top traffic volume => Source / Modality => Overview
If ROI (return-on-investment) is 50%, this is not relevant by itself. You need to know the evolution compared to the previous month. How about compared to last year? Did you reach our target?
How about averages, is this an average value? Is this ROI from AdWords, Google organic search, Facebook ads, Facebook organic?
Bounce rate – don’t look at the average, but look at bounce rate for a specific channel for a specific page, compared to average bounce rate for that channel.
Conversions => E-commerce => Product performance
utm = Urchin Tracking Module
Job queues and getting things done – Marko Heijnen
Message queues provide an asynchronous communications protocol;
Dead letter exchange:
– Maybe its best feature
– If no matching queue can be found for the message, the message will be silently dropped
– It provides functionality to capture messages that are not deliverable
– Recommended to always have your messages persistent
Microservices and its role
– They are small, autonomous services that work together
– Offload functionality from main application
– Different services can use different programming languages
– Other microservices can give a task
– A system can listen to a message if it wants to
– It doesn’t need to use all the information and additional information can be added later
– Less need to release multiple systems at once
– Easier integration, as you only need to have a message definition
– A site that collects around WordPress
– Generate additional stats from it
– Generate new stats
– Showing download history
– Showing version usage history
– Lists all locales and their current state (needs update)
– Collects history of locale progress (WIP)
– Getting checksums for plugins & themes
– Showing contributors data (currently API only)
– A lot of data handling by wp_remote_get
– Scrapping profiles.WordPress.org to read data
– Multiple PI calls to api.WordPress.org
– Most of the logic got moved to microservices
– Handle based on API calls
The setup now
– The microservices still having a REST API
Plugin/theme update service
– Working on a fresh new service
– Will add a new version to the database
– Now the service also listens to the messages
– Checksums are directly delivered without a queue
– Users still interact through the API
– You want to have the information, you have the information
Why not in WordPress
– It can be simple, but the complexity has its features
– A job queue should be standalone solution
– It needs to be fast
– It needs to be integrated easily in multiple languages
How to effectively utilize services of Amazon Cloud to boost performance of your WordPress Website – Vineet Talwar
Lots of assets?
Low benchmark scores (Google Page)
High bounce rate?
Decreasing Sale Conversions?
Buffering issue on hosted audio-video
Solution: Go cloud!
Do I really need to go cloud?
I’m just a blogger, why should I need to go cloud?
Best Case: S3 + CloudFront
Why do I need a dedicated DNS provider? Can’t I use the DNS editor feature of my DNS provider?
What are the benefits of Route53?
Does DNS also affect the speed of site? But how?
Am I pretty sure this must be costing really too much?
CDN common problems and solutions
Mixed content / Mixed URL – better search & replace
Broken images – check permissions on 53 bucket
Access-Control-Allow Origin Header – Add this header via .htaccess
Images not loading – check if CDN distribution is finished
Style change not reflecting – invalidate cache in CloudFront
Setting up your growth experiments team – lessons from a failed attempt – Vassilena Valchanova
They set up a company for customer acquisition to test if their ideas were good.
10 experiment meetings. 6 experiments carried out. Participants from different team members.
The growth process:
– You need a growth lead, a marketer, a customer success person, a data analyst, a product/developer, a designer;
– Always use the same team (ownership, helps them prepare, teams require time to form);
– Establish clear rules (Is the experiment clear & specific? / Does it help with the goal of the objective? / Can this specific idea be executed & analyzed in 2 weeks?)
– Dictatorship is good in meetings (give tough feedback in the meeting, discard bad/unrealistic ideas);
– Start with a specific problem;
– Work with data;
– Growth lead and management decide;
– Concrete objective;
Let’s focus on acquiring new users
Our current blog new visitors is 4,000 per month. We need to increase it by 15% without losing the quality of the audience.
Respect everyone’s time. Meetings take up a long time and require a lot of energy.
They tried to see from the meeting agenda what could be done in small meetings, between two persons, rather than having them on the large meetings.
ICE scores are cool
1-10 average of three score
Impact – If successful, how big is the difference
Confidence – How sure are we it will work?
Ease – How easy is it to implement? (time / people / money)
Team members write down ideas before the meeting.
Each scores their idea.
Only doubtful scores get discussed.
Ensure there is test cadence
There is a timeframe of two weeks for testing ideas.
5 experiments per cycle.
30% success rate.
32 successful experiments per year.
Setup experiments the right way
Wizard of Oz
Design you Own
Improve code through automation – Ulrich Pogson
Things to check in a review:
Code Style (tabs vs. spaces; WordPress Coding Standard)
Best Practice (WordPress functions vs. your own code)
Code Compatibility (PHP)
Documentation (for the future editings)
Code Quality (variables which have not been used)
Alternative to manual reviews? Automation.
An option to use – GitHub.
Another option – command line.
The best option – automated tools right into your editor. E.g..: Atom.
Scalability (multiple lines of codes checked easily)
Consistency (the same criteria can be applied multiple times)
Team moral (you don’ feel offended when a robot gives you feedback)
Only parses code, does not understand it.
This might lead to false positives.
WordPress consists of three main languages: CSS / JS / PHP.
For CSS: Stylelint;
For JS: ESLint; it runs on Node.js;
For PHP: PHPCS;
There are ways in which tools fix the issues for you. They don’t work perfectly, this is work in progress.
For GitHub: Travis.
#41057 (Update PHP codebase per WordPress PHP Coding Standards) – WordPress Trac
WIP: Enable coding standards for JS files by grappler · Pull Request #1187 · Automattic/_s · GitHub
#41057 (Update PHP codebase per WordPress PHP Coding Standards) – WordPress Trac
Presentations by Juliette Reinders Folmer // Speaker Deck
An MVC approach to WordPress theme development – Mircea Tihu
Twig is a PHP template engine;
Allows the users to create extra fields in a very user-friendly manner;
Has a lot of different field types to be configured;
The normal approach:
The content manager / backend developer configures fields in ACF;
The back-end developer uses all the necessary data and appends to the context variable;
The front-end developer implements;
They’re trying to remove the back-end developer from this equation;
They do this by automatically mapping all the ACF fields;
For each entity in WordPress Timber has object defined: posts / tags / users/ images?
Flexible content / repeater – mapped as arrays containing actual values or Timber objects (you can add any number of elements you want).
Challenge – infinite loops. If post A has a reference to post B and post B has a reference back to post A, while retrieving the fields we would find ourselves in an infinite loop.
Solution: if an object is already appended to the data variable, we append an empty array instead of the actual object.
A practical guide to launch, grow and monetise a blog – Ionut Neagu
It takes around 2 years to get a ROI after the initial investment. A blog is an upfront investment. We still read books which are old.
Before starting, you need to think about content strategy, blog authors, budgets, how to make money.
If you are a designer, you might want to give freebies, to get traffic and position yourself as a resource.
Your articles will still be read years after you wrote them.
An article can cost anywhere from 5 to 150 USD.
You should stop trying to make the perfect blog, with the perfect blog posts. You’ll make mistakes, that’s fine. JUST START. It’s much better to start from somewhere, than to postpone the launch, trying to get it perfect.
Don’t even write before you know 10 people that would read it.
Ionut noticed that there were lots of questions for “Divi vs. Avada”. Upon researching, he found that there was a lack of useful articles on the matter, so he wrote about it.
Social bookmarking tools
Quora (don’t just post links, give a reply, also; disclose that you have a link to the website in cause; also, use it for inspiration)
Get writers in your niche to know you
Links matter a lot, be creative when getting them.
Try to make research relevant for journalists, who will link back to you.
Give freebies, people will link to you.
“Free WordPress themes & Templates” vs. “30+ Best Free WordPress Themes & Templates” – massive increase with the second version.
They got 20% increase when renaming titles
Don’t hurry into $$ – tart monetising after 1 year.
Hosting companies are generating most revenue for WordPress websites. Also, solutions like Shopify (eCommerce), SaaS solutions, WordPress themes & Plugins.
There are niches where there is a high competition, and in there most companies will have an affiliate program.
WP Engine – have a good engine in the community. They are expensive for some people. “Cheap alternatives for WP Engine” might be a lucrative search for those clients.
Another thing which works fine: company reviews. If you write this kind of article, it will work fine.
Just like your child, your content probably isn’t special. Be objective. Improve (content, not child). Repeat (content, not child).
In most cases, what you write might be not very special, so one can find
If they have an article on BlackFriday, they will re-write the article each article.
For a Divi vs. Avada – theme price, major update. Weekly, monthly, six month, one year. If an article is very important, they change it a lot. They have a calendar for theme updates.
If they make a small update, they will just write a small paragraph. If they make a large update, they might rewrite the whole article, including the title.
They have only 5-10 articles where they look at on-page optimization. For the rest, the authors add some keywords on the texts. For the most important ones, 5-10, they work on title (one that attracts users and provides context; they go for headlines that provide context).
They did a survey on various hosting companies. There are more people trying to switch from WP Engine, than there are people searching for WP Engine.
They have 3 blogs that are attached to 3 main websites. On codeinwp – 300,000 / month; another one 100,000 / month; and another one.
They care more about long-term results. Using catchy titles or over-optimized titles will not help you in the long term. They work towards building authority in the space. They are not investing in video content / visual content. They would rather do this kind of investing, than work on catchy titles.
For the first year, you should focus on content on your website, rather than monetization. But you can do that, also.
Avada – WP Theme is not GPL. It can be mentioned, but it is not a subject.
The more commercial-focused a presentation is, the less committed the audience will be. People want to hear solutions, best practices. Give the audience something to go home with.
Idea – There might be a meeting for advanced / developers users of WordPress, and another meeting for marketing / basic users of WordPress.
This might not be very good. Better – mix advanced and basic presentations. Networking matters a lot in meetings.
Do make sure that there is a fixed schedule, with regular meetings.
Get Involved — WordPress
Make WordPress Communities – Building Local Communities – you can find the team which made a plugin, and make it better. Here, or on Slack.
WordPress.tv | Engage Yourself with WordPress.tv
Slack – you need to sign in with your WordPress.org account.
- The #WCBUC Aftermath | WordCamp Bucharest 2017
- Our first WordCamp sponsorship in-person: reporting on WordCamp Bucharest 2017
- A Few Takeaways from WordCamp Bucharest — Pixelgrade
- WordCamp București 2017 – Luminita Ciobanu
- The Value of Sponsoring a WordCamp from TranslatePress Perspective
- Short follow-up, WordCamp 2017 (2017.10.07-08, CCIR Bucharest) – Olivian.ro – by Olivian Breda